09-IP性能优化配置
本章节下载: 09-IP性能优化配置 (328.07 KB)
如下所有配置均为可选,请根据实际情况选择配置。
· 配置IP报文功能
本功能适用于IRF组网环境。
· 配置ICMP报文功能
· 配置TCP报文功能
¡ 配置TCP定时器
定向广播报文是指发送给特定网络的广播报文。该报文的目的IP地址中网络号码字段为特定网络的网络号,主机号码字段为全1。
在转发定向广播报文的情况下,如果在接口上配置了此命令,设备从其他接口接收到目的地址为此接口直连网段的定向广播报文时,会从此接口转发此类报文。
黑客可以利用定向广播报文来攻击网络系统,给网络的安全带来了很大的隐患。但在某些应用环境下,设备接口需要转发这类定向广播报文,例如:
· 使用UDP Helper功能,将广播报文转换为单播报文发送给指定的服务器。
· 使用Wake on LAN(网络唤醒)功能,发送定向广播报文唤醒远程网络中的计算机。
在上述情况下,用户可以通过命令配置接口允许转发直连网段的定向广播报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置允许接口转发面向直连网段的定向广播报文。
ip forward-broadcast [ acl acl-number ]
缺省情况下,设备禁止转发直连网段的定向广播报文。
如图1-1所示,Host的接口和Switch的VLAN接口3处于同一个网段(1.1.1.0/24),Switch的VLAN接口2和PC的接口处于另外一个网段(2.2.2.0/24)。Host上配置默认网关为Switch的VLAN接口3的地址(1.1.1.2/24)。
要求通过配置使得PC可以收到Host发送的定向广播报文。
# 配置VLAN接口3和VLAN接口2的IP地址。
<Switch> system-view
[Switch] interface vlan-interface 3
[Switch-Vlan-interface3] ip address 1.1.1.2 24
[Switch-Vlan-interface3] quit
[Switch] interface vlan-interface 2
[Switch-Vlan-interface2] ip address 2.2.2.2 24
# 配置允许VLAN接口2转发面向直连网段的定向广播报文。
[Switch-Vlan-interface2] ip forward-broadcast
配置完成以后,在Host上ping PC的接口所在子网网段的广播地址(2.2.2.255)时,PC上的抓包工具显示可以收到该报文。取消掉ip forward-broadcast的配置,PC上的抓包工具没有显示就不能收到该报文。
当设备使用某个接口发送报文时,发现报文长度大于该接口的发送IPv4报文的MTU值,则进行下列处理:
· 如果报文不允许分片,则将报文丢弃;
· 如果报文允许分片,则将报文进行分片转发。
为了减轻转发设备在传输过程中的分片和重组数据包的压力,更高效的利用网络资源,请根据实际组网环境设置合适的接口MTU值,以减少分片的发生。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置发送IPv4报文的MTU。
ip mtu mtu-size
缺省情况下,未配置接口发送IPv4报文的MTU。
多台设备组成的IRF环境下,当某成员设备收到目的为本IRF设备的IP分片报文时,需要把分片报文送到主设备进行重组,这样会导致报文重组性能较低的问题。当开启IP分片报文本地重组功能后,分片报文会在该成员设备上直接进行报文重组,这样就能提高分片报文的重组性能。开启IP分片报文本地重组功能后,如果分片报文是从设备上不同的成员设备进入的,会导致IP分片报文本地无法重组成功。
(1) 进入系统视图。
system-view
(2) 开启IP分片报文本地重组功能。
ip reassemble local enable
缺省情况下,IP分片报文本地重组功能处于关闭状态。
设备收到的目的IP地址非本机且携带IP选项的IP报文后,会将报文上送CPU处理。CPU解析或处理报文中的IP选项信息后,再根据报文的目的地址进行转发。某些组网环境报文交互量大,设备需要处理或转发的报文数量过多。处理IP报文中的选项信息会导致设备无法及时处理所有报文和丢包等问题。配置undo ip option enable命令后,设备收到目的IP地址非本机且携带IP选项的IP报文后,不会处理报文中的IP选项,直接进行硬件转发,保证报文能被及时转发,不会丢包。
IP报文中的选项信息主要用于网络路径的故障诊断和特殊业务的临时发送,配置undo ip option enable命令后,报文中的选项信息不会被处理。因此,只有不需要使用选项信息的组网环境中,才能配置undo ip option enable命令。
(1) 进入系统视图。
system-view
(2) 配置设备处理IP报文中的选项信息
ip option enable
缺省情况下,设备处理IP报文中的选项信息。
ICMP报文通常被网络层或传输层协议用来在异常情况发生时通知相应设备,从而便于进行控制管理。ICMP差错报文的发送虽然方便了网络的控制管理,但是也存在缺陷:发送大量的ICMP报文,增大网络流量;如果有用户发送ICMP差错报文进行恶意攻击,会导致设备性能下降或影响正常工作。为了避免上述现象发生,缺省情况下,ICMP差错报文发送功能处于关闭状态,用户可以根据需要开启ICMP差错报文发送功能。
ICMP差错报文包括重定向报文、超时报文和目的不可达报文。
ICMP重定向报文发送功能可以简化主机的管理,使具有很少选路信息的主机逐渐建立较完善的路由表,从而找到最佳路由。
主机启动时,它的路由表中可能只有一条到缺省网关的缺省路由。当满足一定的条件时,缺省网关会向源主机发送ICMP重定向报文,通知主机重新选择正确的下一跳进行后续报文的发送。
同时满足下列条件时,设备会发送ICMP重定向报文:
· 接收和转发数据报文的接口是同一接口;
· 报文的源IP地址和报文接收接口的IP地址在同一个网段;
· 数据报文中没有源路由选项。
(1) 进入系统视图。
system-view
(2) 开启ICMP重定向报文发送功能。
ip redirects enable
缺省情况下,ICMP重定向报文发送功能处于关闭状态。
ICMP超时报文发送功能是在设备收到IP数据报文后,如果发生超时差错,则将报文丢弃并给源端发送ICMP超时差错报文。
设备在满足下列条件时会发送ICMP超时报文:
· 设备收到IP数据报文后,如果报文的目的地不是本地且报文的TTL字段是1,则发送“TTL超时”ICMP差错报文;
· 设备收到目的地址为本地的IP数据报文的第一个分片后,启动定时器,如果所有分片报文到达之前定时器超时,则会发送“重组超时”ICMP差错报文。
关闭ICMP超时报文发送功能后,设备不会再发送“TTL超时”ICMP差错报文,但“重组超时”ICMP差错报文仍会正常发送。
(1) 进入系统视图。
system-view
(2) 开启ICMP超时报文发送功能。
ip ttl-expires enable
缺省情况下,ICMP超时报文发送功能处于关闭状态。
ICMP目的不可达报文发送功能是在设备收到IP数据报文后,如果发生目的不可达的差错,则将报文丢弃并给源端发送ICMP目的不可达差错报文。
设备在满足下列条件时会发送目的不可达报文:
· 设备在转发报文时,如果在路由表中未找到对应的转发路由,且路由表中没有缺省路由,则给源端发送“网络不可达”ICMP差错报文;
· 设备收到目的地址为本地的数据报文时,如果设备不支持数据报文采用的传输层协议,则给源端发送“协议不可达”ICMP差错报文;
· 设备收到目的地址为本地、传输层协议为UDP的数据报文时,如果报文的端口号与正在使用的进程不匹配,则给源端发送“端口不可达”ICMP差错报文;
· 源端如果采用“严格的源路由选择”发送报文,当中间设备发现源路由所指定的下一个设备不在其直接连接的网络上,则给源端发送“源站路由失败”的ICMP差错报文;
· 设备在转发报文时,如果转发接口的MTU小于报文的长度,但报文被设置了不可分片,则给源端发送“需要进行分片但设置了不分片比特”ICMP差错报文。
设备开启DHCP服务后,在未发送ICMP回显请求(ECHO-REQUEST)报文情况下,收到非法ICMP回显应答(ECHO-REPLY)报文,此时设备不会回应“协议不可达”ICMP差错报文。执行dhcp enable命令可以启动DHCP服务,关于dhcp enable命令的详细介绍,请参见“三层技术-IP业务命令参考”中的“DHCP”。
(1) 进入系统视图。
system-view
(2) 开启ICMP目的不可达报文发送功能。
ip unreachables enable
缺省情况下,ICMP目的不可达报文发送功能处于关闭状态。
如果网络中短时间内发送的ICMP差错报文过多,将可能导致网络拥塞。为了避免这种情况,用户可以控制设备在指定时间内发送ICMP差错报文的最大数目,目前采用令牌桶算法来实现。
用户可以设置令牌桶的容量,即令牌桶中可以同时容纳的令牌数;同时可以设置令牌桶的刷新周期,即每隔多长时间发放一个令牌到令牌桶中,直到令牌桶中的令牌数达到配置的容量。一个令牌表示允许发送一个ICMP差错报文,每当发送一个ICMP差错报文,则令牌桶中减少一个令牌。如果连续发送的ICMP差错报文超过了令牌桶的容量,则后续的ICMP差错报文将不能被发送出去,直到按照所设置的刷新频率将新的令牌放入令牌桶中。
(1) 进入系统视图。
system-view
(2) 配置发送ICMP差错报文对应的令牌刷新周期和令牌桶容量。
ip icmp error-interval interval [ bucketsize ]
缺省情况下,令牌刷新周期为100毫秒,令牌桶容量为10。
刷新周期为0时,表示不限制ICMP差错报文的发送。
为了防止ICMP分片报文攻击,用户可以关闭设备的ICMP分片报文转发功能,对于收到的ICMP分片报文不进行转发。
(1) 进入系统视图。
system-view
(2) 关闭ICMP分片报文转发功能。
ip icmp fragment discarding
缺省情况下,ICMP分片报文转发功能处于开启状态。
在网络中IP地址配置较多的情况下,收到ICMP报文时,用户很难根据报文的源IP地址判断报文来自哪台设备。为了简化这一判断过程,可以指定ICMP报文源地址。用户配置特定地址(如环回口地址)为ICMP报文的源地址,可以简化判断。
设备发送ICMP差错报文(TTL超时、端口不可达和参数错误等)和ping echo request报文时,都可以通过上述命令指定报文的源地址。
用户发送ping echo request报文时,如果ping命令中已经指定源地址,则使用该源地址,否则使用ip icmp source配置的源地址。
(1) 进入系统视图。
system-view
(2) 指定ICMP报文源地址。
ip icmp source [ vpn-instance vpn-instance-name ] ip-address
缺省情况下,未指定ICMP报文源地址。
发送ICMP差错报文(TTL超时、端口不可达和参数错误等)时,设备使用触发ICMP差错报文的原始报文的入接口IP地址作为ICMP报文源地址。
发送ICMP echo request报文时,设备使用出接口IP地址作为ICMP报文源地址。
发送ICMP echo reply报文时,设备使用ICMP echo request报文的目的地址作为ICMP报文源地址。
使用ping命令进行网络连通性检测时,如果检测的目的地址是广播地址,则在该广播范围内所有收到ICMP Echo Request报文的设备都要对该报文进行处理。如果攻击者利用这一原理发起网络攻击,则设备需要不停地处理此类报文,致使设备CPU资源大量占用而影响转发性能。
在收到大量广播报文或CPU占用率过高的场景下,建议关闭响应ICMP广播报文功能,使得设备不再处理和回应目的地址为广播地址的ICMP Echo Request报文,避免受到上述ICMP Echo Request攻击。
(1) 进入系统视图。
system-view
(2) 开启响应ICMP广播报文功能。
ip icmp broadcast-echo-reply enable
缺省情况下,响应ICMP广播报文功能处于开启状态。
本功能用来关闭发送指定类型的ICMP报文的功能。缺省情况下,设备支持发送大多数类型的ICMP报文,这样可能会存在安全隐患。例如设备发出的时间戳请求应答、掩码请求应答、网络重定向和网络不可达等报文,其携带的设备相关信息可能给被攻击者获取并发起攻击。为了提高安全性,可以关闭设备对指定类型的ICMP报文的发送功能。
请根据网络实际情况执行本功能,随意关闭发送指定类型的ICMP报文的功能,可能会影响网络的正常运行。
ICMP目的不可达报文发送功能同时受本功能和ip unreachables enable命令的控制。只要一方开启,ICMP目的不可达报文发送功能就处于开启状态。
ICMP超时报文发送功能同时受本功能和ip ttl-expires enable命令的控制。只要一方开启,ICMP超时报文发送功能就处于开启状态。
ICMP重定向报文发送功能同时受本功能和ip redirects enable命令的控制。只要一方开启,ICMP重定向报文发送功能就处于开启状态。
(1) 进入系统视图。
system-view
(2) 关闭发送指定类型的ICMP报文的功能。
undo ip icmp { name icmp-name | type icmp-type code icmp-code } send enable
缺省情况下,发送ICMP目的不可达报文、ICMP超时报文和ICMP重定向报文功能处于关闭状态;发送其它ICMP报文功能处于开启状态。
本功能用于关闭接收指定类型的ICMP报文的功能。缺省情况下,设备会接收所有类型的ICMP报文,这会产生安全隐患。例如设备短时间内收到大量的回送请求报文时,会影响设备性能,导致设备无法正常运行。为了提高安全性,可以关闭设备接收指定类型的ICMP报文的功能。
请根据网络实际情况执行本功能,随意关闭接收指定类型的ICMP报文的功能,可能会影响网络的正常运行。
(1) 进入系统视图。
system-view
(2) 关闭接收指定类型的ICMP报文的功能。
undo ip icmp { name icmp-name | type icmp-type code icmp-code } receive enable
缺省情况下,设备会接收所有类型的ICMP报文。
开启端口攻击的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件,例如端口在收到ICMP报文超速的情况下,该模块会产生告警信息,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启端口攻击的告警功能。
snmp-agent trap enable port-attack
缺省情况下,端口攻击的告警功能处于关闭状态。
TCP最大报文段长度(Maximum Segment Size,MSS)表示TCP连接的对端发往本端的最大TCP报文段的长度,目前作为TCP连接建立时的一个选项来协商:当一个TCP连接建立时,连接的双方要将MSS作为TCP报文的一个选项通告给对端,对端会记录下这个MSS值,后续在发送TCP报文时,会限制TCP报文的大小不超过该MSS值。当对端发送的TCP报文的长度小于本端的TCP最大报文段长度时,TCP报文不需要分段;否则,对端需要对TCP报文按照最大报文段长度进行分段处理后再发给本端。
· 用户可以通过下面的命令配置接口的TCP最大报文段长度,配置后该接口接收和发送的TCP报文的大小都不能超过该值。
· 该配置仅对新建的TCP连接生效,对于配置前已建立的TCP连接不生效。
· 该配置仅对IP报文生效,当接口上配置了MPLS功能后,不建议再配置本功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口的TCP最大报文段长度。
tcp mss value
缺省情况下,未配置接口的TCP最大报文段长度。
通过开启TCP连接的Path MTU探测功能,用户可确定TCP路径上从源端到目的端的最小MTU(Path MTU),按照Path MTU组织TCP分段长度,避免IP分片的发生。为了在Path MTU增大时,减少资源浪费,可以开启Path MTU老化定时器,保证设备尽量按照TCP路径允许的最大报文长度发送数据。
RFC 1191中规定的TCP连接的Path MTU探测机制如下:
(1) TCP源端将发送的TCP数据段的外层IP报文设置DF(不可分片)标记。
(2) 如果TCP路径上某路由器的出接口MTU值小于该IP报文长度,则会丢弃报文,并给TCP源端发送ICMP差错报文,报文中会携带该出接口MTU值。
(3) TCP源端通过解析该ICMP差错报文,可知TCP路径上当前最小的单向MTU值。
(4) 后续TCP源端发送数据段的长度不超过MSS。其中,MSS=最小MTU值-IP头部长度-TCP头部长度。
当MSS已经达到系统规定的最小的32字节后,如果再次收到减少MSS的ICMP差错报文,系统将允许该TCP连接发送的报文进行分片。
产生ICMP差错报文的路由器可能不支持RFC 1191,其产生的ICMP差错报文中的出接口MTU字段值为0,对于这种报文,TCP源端将按照RFC 1191中规定的MTU表获取比当前路径MTU更小的值作为计算TCP MSS的基础。MTU表的内容为(单位为字节):68、296、508、1006、1280、1492、2002、4352、8166、17914、32000、65535(由于系统规定的TCP最小MSS为32,所以对应最小的MTU实际为72字节)。
Path MTU的老化机制如下:
· 当TCP源端收到ICMP差错报文后,除了减小Path MTU值,同时会为该Path MTU值启动老化定时器。
· 当该定时器超时后,系统将按照RFC 1191规定的MTU表依次递增TCP的MSS值。
· 如果增加一次MSS之后的2分钟内未收到ICMP差错报文,则继续递增,直到MSS增长到对端在TCP三次握手阶段通告的MSS值。
TCP连接的Path MTU探测功能依赖IP报文的DF标记位设置后触发ICMP差错报文,因此需要TCP路径上的所有设备打开ICMP差错报文发送功能(ip unreachables enable),以确保ICMP差错报文可以发送到TCP源端。
(1) 进入系统视图。
system-view
(2) 开启TCP连接的Path MTU探测功能。
tcp path-mtu-discovery [ aging age-time | no-aging ]
缺省情况下,TCP连接的Path MTU探测功能处于关闭状态。
SYN Cookie功能用来防止SYN Flood攻击。SYN Flood攻击中,攻击者向设备发送大量请求建立TCP连接的SYN报文,而不回应设备的SYN ACK报文,导致设备上建立了大量的TCP半连接。从而,达到耗费设备资源,使设备无法处理正常业务的目的。配置SYN Cookie功能后,当设备收到TCP连接请求时,不建立TCP半连接,而直接向发起者回复SYN ACK报文。设备接收到发起者回应的ACK报文后,建立连接,并进入ESTABLISHED状态。通过这种方式,可以避免在设备上建立大量的TCP半连接,防止设备受到SYN Flood攻击。
(1) 进入系统视图。
system-view
(2) 开启SYN Cookie功能。
tcp syn-cookie enable
缺省情况下,SYN Cookie功能处于关闭状态。
(1) 进入系统视图。
system-view
(2) 配置TCP连接的接收和发送缓冲区的大小。
tcp window window-size
缺省情况下,TCP连接的接收和发送缓冲区大小为63KB。
可以配置的TCP定时器包括:
· synwait定时器:当发送SYN报文时,TCP启动synwait定时器和重传SYN报文定时器,当synwait定时器超时且SYN报文重传未达到最大次数时,如果设备未收到回应报文,则TCP连接建立不成功;当synwait定时器未超时但是SYN报文重传达到最大次数时,如果设备未收到回应报文,则TCP连接建立不成功。
· finwait定时器:当TCP的连接状态为FIN_WAIT_2时,启动finwait定时器,如果在定时器超时前未收到报文,则TCP连接终止;如果收到FIN报文,则TCP连接状态变为TIME_WAIT状态;如果收到非FIN报文,则从收到的最后一个非FIN报文开始重新计时,在超时后中止连接。
(1) 进入系统视图。
system-view
(2) 配置TCP的synwait定时器超时时间。
tcp timer syn-timeout time-value
缺省情况下,synwait定时器超时时间为75秒。
(3) 配置TCP的finwait定时器超时时间。
tcp timer fin-timeout time-value
缺省情况下,finwait定时器超时时间为675秒。
TCP报文中携带TCP时间戳选项信息时,建立TCP连接的两台设备通过TCP报文中的时间戳字段就可计算出RTT(Round Trip Time,往返时间)值。在某些组网中,由于安全隐患,需要防止TCP连接上的中间设备获取到TCP时间戳信息,可以在建立TCP连接任意一端关闭发送TCP报文时添加时间戳选项信息功能。
(1) 进入系统视图。
system-view
(2) 配置发送TCP报文时添加TCP时间戳选项信息。
tcp timestamps enable
缺省情况下,发送TCP报文时会添加TCP时间戳选项信息。
开启TCP模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件,例如在LDP会话使用的TCP连接上的MD5认证失败时,设备将此信息记录在告警信息中,生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启TCP告警功能。
snmp-agent trap enable tcp
缺省情况下,TCP的告警功能处于开启状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置IP性能优化功能后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除IP、TCP和UDP的流量统计信息。
表1-1 IP性能优化显示和维护
操作 |
命令 |
显示ICMP流量统计信息 |
display icmp statistics [ slot slot-number ] |
显示IP报文统计信息 |
display ip statistics [ slot slot-number ] |
显示RawIP连接摘要信息 |
display rawip [ slot slot-number ] |
显示RawIP连接详细信息 |
display rawip verbose [ slot slot-number [ pcb pcb-index ] ] |
显示TCP连接摘要信息 |
display tcp [ slot slot-number ] |
显示TCP连接的流量统计信息 |
display tcp statistics [ slot slot-number ] |
显示TCP连接详细信息 |
display tcp verbose [ slot slot-number [ pcb pcb-index ] ] |
显示UDP连接摘要信息 |
display udp [ slot slot-number ] |
显示UDP流量统计信息 |
display udp statistics [ slot slot-number ] |
显示UDP连接详细信息 |
display udp verbose [ slot slot-number [ pcb pcb-index ] ] |
清除IP报文统计信息 |
reset ip statistics [ slot slot-number ] |
清除TCP连接的流量统计信息 |
reset tcp statistics |
清除UDP流量统计信息 |
reset udp statistics |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!