交换机产品S9306(V200R001C00SPC300)ICMP报文丢包故障分析

发布时间:  2014-09-12 浏览次数:  1385 下载次数:  0
问题描述
我司S9306作为核心交换机汇聚网点RJ交换机。
网点交换机在广域网上启用icmp探测机制,如果对端地址不可达,下端的VRRP将进行切换。
告警信息
 S9306交换机割接上线后,交换机出现告警,提示接收到超过100PPS的ICMP报文;
Apr 21 2013 01:56:35 GDHY2_WN_DS01 %%01SECE/4/ICMP_GLOBAL_RATELIMIT(l)[1020]:Rate of global icmp packets exceeds the limit( Threshold=100 packets per second).
 网点路由器VRRP主备在不断倒换(VRRP做了track线路探测,到出现ICMP无回应时,VRRP将主备倒换)。
处理过程
为了保护交换机免受其他恶意报文攻击,对经过交换机CPU处理的报文进行了限制(包括每秒个数和每秒的流量),从而增强交换机的稳定性。
在上CPU的报文的流量上,默认ICMP的流量阀值为192Kbps;默认CPU每秒只处理其中的100个报文。
 根据交换机的告警信息,发现该交换机接收到了超过100PPS的ICMP报文,该报文需要经过交换机的CPU处理。而单位时间需要经过交换机CPU处理的报文数量是有限制的,默认ICMP报文的数量为100PPS(100个包每秒),如果超过该数量值,交换机将超出的ICMP报文丢弃。

从交换机上采集的信息可以看出,上CPU的ICMP报文已经超过了100PPS,所以出现了交换机的告警。
 从抓包上来看, 上CPU的ICMP报文的流量有时也会超过了默认的流量阀值,从而导致ICMP超出的流量将被丢弃。
网点发出的ICMP报文计算结果为:(78+24)*8*12*11=107712bit。


 调整上CPU的ICMP报文流量阀值(Kbit bps):
cpu-defend policy test
car packet-type icmp cir 1000 cbs 188000
cpu-defend-policy test global

 调整上CPU的ICMP报文的速率阀值(pps)
icmp rate-limit total threshold 500

 开启交换机ICMP快速回应功能
icmp-reply fast
根因
 收集上送交换机CPU的ICMP报文的统计信息,ICMP报文为123PPS。


 网点路由器配置
interface VLAN 160
no ip proxy-arp
ip access-group 160 in
ip access-group 160 out
ip address 10.15.25.61 255.255.255.224
vrrp 160 priority 105
vrrp 160 preempt delay 60
vrrp 160 ip 10.15.25.62
vrrp 160 track 10.243.49.65 interval 20 timeout 20
每20秒发送一个icmp报文进行探测

 抓取交换机上所有ICMP报文的数据包,通过分析发现源10.243.48.74每1秒发送了11个78字节的数据包到目的10.243.48.73。类似的源和目的如下:












建议与总结
由于S9306交换机接收到ICMP报文绝大部分为网点路由器发出的,所以网点的数量将决定交换机总体接收到的ICMP报文的数量。通过查看交换机上ospf邻居状态,FULL状态的邻居为41个,绝大部分网点的路由器均上线,进而上述处理过程中设置的阀值是满足该地市的要求的,不会出现ICMP阀值超出从而丢包的问题。
另:网点设备的track值设置的为20秒发送一个icmp报文,但实际在S9306交换机上抓取的报文为每1秒钟为11个ICMP报文(既每个启用了VRRP的路由器,每秒发送了11个ICMP报文到S9306交换机),需要对网点设备进行分析,找出大量发送ICMP报文的原因。

END