arp报文过多导致S9300下挂服务器有时出现无法互通故障

发布时间:  2016-10-05 浏览次数:  230 下载次数:  0
问题描述

某园区使用一台S9306作为服务器区汇聚交换机,同时作为所有服务器的网关。S9300划分多个VLAN,每个VLAN中部署多台服务器,不同VLAN中的服务器有业务互通需求。

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

接口配置如下:

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 Vlanif500 

ip address 10.1.4.3 255.255.255.128 

处理过程

1、查看设备ARP的表项,发现在业务不通的时候,故障IP地址对应的ARP表项没有学习到;

2、通过在S9306上执行命令display arp track发现有删除ARP表项的日志,而ARP表项删除的时间点与服务器统计到的丢包时间点基本吻合。

[S9300] display arp track

Operate Flags: M - Modify, D - Delete

--------------------------------------------------------------------------------

Op IP-Address      MAC-Address    VLAN Old-Port     New-Port     System-Time   

--------------------------------------------------------------------------------

D  10.1.2.6       f01f-afd2-9cd6 100   GE2/0/30                  09-15 12:34:59

D  10.1.4.11      e0db-5524-f9d8 500   GE2/0/10                  09-15 12:35:33

3、从时间看服务器Ping丢包应该是由于S9306上的ARP表项被删除导致,那为何ARP表项什么情况下会被删除呢?一般是通过命令手动删除、端口down、arp老化等原因删除,客户反馈没有手动删除过,查看告警接口也没有出现up/down告警,那是否arp老化导致删除arp表项的呢?按正常情况在正常使用过程中arp是不会老化的,除非arp请求报文被丢弃;

4、通过执行命令display cpu-defend statistics packet-type arp-request all,查看arp请求报文的统计情况,从统计信息看有大量的arp请求报文被cpu丢弃;

[S9300] 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 

------------------------------------------------------------------------------- 

5、通过上述情况分析初步推测是arp请求报文被丢弃导致arp表项老化从而影响业务,为了进一步确定这种判断,尝试在S9306上进行服务器的静态ARP绑定,保证在测试期间服务器的ARP表项没有变化,然后进行Ping测试,经多次测试没有出现丢包现象。这基本可以验证之前的推测。

6、至于arp请求报文被丢弃,应该是有用户arp请求报文过多或者有arp攻击之类的导致,可以进一步在S9306上通过auto-defend策略来确定是哪个终端用户发出过多的arp请求报文:

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  //在全局下应用策略

7、配置策略并运行一段时间后执行命令display auto-defend attack-source slot 2,查看发送超过设定阈值ARP Request报文的服务器MAC。

Attack Source User Table (MPU):  

------------------------------------------------------------------------------------------------ 

  MacAddress       InterfaceName      Vlan:Outer/Inner      TOTAL 

------------------------------------------------------------------------------------------------ 

e01b-5124-a9d8   GigabitEthernet2/0/22         100           416

8、找出相应发送大量arp报文的服务器后检查服务器发现服务器系统自动每秒发送几十个ARP报文,调整频率为每秒发送1个ARP报文后,业务恢复正常;

根因

下挂服务器发送大量的ARP Request报文上送S9306,而S9306处理ARP Request报文数量有限,从而出现正常的服务器ARP Request报文被交换机防护机制(CPCAR)丢弃掉,无法上送至交换机的CPU处理。在老化周期内,S9306上的ARP表项被老化掉,从而导致下挂不同VLAN间服务器无法互通。

解决方案

调整服务器系统自动每秒发送ARP报文的频率后,业务恢复正常

END