S7700下连的多台服务器经常性无法互通故障

发布时间:  2015-12-25 浏览次数:  796 下载次数:  0
问题描述
如图1-1所示,一台S7706(V200R001C00SPC300软件版本以及 V200R001SPH007补丁)作为服务器区汇聚交换机,同时作为所有服务器的网关。S7700划分多个VLAN,每个VLAN中部署多台服务器,不同VLAN中的服务器有业务互通需求。

图1-1 组网图



管理员发现服务器之间有时能够互通,有时无法互通,如VLAN 100的服务器10.1.2.6和VLAN 500的服务器10.1.4.11之间有时可以互通,有时业务中断,互Ping时出现丢包。

配置如下(接口均为access类型,配置略):

vlan 100 
description ==hongruan== 
vlan 101 
description ==hongruan-sub== 
vlan 200 
description ==tianyu== 
vlan 300 
description ==xiweier== 
vlan 400 
description ==UT== 
vlan 500 
description ==xike== 
vlan 600 
description ==dongfangwangxin== 
vlan 700 
description ==guanyong== 
vlan 900 
description ==shiboyun== 
vlan 1000 
description ==wangguan== 

interface Vlanif100 
description ==hongruan== 
ip address 10.1.2.3 255.255.255.192 

interface Vlanif101 
ip address 10.1.2.67 255.255.255.192 

interface Vlanif200 
description ==tianyu== 
ip address 10.1.2.131 255.255.255.128 

interface Vlanif300 
description ==xiweier== 
ip address 10.1.3.3 255.255.255.128 

interface Vlanif400 
ip address 10.1.3.131 255.255.255.128 
vrrp vrid 7 virtual-ip 10.1.3.129 

interface Vlanif500 
ip address 10.1.4.3 255.255.255.128 

interface Vlanif600 
ip address 10.1.4.131 255.255.255.128 

interface Vlanif700 
ip address 10.1.5.3 255.255.255.128 

interface Vlanif900 
ip address 10.1.6.3 255.255.255.128 

interface Vlanif1000 
ip address 10.1.254.2 255.255.255.128 
#
处理过程
1、查看设备ARP表,发现在业务不通的时候,IP地址对应的ARP表项消失, 通过在S7700上执行命令display arp track发现有删除ARP表项的日志,而ARP表项删除的时间点与服务器统计到的丢包时间点吻合。

[S7700] display arp track
Operate Flags: M - Modify, D - Delete
--------------------------------------------------------------------------------
Op IP-Address      MAC-Address    VLAN Old-Port     New-Port     System-Time   
--------------------------------------------------------------------------------
M  10.1.3.180      e41f-1360-0710 400  GE1/0/39     GE1/0/40     09-05 12:34:35
D  10.1.2.6       f01f-afd2-9cd6 300   GE2/0/30                  09-05 12:34:59
D  10.1.4.11       e0db-5524-f9d8 500  GE2/0/10                  09-05 12:35:33

通过以上ARP轨迹可以推测出服务器Ping丢包是由于S7700上的ARP表项删除导致。S7700无法同时处理过多的APR请求报文,未能及时回应ARP Reply报文给服务器,在老化周期内删除该服务器的ARP表项。

2、通过执行命令display cpu-defend statistics packet-type arp-request all,可以查看到如下信息:

[S7700] display cpu-defend statistics packet-type arp-request all 
Statistics on mainboard: 
------------------------------------------------------------------------------- 
Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets) 
------------------------------------------------------------------------------- 
arp-request            79785920     13193856         1246655          206154 
------------------------------------------------------------------------------- 
Statistics on slot 1: 
------------------------------------------------------------------------------- 
Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets) 
------------------------------------------------------------------------------- 
arp-request             3730112            0           58283               0 
------------------------------------------------------------------------------- 
Statistics on slot 2: 
------------------------------------------------------------------------------- 
Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets) 
------------------------------------------------------------------------------- 
arp-request            73818304     20585792         1153411          321653 
------------------------------------------------------------------------------- 
Statistics on slot 3: 
------------------------------------------------------------------------------- 
Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets) 
------------------------------------------------------------------------------- 
arp-request              531264            0            8301               0 
------------------------------------------------------------------------------- 
Statistics on slot 5: 
------------------------------------------------------------------------------- 
Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets) 
------------------------------------------------------------------------------- 
arp-request                 N/A          N/A               0               0 
------------------------------------------------------------------------------- 
Statistics on slot 6: 
------------------------------------------------------------------------------- 
Packet Type         Pass(Bytes)  Drop(Bytes)   Pass(Packets)   Drop(Packets) 
------------------------------------------------------------------------------- 
arp-request            15580920            0          232981               0 
-------------------------------------------------------------------------------

3、分别在S7706上进行服务器的静态ARP绑定,保证在测试期间服务器的ARP表项没有变化。进行Ping测试,没有出现丢包现象。

通过以上定位,可以证明由于下游的ARP Request报文量过大,导致服务器正常的ARP Request报文被随机丢弃,在正常老化周期内,该服务器的ARP表项被删除,导致下游服务器Ping丢包。

4、S7700上面配置auto-defend策略查发送ARP Request报文过多的服务器MAC地址,配置命令如下:

cpu-defend policy test
auto-defend enable
auto-defend attack-packet sample 5  //每5个报文抽样识别一次,抽样值过小会消耗过多CPU
auto-defend threshold 30  //上送CPU的报文速率的阈值
auto-defend trace-type source-mac  //基于源MAC进行服务器识别
auto-defend protocol arp  //针对ARP报文进行识别
cpu-defend-policy test global  //在全局下应用策略

5、执行命令display auto-defend attack-source slot 2,查看发送超过设定阈值ARP Request报文的服务器MAC。

Attack Source User Table (MPU):  
------------------------------------------------------------------------------------------------ 
  MacAddress       InterfaceName      Vlan:Outer/Inner      TOTAL 
------------------------------------------------------------------------------------------------ 
0000-0000-00db   GigabitEthernet2/0/22         193           416

也可以执行命令display logbuffer,查看ARP Request报文被丢弃的服务器MAC地址。
根因
下游服务器发送大量的ARP Request报文上送S7700,而S7700处理ARP Request报文数量有限,从而出现正常的服务器ARP Request报文被交换机防护机制(CPCAR)丢弃掉,无法上送至交换机的CPU处理。

在老化周期内,S7700上的ARP表项被老化掉,从而导致下游不同VLAN间服务器无法互通。
解决方案
服务器系统自动每秒发送几十个ARP报文,调整频率为每秒发送1个ARP报文后,业务恢复正常。
建议与总结
交换机转发平面故障应先检查控制平面表项信息,大多数二层问题都是因协议报文CPCAR超限导致。

END