11-IP性能优化配置
本章节下载: 11-IP性能优化配置 (196.22 KB)
在一些特定的网络环境里,可以通过调整IP的参数,以使网络性能达到最佳。IP性能的优化配置包括:
· 配置接口的TCP最大报文段长度
· 配置TCP连接的Path MTU探测功能
· 配置TCP连接的接收和发送缓冲区的大小
· 配置TCP定时器
· 配置ICMP差错报文发送功能
TCP最大报文段长度(Max Segment Size,MSS)表示TCP连接的对端发往本端的最大TCP报文段的长度,目前作为TCP连接建立时的一个选项来协商:当一个TCP连接建立时,连接的双方要将MSS作为TCP报文的一个选项通告给对端,对端会记录下这个MSS值,后续在发送TCP报文时,会限制TCP报文的大小不超过该MSS值。当对端发送的TCP报文的长度小于本端的TCP最大报文段长度时,TCP报文不需要分段;否则,对端需要对TCP报文按照最大报文段长度进行分段处理后再发给本端。
用户可以通过下面的命令配置接口的TCP最大报文段长度,配置后该接口接收和发送的TCP报文的大小都不能超过该值。
表1-1 配置接口的TCP最大报文段长度
配置接口的TCP最大报文段长度 |
缺省情况下,TCP最大报文段长度为1460字节 |
· 该配置仅对新建的TCP连接生效,对于配置前已建立的TCP连接不生效。
· 该配置仅对IP报文生效。
RFC 1191中规定的TCP连接的Path MTU探测功能,可以探测TCP路径上从源端到目的端的最小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字节)。
用户通过命令行开启TCP连接的Path MTU探测功能后,新建的TCP连接均会携带Path MTU探测属性,可以通过上述探测机制确定Path MTU,按照数据路径上的最小MTU组织TCP分段长度,最大限度利用网络资源,避免IP分片的发生。
Path MTU值可以老化,这样当Path MTU增大时可以充分利用网络资源,尽量按照转发路径可以容忍的最大报文长度发送数据。Path MTU的老化机制如下:
· 当TCP源端收到ICMP差错报文后,除了减小Path MTU值,同时会为该Path MTU值启动老化定时器。
· 当该定时器超时后,系统将按照RFC 1191规定的MTU表依次递增TCP的MSS值。
· 如果增加一次MSS之后的2分钟内没有收到ICMP差错报文,则继续递增,直到MSS增长到对端在TCP三次握手阶段通告的MSS值。
表1-2 配置TCP连接的Path MTU探测功能
开启TCP连接的Path MTU探测功能 |
缺省情况下,TCP连接的Path MTU探测功能处于关闭状态 |
TCP连接的Path MTU探测功能依赖IP报文的DF标记位设置后触发ICMP差错报文,因此需要TCP路径上的所有设备打开ICMP差错报文发送功能(ip unreachables enable),以确保ICMP差错报文可以发送到TCP源端。
表1-3 配置TCP连接的接收和发送缓冲区大小
配置TCP连接的接收和发送缓冲区的大小 |
缺省情况下,TCP连接的接收和发送缓冲区大小为8KB |
可以配置的TCP定时器包括:
· synwait定时器:当发送SYN报文时,TCP启动synwait定时器,如果synwait超时前未收到回应报文,则TCP连接建立不成功。
· finwait定时器:当TCP的连接状态为FIN_WAIT_2时,启动finwait定时器,如果在定时器超时前没有收到报文,则TCP连接终止;如果收到FIN报文,则TCP连接状态变为TIME_WAIT状态;如果收到非FIN报文,则从收到的最后一个非FIN报文开始重新计时,在超时后中止连接。
表1-4 配置TCP定时器
配置TCP的synwait定时器超时时间 |
缺省情况下,synwait定时器超时时间为75秒 |
|
配置TCP的finwait定时器超时时间 |
缺省情况下,finwait定时器超时时间为675秒 |
finwait定时器的实际超时时间由如下公式决定:finwait定时器的实际超时时间=(配置的finwait定时器超时时间-75)+配置的synwait定时器超时时间。
发送差错报文是ICMP(Internet Control Message Protocol,互联网控制消息协议)的主要功能之一。差错报文通常被网络层或传输层协议用来在异常情况发生时通知相应设备,从而便于进行控制管理。
重定向报文、超时报文、目的不可达报文是ICMP差错报文中的三种。下面分别介绍这三种差错报文发送的条件及作用。
(1) ICMP重定向报文发送功能
主机启动时,它的路由表中可能只有一条到缺省网关的缺省路由。当满足一定的条件时,缺省网关会向源主机发送ICMP重定向报文,通知主机重新选择正确的下一跳进行后续报文的发送。
满足下列条件时,设备会发送ICMP重定向报文:
· 被选择的路由本身没有被ICMP重定向报文创建或修改过;
ICMP重定向报文发送功能可以简化主机的管理,使具有很少选路信息的主机逐渐建立较完善的路由表,从而找到最佳路由。
(2) ICMP超时报文发送功能
ICMP超时报文发送功能是在设备收到IP数据报文后,如果发生超时差错,则将报文丢弃并给源端发送ICMP超时差错报文。
设备在满足下列条件时会发送ICMP超时报文:
· 设备收到IP数据报文后,如果报文的目的地不是本地且报文的TTL字段是1,则发送“TTL超时”ICMP差错报文;
· 设备收到目的地址为本地的IP数据报文的第一个分片后,启动定时器,如果所有分片报文到达之前定时器超时,则会发送“重组超时”ICMP差错报文。
(3) ICMP目的不可达报文发送功能
ICMP目的不可达报文发送功能是在设备收到IP数据报文后,如果发生目的不可达的差错,则将报文丢弃并给源端发送ICMP目的不可达差错报文。
· 设备在转发报文时,如果在路由表中没有找到对应的转发路由,且路由表中没有缺省路由,则给源端发送“网络不可达”ICMP差错报文;
· 设备收到目的地址为本地的数据报文时,如果设备不支持数据报文采用的传输层协议,则给源端发送“协议不可达”ICMP差错报文;
· 设备收到目的地址为本地、传输层协议为UDP的数据报文时,如果报文的端口号与正在使用的进程不匹配,则给源端发送“端口不可达”ICMP差错报文;
· 源端如果采用“严格的源路由选择”发送报文,当中间设备发现源路由所指定的下一个设备不在其直接连接的网络上,则给源端发送“源站路由失败”的ICMP差错报文;
· 设备在转发报文时,如果转发接口的MTU小于报文的长度,但报文被设置了不可分片,则给源端发送“需要进行分片但设置了不可分片比特”ICMP差错报文。
ICMP差错报文的发送虽然方便了网络的控制管理,但也存在一定的弊端:
· 由于发送大量的ICMP报文,增大了网络流量。
· 如果设备接收到大量需要发送ICMP差错报文的恶意攻击报文,设备会因为处理大量该类报文而导致性能降低。
· 由于重定向功能会在主机的路由表中增加主机路由,当增加的主机路由很多时,会降低主机性能。
· 由于ICMP目的不可达报文传递给用户进程的信息为不可达信息,如果有用户恶意攻击,可能会影响终端用户的正常使用。
为了避免上述现象发生,可以关闭设备的ICMP差错报文发送功能,从而减少网络流量、防止遭到恶意攻击。
表1-5 配置ICMP差错报文发送功能
开启ICMP重定向报文发送功能 |
缺省情况下,ICMP重定向报文发送功能处于关闭状态 |
|
开启ICMP超时报文发送功能 |
缺省情况下,ICMP超时报文发送功能处于关闭状态 |
|
开启ICMP目的不可达报文发送功能 |
缺省情况下,ICMP目的不可达报文发送功能处于关闭状态 |
关闭ICMP超时报文发送功能后,设备不会再发送“TTL超时”ICMP差错报文,但“重组超时”ICMP差错报文仍会正常发送。
为了避免每个业务模块(如:IPSec、NAT和防火墙)单独处理后片先到(报文分片后)这种情况而导致复杂度过高,设备需要收到IP报文后就对分片报文进行虚拟分片重组。IP虚拟分片重组功能可以对分片报文进行检验、排序和缓存,保证后续业务模块处理的都是顺序正确的分片报文。
同时,IP虚拟分片重组功能还可以对下面几种分片攻击进行检测。如果检测到分片攻击,则设备会丢弃收到的分片报文,从而提高了设备的安全性。
· Tiny Fragment攻击:如果设备收到分片报文的首片长度非常小,并且传输层协议(如:TCP、UDP)头字段放在第二个分片中,则认为是受到了Tiny Fragment攻击;
· Overlapping Fragment攻击:如果设备收到了完全相同的分片报文,或者收到的分片报文与其前一分片或后一分片出现重叠时,则认为是受到了Overlapping Fragment攻击;
· Fragment-flood攻击:如果设备收到的分片报文个数超过了指定的队列允许的最大分片报文个数或者设备上创建的分片队列个数超过了指定的最大分片队列个数,则认为是受到了Fragment-flood攻击。
表1-6 配置IP虚拟分片重组功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能IP虚拟分片重组功能 |
ip virtual-reassembly [ drop-fragments | max-fragments number | max-reassemblies number | timeout seconds ] * |
必选 缺省情况下,关闭IP虚拟分片重组功能 |
· 只能在报文的入接口配置IP虚拟分片重组特性。
· 不支持负载分担,即不支持同一个IP报文的不同分片从不同的接口到达。
· 当在AC上需要同时使用NAT和IPsec时,请先开启IP虚拟分片重组功能。
在完成上述配置后,在任意视图下执行display命令可以显示配置IP性能后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除IP、TCP和UDP的流量统计信息。
表1-7 IP性能优化显示和维护
显示TCP连接的流量统计信息 |
display tcp statistics [ | { begin | exclude | include } regular-expression ] |
显示UDP流量统计信息 |
display udp statistics [ | { begin | exclude | include } regular-expression ] |
显示IP报文统计信息 |
display ip statistics [ | { begin | exclude | include } regular-expression ] |
显示ICMP流量统计信息 |
display icmp statistics [ | { begin | exclude | include } regular-expression ] |
显示接口上的分片信息 |
display ip virtual-reassembly [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
清除IP报文统计信息 |
|
清除TCP连接的流量统计信息 |
|
清除UDP流量统计信息 |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!