05-IP性能优化配置
本章节下载: 05-IP性能优化配置 (217.05 KB)
目 录
l 本节中提到的三层以太网接口是指已经被配置为路由模式的以太网端口,有关以太网端口模式切换的操作,请参见“接入分册”的“以太网端口”部分。
l S3500-EA交换机只有工作在MCE模式时,才支持本章中提到的VPN实例功能以及相关命令中的vpn-instance参数。有关交换机工作模式的介绍,请参见“IP业务分册”中的“双协议栈配置”。
在一些特定的网络环境里,可以通过调整IP的参数,以使网络性能达到最佳。IP性能的优化配置包括:
l 配置允许接收和发送定向广播报文
l 配置接口的TCP最大报文段长度
l 配置TCP的SYN Cookie和防止Naptha攻击功能
l 配置TCP定时器
l 配置TCP连接的接收和发送缓冲区的大小
l 配置ICMP差错报文发送功能
定向广播报文是指发送给特定网络的广播报文。该报文的目的IP地址中网络号码字段为特定网络的网络号,主机号码字段为全1。
如果允许设备接收并转发目的地址为接口所在网络的定向广播报文,黑客就可以利用这样的报文来攻击网络系统,给网络的安全带来了很大的隐患。但在某些应用环境下,设备又需要转发定向广播报文,例如:
l 使用UDP Helper功能,将广播报文转换为单播报文发送给指定的服务器。
l 使用Wake on LAN(网络唤醒)功能,发送定向广播报文唤醒远程网络中的计算机。
在上述情况下,用户可以通过命令配置设备允许接收和转发定向广播报文。
如果允许设备接收定向广播报文,则由接口上的配置决定是否转发该报文;否则,直接丢弃定向广播报文。
表1-1 配置允许接收定向广播报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置允许设备接收定向广播报文 |
ip forward-broadcast |
必选 缺省情况下,禁止设备接收定向广播报文 |
表1-2 配置允许转发定向广播报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置允许接口转发定向广播报文 |
ip forward-broadcast [ acl acl-number ] |
必选 缺省情况下,禁止接口转发定向广播报文 |
l 允许接口转发定向的广播报文时,如果配置了ACL规则,则在转发广播报文的同时还需要对报文进行过滤,不符合ACL规则的报文将被丢弃,只转发符合ACL规则的报文。
l 如果在同一接口下重复执行ip forward-broadcast acl命令,则后面配置的ACL会覆盖以前配置的ACL;如果后配置的命令不带acl acl-number,则以前配置中的ACL规则将被取消。
如图1-1所示,Host的接口和Switch A的VLAN接口3处于同一个网段(1.1.1.0/24),Switch A的VLAN接口2和Switch B的VLAN接口2处于另外一个网段(2.2.2.0/24)。Host上配置默认网关为Switch A的VLAN接口3的地址(1.1.1.2/24),Switch B上配置静态路由使得Host与Switch B之间路由可达。
(1) 配置Switch A
# 配置允许Switch A接收定向的广播报文。
<SwitchA> system-view
[SwitchA] ip forward-broadcast
# 配置VLAN接口3和VLAN接口2的IP地址。
[SwitchA] interface vlan-interface 3
[SwitchA-Vlan-interface3] ip address 1.1.1.2 24
[SwitchA-Vlan-interface3] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 2.2.2.2 24
# 配置允许VLAN接口2转发定向广播报文。
[SwitchA-Vlan-interface2] ip forward-broadcast
(2) 配置Switch B
# 配置允许Switch B接收定向的广播报文。
<SwitchB> system-view
[SwitchB] ip forward-broadcast
# 配置Switch B到Host的静态路由。
[SwitchB] ip route-static 1.1.1.1 24 2.2.2.2
# 配置VLAN接口2的IP地址。
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address 2.2.2.1 24
配置完成以后,在Host上ping Switch A的VLAN接口2所在子网网段的广播地址(2.2.2.255)时,Switch B的VLAN接口2可以收到该报文。取消掉任何一个ip forward-broadcast的配置,Switch B的VLAN接口2都不能收到该报文。
TCP最大报文段长度(Max Segment Size,MSS)表示TCP连接的对端发往本端的最大TCP报文段的长度,目前作为TCP连接建立时的一个选项来协商:当一个TCP连接建立时,连接的双方要将MSS作为TCP报文的一个选项通告给对端,对端会记录下这个MSS值,后续在发送TCP报文时,会限制TCP报文的大小不超过该MSS值。当对端发送的TCP报文的长度小于本端的TCP最大报文段长度时,TCP报文不需要分段;否则,对端需要对TCP报文按照最大报文段长度进行分段处理后再发给本端。
用户可以通过下面的命令配置接口的TCP最大报文段长度,配置后该接口接收和发送的TCP报文的大小都不能超过该值。
表1-3 配置接口的TCP最大报文段长度
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入三层以太网接口视图 |
interface interface-type interface-number |
- |
配置接口的TCP最大报文段长度 |
tcp mss value |
可选 缺省情况下,TCP最大报文段长度为1460字节 |
该配置仅对新建的TCP连接生效,对于配置前已建立的TCP连接不生效。
一般情况下,TCP连接的建立需要经过三次握手,即:
(1) TCP连接请求的发起者向目标服务器发送SYN报文;
(2) 目标服务器收到SYN报文后,建立处于SYN_RECEIVED状态的TCP半连接,并向发起者回复SYN ACK报文,等待发起者的回应;
(3) 发起者收到SYN ACK报文后,回应ACK报文,这样TCP连接就建立起来了。
利用TCP连接的建立过程,一些恶意的攻击者可以进行SYN Flood攻击。攻击者向服务器发送大量请求建立TCP连接的SYN报文,而不回应服务器的SYN ACK报文,导致服务器上建立了大量的TCP半连接。从而,达到耗费服务器资源,使服务器无法处理正常业务的目的。
SYN Cookie功能用来防止SYN Flood攻击。当服务器收到TCP连接请求时,不建立TCP半连接,而直接向发起者回复SYN ACK报文。服务器接收到发起者回应的ACK报文后,才建立连接,并进入ESTABLISHED状态。通过这种方式,可以避免在服务器上建立大量的TCP半连接,防止服务器受到SYN Flood攻击。
表1-4 配置SYN Cookie功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能SYN Cookie功能 |
tcp syn-cookie enable |
必选 缺省情况下,SYN Cookie功能处于关闭状态 |
l 如果启用了MD5加密验证功能,则SYN Cookie功能不会生效。取消MD5加密验证功能后,之前配置的SYN Cookie功能会自动生效。
l 使能SYN Cookie功能后,建立TCP连接时只协商最大报文段长度选项,而不协商窗口缩放因子和时间戳选项。
Naptha攻击类似于SYN Flood攻击,所不同的是Naptha攻击可利用TCP连接的CLOSING、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、LAST_ACK和SYN_RECEIVED六种状态来达到攻击目的,而SYN Flood只是利用SYN_RECEIVED状态。
Naptha攻击通过控制大量主机与服务器建立TCP连接,并使这些连接处于同一种状态(上述六种状态中的一种),而不请求任何数据,从而达到消耗服务器的内存资源,导致服务器无法处理正常业务的目的。
防止Naptha攻击功能通过加速TCP状态的老化,来降低服务器遭受Naptha攻击的风险。使能防止Naptha攻击功能后,设备周期性地检测处于上述六种状态的TCP连接数,如果检测到某个状态的TCP连接数目超过设定的最大连接数,则加速该状态下TCP连接的老化。
表1-5 配置防止Naptha攻击功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能防止Naptha攻击功能 |
tcp anti-naptha enable |
必选 缺省情况下,防止Naptha攻击功能处于关闭状态 |
配置某一状态下的最大TCP连接数 |
tcp state { closing | established | fin-wait-1 | fin-wait-2 | last-ack | syn-received } connection-number number |
可选 缺省情况下,六种TCP状态下的最大连接数均为5 如果TCP状态下的最大连接数为0,则表示不会加速该状态的老化 |
配置TCP连接状态的轮询检测时间间隔 |
tcp timer check-state timer-value |
可选 缺省情况下,TCP状态轮询检测的时间间隔为30秒 |
l 使能防止Naptha攻击功能后,设备会周期性地检测,并记录TCP连接数。设备只记录其作为TCP服务器的TCP连接数。
l 使能防止Naptha攻击功能后,如果检测到某一TCP状态下作为TCP服务器的连接数大于设定的最大连接数,则认为设备受到Naptha攻击,就会设置加速老化标志,加速该状态下TCP连接的老化。当该状态下的TCP连接数低于最大连接数的80%(最小值为1),则取消该状态的加速老化标志。
可以配置的TCP可选参数包括:
l synwait定时器:当发送SYN报文时,TCP启动synwait定时器,如果synwait超时前未收到回应报文,则TCP连接建立不成功。
l finwait定时器:当TCP的连接状态为FIN_WAIT_2时,启动finwait定时器,如果在定时器超时前没有收到报文,则TCP连接终止;如果收到FIN报文,则TCP连接状态变为TIME_WAIT状态;如果收到非FIN报文,则从收到的最后一个非FIN报文开始重新计时,在超时后中止连接。
l TCP连接的接收和发送缓冲区的大小。
表1-6 配置TCP属性
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置TCP的synwait定时器超时时间 |
tcp timer syn-timeout time-value |
可选 缺省情况下,synwait定时器超时时间为75秒 |
配置TCP的finwait定时器超时时间 |
tcp timer fin-timeout time-value |
可选 缺省情况下,finwait定时器超时时间为675秒 |
配置TCP连接的接收和发送缓冲区的大小 |
tcp window window-size |
可选 缺省情况下,TCP连接的接收和发送缓冲区大小为8KB |
finwait定时器的实际超时时间由如下公式决定:finwait定时器的实际超时时间=(配置的finwait定时器超时时间-75)+配置的synwait定时器超时时间。
发送差错报文是ICMP(Internet Control Message Protocol,互联网控制报文协议)的主要功能之一。ICMP报文通常被网络层或传输层协议用来在异常情况发生时通知相应设备,从而便于进行控制管理。
重定向报文、超时报文、目的不可达报文是ICMP差错报文中的三种。下面分别介绍这三种差错报文发送的条件及作用。
(1) ICMP重定向报文发送功能
主机启动时,它的路由表中可能只有一条到缺省网关的缺省路由。当满足一定的条件时,缺省网关会向源主机发送ICMP重定向报文,通知主机重新选择正确的下一跳进行后续报文的发送。
满足下列条件时,设备会发送ICMP重定向报文:
l 接收和转发数据报文的接口是同一接口;
l 被选择的路由本身没有被ICMP重定向报文创建或修改过;
l 被选择的路由不是设备的默认路由;
l 数据报文中没有源路由选项。
ICMP重定向报文发送功能可以简化主机的管理,使具有很少选路信息的主机逐渐建立较完善的路由表,从而找到最佳路由。
(2) ICMP超时报文发送功能
ICMP超时报文发送功能是在设备收到IP数据报文后,如果发生超时差错,则将报文丢弃并给源端发送ICMP超时差错报文。
设备在满足下列条件时会发送ICMP超时报文:
l 设备收到IP数据报文后,如果报文的目的地不是本地且报文的TTL字段是1,则发送“TTL超时”ICMP差错报文;
l 设备收到目的地址为本地的IP数据报文的第一个分片后,启动定时器,如果所有分片报文到达之前定时器超时,则会发送“重组超时”ICMP差错报文。
(3) ICMP目的不可达报文发送功能
ICMP目的不可达报文发送功能是在设备收到IP数据报文后,如果发生目的不可达的差错,则将报文丢弃并给源端发送ICMP目的不可达差错报文。
设备在满足下列条件时会发送目的不可达报文:
l 设备在转发报文时,如果在路由表中没有找到对应的转发路由,且路由表中没有缺省路由,则给源端发送“网络不可达”ICMP差错报文;
l 设备收到目的地址为本地的数据报文时,如果设备不支持数据报文采用的传输层协议,则给源端发送“协议不可达”ICMP差错报文;
l 设备收到目的地址为本地、传输层协议为UDP的数据报文时,如果报文的端口号与正在使用的进程不匹配,则给源端发送“端口不可达”ICMP差错报文;
l 源端如果采用“严格的源路由选择”发送报文,当中间设备发现源路由所指定的下一个设备不在其直接连接的网络上,则给源端发送“源站路由失败”的ICMP差错报文;
l 设备在转发报文时,如果转发接口的MTU小于报文的长度,但报文被设置了不可分片,则给源端发送“需要进行分片但设置了不分片比特”ICMP差错报文。
ICMP差错报文的发送虽然方便了网络的控制管理,但也存在一定的弊端:
l 由于发送大量的ICMP报文,增大了网络流量。
l 如果设备接收到大量需要发送ICMP差错报文的恶意攻击报文,设备会因为处理大量该类报文而导致性能降低。
l 由于重定向功能会在主机的路由表中增加主机路由,当增加的主机路由很多时,会降低主机性能。
l 由于ICMP目的不可达报文传递给用户进程的信息为不可达信息,如果有用户恶意攻击,可能会影响终端用户的正常使用。
为了避免上述现象发生,可以关闭设备的ICMP差错报文发送功能,从而减少网络流量、防止遭到恶意攻击。
表1-7 配置ICMP差错报文发送功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启ICMP重定向报文发送功能 |
ip redirects enable |
必选 缺省情况下,ICMP重定向报文发送功能处于关闭状态 |
关闭ICMP超时报文发送功能 |
undo ip ttl-expires |
必选 缺省情况下,ICMP超时报文发送功能处于开启状态 |
开启ICMP目的不可达报文发送功能 |
ip unreachables enable |
必选 缺省情况下,ICMP目的不可达报文发送功能处于关闭状态 |
关闭ICMP超时报文发送功能后,设备不会再发送“TTL超时”ICMP差错报文,但“重组超时”ICMP差错报文仍会正常发送。
在完成上述配置后,在任意视图下执行display命令可以显示配置IP性能后的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除IP、TCP和UDP的流量统计信息。
表1-8 IP性能优化显示和维护
操作 |
命令 |
显示所有TCP连接的状态 |
display tcp status |
显示TCP连接的流量统计信息 |
display tcp statistics |
显示UDP流量统计信息 |
display udp statistics |
显示IP报文统计信息 |
display ip statistics |
显示ICMP流量统计信息 |
display icmp statistics |
显示套接口信息 |
display ip socket [ socktype sock-type ] [ task-id socket-id ] |
显示FIB信息 |
display fib [ vpn-instance vpn-instance-name ] [ | { begin | include | exclude } regular-expression | acl acl-number | ip-prefix ip-prefix-name ] |
显示与指定目的IP地址匹配的FIB信息 |
display fib [ vpn-instance vpn-instance-name ] ip-address [ mask | mask-length ] |
清除IP报文统计信息 |
reset ip statistics |
清除TCP连接的流量统计信息 |
reset tcp statistics |
清除UDP流量统计信息 |
reset udp statistics |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!