华为S系列交换机二层环路故障配置不合理案例:大量TC报文导致CPU利用率高

现象描述
1、通过网管监控的CPU利用率情况,如图所示:
通过网管监控看到的CPU利用率

2、同时设备上还出现CPU占用率过高的日志信息。
Switch %%01VOSCPU/4/CPU_USAGE_HIGH(l)[31]:The CPU is overloaded(CpuUsage=96%, Threshold=95%), and the tasks with top three CPU occupancy are:
FTS total : 18%
SRMT total : 11%
SOCK total : 8%
Switch %%01VOSCPU/4/CPU_USAGE_HIGH(l)[60]:The CPU is overloaded(CpuUsage=100%, Threshold=95%), and the tasks with top three CPU occupancy are:
PPI total : 41%
SRMT total : 10%
FTS total : 8%

3、同时设备上还有大量的ARP报文超过CPCAR后丢弃的日志记录。
Switch %%01DEFD/4/CPCAR_DROP_MPU(l)[56]:Rate of packets to cpu exceeded the CPCAR limit on the MPU. (Protocol=arp-miss, ExceededPacketCount=016956)
Switch %%01DEFD/4/CPCAR_DROP_MPU(l)[57]:Rate of packets to cpu exceeded the CPCAR limit on the MPU. (Protocol=arp-reply, ExceededPacketCount=020699)
Switch %%01DEFD/4/CPCAR_DROP_MPU(l)[58]:Rate of packets to cpu exceeded the CPCAR limit on the MPU. (Protocol=arp-request, ExceededPacketCount=0574

4、采集端口TC(Topology Change)报文收发情况。
使用命令display stp tc-bpdu statistics查看所有使能STP的端口接收到的TC报文计数。间隔5秒再次获取一次,可以看出所有端口接收到的TC报文计数在均在增长。

原因分析
通过查看端口的TC报文计数,发现端口收到大量的TC报文,且在不断增长。触发MAC删除、ARP表项刷新,设备处理大量arp-miss、arp-request和arp-reply报文,导致CPU升高,OSPF Hello报文、VRRP心跳报文不能及时处理,出现震荡。

问题判断方法
1、全局配置stp tc-protection。
配置此命令后可以保证设备频繁收到TC报文时,每2秒周期内最多只处理1次表项刷新,从而减少MAC、ARP表项频繁刷新对设备造成的CPU处理任务过多。

2、全局配置arp topology-change disable及mac-address update arp。
当设备收到TC报文后,默认会清除MAC、老化ARP。当设备上的ARP表项较多时,ARP的重新学习会导致网络中的ARP报文过多。配置arp topology-change disable、mac-address update arp后,在网络拓扑变化时,可以根据MAC地址的出接口变化刷新ARP表项出接口。可以减少大量不必要的ARP表项刷新。

注:V100R006版本开始支持mac-address update arp命令,V200R001版本开始支持arp topology-change disable命令。

建议与总结
在部署STP时,建议配置TC保护功能,所有连接终端的接口配置成边缘端口,这样可以避免某些端口的状态变化引起整个STP网络震荡而重新收敛。在处理CPU高的问题时,多关注CPCAR丢包情况。

ICP备案号:晋ICP备18007549号-1
站长微信:15534641008