晚上好,我的网工朋友。
在复杂多变的网络环境中,网工就没有不遇到问题的,习惯了,兵来将挡水来土掩。
那ARP异常你遇到过吗?ARP作为网络中的基础协议之一,它的稳定性对整个网络的性能和可靠性至关重要。
比如说,交换机上遇到了大量的不完整ARP表项导致用户终端的ARP缓存不稳定,这个情况,怎么自查,怎么解决?
问题的关键点是STP配置不当还是拓扑变化频繁?又或是其他原因。
假如你也遇上了这样的问题,怎么分析,怎么解决,怎么确保网络业务连续性,可以参考一下这篇方案。
今日文章阅读福利:《 Netdiscover-ARP侦查工具 》
既然说到ARP,今天就给你分享个网络扫描工具Netdiscover,通过ARP扫描发现活动主机,可以通过主动和被动两种模式进行ARP扫描。通过主动发送ARP请求检查网络ARP流量,通过自动扫描模式扫描网络地址。
私信我,发送暗号“Netdiscover”(建议复制一下直接发),获取资料。
01 组网情况
这次详解,涉及产品和版本是S交换机所有产品和版本。
如图1所示,Switch-A和Switch-B通过Eth-Trunk链路直连,配置VRRP协议,Switch-A为VRRP主设备,Switch-B为VRRP备设备。
Switch-A和Switch-B做三层网关,下挂多台接入交换机做二层,均使能了STP协议进行破环。二层交换机与接入用户相连。
02 现象描述
Switch-A交换机上ARP学习异常,有很多Incomplete的ARP表项,下面用户终端的ARP时有时无,业务不稳定。
03 原因分析
Switch下挂的二层交换机上,STP域的边缘端口均没有配置stp edged-port enable;
这些端口状态发生变化时会发送TC报文,Switch收到后进行STP收敛处理,立即清除ARP表项或进行老化探测处理Switch上。
因为ARP数量比较多,发送大量ARP请求报文进行探测,收到用户的ARP应答报文比较多,超过了cpcar值,部分ARP应答报文丢弃,这些ARP将被老化删除,对应用户业务不能使用。
Switch频繁收到这样的TC报文,业务更加不稳定。
04 操作步骤
登录设备进行观察,查看VLANIF27接口下的ARP。该VLANIF接口接入的是经常在线的用户的服务器
长时间观察,发现接口下的ARP总数有时在50个左右,有时在20个左右,数量不稳定。同时还有Incomplete状态的ARP,IP地址也不固定。学习到的ARP表项的老化时间有时都为0。
从现象看,Switch应该是收到了TC报文,进行了老化ARP的操作
通过display stp tc命令也可以看到端口收到的TC报文情况:
分析日志,日志中也显示收到TC报文、进行ARP表项老化处理的记录:
同时有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后,经过几天的观察,没有再出现问题了,用户的业务运行正常。
05 建议与总结
类似的问题出现过很多次,交换机做网关,下挂二层交换机接入用户,网络中使用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收敛。
整理:老杨丨10年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部