网络环路导致网络瘫痪或中断是我们数据中心运维工作中经常遇到的问题,但是在规模较大的网络环境中,这种故障常常具有较强的隐蔽性,让我们无法快速高效地处理。

一天下午两点多钟,服务台突然接到电话,说多个业务系统无法访问虚机。到了公司机房,发现网络设备流量异常,VC控制台多台ESXI突然断开,短信告警信息频发,部分VC和EXSI设备脱管。

故障描述

登录汇聚层交换机,发现某些端口流量异常,并且有报网关地址冲突。

故障排查

通过上面的检查,初步判端故障出现在网元部分。通过查看端口登记发现,出问题的设备主要集中在网元交换机2华为S3952上,于是来到7号机房,发现它与上联的网元汇总交换机Cisco 2960的级联端口存在故障。这下故障点找到了,初步认为可能是这条网线坏了或者是端口假死了这样的小问题。于是把网线重新插拔一下,然而故障依旧,重新换了一条网线,还是不能解决故障。

分别用网线把笔记本电脑与这两个级联口接上,发现Cisco交换机的级联口一直为Down状态,而华为交换机的级联口就可以正常的UP。怀疑是Cisco这个级联口存在故障,于是在Cisco交换机上找了一个空口并作了数据,这回将两个交换机连上,端口可用了。满以为这下可以解决故障了,但谁知没过多久,端口又Down掉了。

接下来又将网线换回原来的接口,并对该接口进行shut、no shut操作,端口可用了,证明端口没有问题。通过Console口查看思科交换机的日志信息,提示网络内存在环路。又仔细观察了一下交换机的端口状态,有频闪现象,短时间内华为S3952交换机的CPU占用率达到100%,Cisco交换机的端口立刻Down了。

故障处理

故障点终于找到了,接下来操作就简单了。通过对3952交换机各端口的流量情况进行查看,发现第14、15口的流量存在异常,而该端口所连的是IMS 3328交换机。于是将这两个端口shut掉,关闭后网络恢复正常。经机房人员确认,BSC和CE均正常了,RNC设备还不好使。又到二层机房的RNC交换机3560上查看,发现级联口Down掉了。由于有了这前面的经验,且网络环路已经消除了,通过对端口重启,彻底清除了故障。

故障分析

环路到底是如何产生的呢?事后经查,是工程人员在为新增AC设备时放线后,擅自将网线接到了交换机上。而AC设备尚未进行数据配置VRRP等数据。由AC 之间的心跳线与交换机在二层构成环路,而华为等交换机默认没有开启loopback-detection和受控,造成了本次的故障。
交换机成环故障分析_第1张图片

经查阅相关资料,发现思科交换机在默认状态启用了错误检测(其中就包括环路检测),当检测到网络出现环路的时候,会自动关闭该端口。本次故障中正是由于网元汇总的思科交换机及时关闭了产生的环路接口,才没有对MSC、MGW、HLR等核心网元设备造成影响。但是当网络环路消除后,该阻塞端口无法自动开启,还需手动进行端口重启。

经验总结

现在的网络为了安全性和稳定性,普遍采用了冗余备份设计,而操作不当很容易造成环路。那么如何避免网络环路的发生和快速高效地排查环路故障呢?主要来讲有以下四点:

⒈ 开启交换机的环路检测功能。

一般情况下,正规的交换机都支持端口的环回检测功能,但是某些型号的交换机该功能默认是关闭的,需要手动开启。本故障中,如果3328交换机开启环路检测后,只对本IMS交换机下的AC设备造成影响,而使BSC、RNC等重要网元不受干扰。

⒉ 对交换机暂时不用的端口全部关闭,并对Console口配置密码

这样,不但可以提高网络的安全性,还可以避免造成误操作。

⒊ 处理故障应该沿着自下而上的步骤排查。

先从物理层查起,然后是数据链路层,以此类推。尤其注重日志信息、相关资料及其他网络工具的运用等,切记不要过分迷恋经验,有时候经验会让您步入歧途。

⒋“三分技术,七分管理”,加强机房管理。

对进入机房的工程人员,在施工前,必须严格履行申报审批制度;施工时,要由专人随工陪同,并做好防护措施和应急预案。

补充:

破环后的网络优化

1. 部署破环协议

如果当前的环路问题是由于物理环路引入,且没有配置破环协议,请按照网络规划合理部署破环协议。以太网交换机常见的破环协议为STP/RSTP/MSTP、RRPP、SEP等。

2. 提升链路质量和可靠性

如果当前环路问题是由于物理链路质量不可靠,存在协议报文拥塞丢失导致超时临时环路,请检查链路,并更换光纤光模块。如果当前问题因为带宽不足导致协议报文被丢弃,需要扩充带宽或者使用聚合链路(4条上联未捆绑,每2条连一个汇聚交换机),提升链路可靠性。

3. 部署广播抑制提升网络健壮性

为了避免再次成环,成环后再次引入广播风暴,建议在环上设备端口下,部署广播抑制,按照经验,部署1%的广播抑制可以很好的防止广播风暴。

4. 部署QoS保证协议报文优先转发

5. 优化网络设计,提升网络可靠性

复杂组网可以通过分层控制,建议合理规划设计接入层、汇聚层。单层组网内设备数量较多时,建议按照逻辑组织和地理分布,划分不同的域。

6、做端口的MAC地址绑定,虚拟化环境漂移会麻烦

7、提高网关端口的优先级