实战案例:两台交换机汇聚互联,两边的终端却一部分能通、一部分不通?原来中间有…
本期分享的案例是有线网络的相关问题。
这是一个工业网络的项目,客户是一家专做机器人解决方案的集成商。近期在某新厂区中采购了两台某P交换机本地组网,两台交换机通过网线汇聚互联,模式为静态汇聚(有台交换机不支持动态LACP),交换机下面各自挂在不同的终端设备,拓扑如下:
然而,一段时间后用户发现,A、B区域之间部分终端通信出现了异常,而部分终端之间通信却又是正常的,比如:
A区域的IO_device正常通B区域的CPU1A区域的硬盘录像机正常通B区域的摄像机1A区域的CPU2与B区域的IO_device通信出现异常A区域的硬盘录像机与B区域的摄像机2通信出现异常这种部分通的情况非常奇怪,要说是线路故障,那A、B两边应该彻底断联才是。OK,那就一起来看看这个“奇怪”的问题吧!
排查分析第一步:确认问题现象
是因为存在终端之间通信异常问题,所以在A区域插上一台测试电脑观察与B区域的连通性情况,果然是存在部分终端的通信异常:
A区域的PC 能ping通B区域的光端机1、光端机2、摄像机1、摄像机2等设备A区域的PC 无法ping通B区域的CPU1、IO_device等设备那么这些设备是不是可能离开网络了?为了验证想法,将PC插到B区域的交换机上验证。
第二步:确认目标设备是否存在网络中
首先B区域的CPU1和IO_device分别接的是B交换机的端口1和端口2,我们登录该交换机查看端口状态:
显然是亮的,然后把电脑插在B交换机上ping这两个设备,都通,说明B区域的目标设备存在网络中:
玄学了!B区域中该设备都在,从A区域去访问为啥直接不通呢?那么就要考虑汇聚互联的问题了,下一步检查汇聚端口。
第三步:确认两端汇聚端口
进入A区域交换机查看汇聚端口的状态:
进入B区域交换机查看汇聚端口的状态:
看到这里非常奇怪,两边的网线不是直连的么?怎么会出现一端亮一端不亮的情况?
其实到这里就已经能明确问题原因了,因为汇聚是根据MAC或者IP通过hash的方式选出口的,如下:
A区域的PC访问B区域的CPU1或IO_device设备时,因为A交换机7口异常,走的时6口;B区域的CPU1或IO_device设备收到包后,由于B交换机3、5口正常link,所以响应的数据包概率性会hash到5口出去;数据包从B交换机的5口出去后,自然时到达不了A交换机故障7口了,所以造成不通的问题。那么现在就只有最后一个疑问了:为啥网线直连,A交换机7口不亮而B交换机的5口却是亮的呢?
答案恐怕呼之欲出:拓扑给的不对,中间可能不是直连而是经过未知设备!
第四步:拓扑梳理
因为我不相信用户现场的描述,所以让他直接给我梳理汇聚链路的拓扑,发现是这样的:
终于找到答案,中间是通过两对光纤收发器接过去的......A交换机网口7那条网线故障,才导致汇聚异常。
原因和解决方案原因总结:两边汇聚端口的状态不对等导致链路存在丢包问题。
解决方案:
方案1:修复故障的网线链路方案2:换成支持LACP的机型使用,但这里需要考虑一个点是中间的光纤收发器是否支持透传LACP,如果不支持就没必要了。