华为S系列交换机二层环路故障配置不合理案例:大量TC报文导致框式交换机ARP学习异常

组网情况
如图所示,Switch-A和Switch-B通过Eth-Trunk链路直连,配置VRRP协议,Switch-A为VRRP主设备,Switch-B为VRRP备设备。Switch-A和Switch-B做三层网关,下挂多台接入交换机做二层,均使能了STP协议进行破环。二层交换机与接入用户相连。

大量TC报文导致框式交换机ARP学习异常组网图

现象描述
Switch-A交换机上ARP学习异常,有很多Incomplete的ARP表项,下面用户终端的ARP时有时无,业务不稳定。

原因分析
Switch下挂的二层交换机上,STP域的边缘端口均没有配置stp edged-port enable,这些端口状态发生变化时会发送TC报文,Switch收到后进行STP收敛处理,立即清除ARP表项或进行老化探测处理Switch上因为ARP数量比较多,发送大量ARP请求报文进行探测,收到用户的ARP应答报文比较多,超过了cpcar值,部分ARP应答报文丢弃,这些ARP将被老化删除,对应用户业务不能使用。Switch频繁收到这样的TC报文,业务更加不稳定。

操作步骤
1、登录设备进行观察,查看VLANIF27接口下的ARP。该VLANIF接口接入的是经常在线的用户的服务器。长时间观察,发现接口下的ARP总数有时在50个左右,有时在20个左右,数量不稳定。同时还有Incomplete状态的ARP,IP地址也不固定。学习到的ARP表项的老化时间有时都为0。
<Switch-A> display arp interface vlanif 27
IP ADDRESS MAC ADDRESS EXPIRE(M) TYPE INTERFACE VPN-INSTANCE
VLAN/CEVLAN
——————————————————————————
10.212.4.3 0025-9e7f-fd01 I – Vlanif27
10.212.4.129 0014-38b9-73c3 0 D-0 Eth4/0/42
27/-
10.212.4.133 00e0-fc94-cddd 0 D-0 Eth4/0/42
27/-
10.212.4.203 0018-7172-5901 0 D-0 Eth4/0/42
27/-
10.212.4.107 0011-43a3-388f 0 D-0 Eth4/0/42
从现象看,Switch应该是收到了TC报文,进行了老化ARP的操作。

2、通过display stp tc命令也可以看到端口收到的TC报文情况:
[Switch-A-hidecmd] display stp tc
———- Stp Instance 0 tc or tcn count ———-
Port GigabitEthernet1/0/0 0
Port GigabitEthernet1/0/1 0
Port GigabitEthernet1/0/2 0
Port GigabitEthernet1/0/3 0
Port GigabitEthernet1/0/4 87
Port GigabitEthernet1/0/5 123
Port GigabitEthernet1/0/6 99
Port GigabitEthernet1/0/8 71
Port GigabitEthernet1/0/9 173
Port GigabitEthernet1/0/10 146
Port GigabitEthernet1/0/13 8
Port GigabitEthernet1/0/21 0

3、分析日志,日志中也显示收到TC报文、进行ARP表项老化处理的记录:
Apr 19 2011 09:59:58 DCN_S9306_A %%01MSTP/6/RECEIVE_MSTITC(l): MSTP received BPDU with TC, MSTP process 0 instance 0, port name is Ethernet4/0/46.
同时有arp-reply报文的cpcar丢弃记录:
Apr 19 2011 09:28:13 DCN_S9306_A %%01QOSE/4/CPCAR_DROP_LPU(l): Some packets are dropped by cpcar on the LPU in slot 1. (Protocol=arp-reply, Drop-Count=061)

基于上面的信息,分析得出:Switch频繁收到TC报文,进行老化ARP表项的操作。设备需要发送大量ARP探测报文,用户终端回应arp-reply报文的数量也很多,超过了cpcar的car值,部分应答报文丢弃,ARP表项就会老化删除,影响到业务应用。

Switch收到的TC报文是下面的接入交换机发送的。接入交换机直接连接PC,端口使能了STP,但是没有配置stp edged-port enable。PC在开机和关机时,很多边缘端口UP、DOWN,交换机就会反复发送TC报文。

将这些边缘端口配置stp edged-port enable后,经过几天的观察,没有再出现问题了,业务运行正常。

建议与总结
类似的问题出现过很多次,交换机做网关,下挂二层交换机接入用户,网络中使用STP协议破环。通常,二层交换机上的STP边缘端口都没有配置stp edged-port enable。用户PC上线、下线,端口就会反复UP/DOWN,设备向STP根节点发送TC报文。网关设备频繁进行STP收敛,清除ARP,导致ARP学习异常。

这种应用场景下,推荐配置:

交换机上配置stp converge normal,这样交换机收到TC报文,不会立即清除ARP,而是发起ARP探测,探测失败才会删除ARP,对流量转发不会造成很大的影响;
二层交换机的STP边缘端口上配置stp edged-port enable,这样边缘端口的状态变化不会引起网络反复进行STP收敛。

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