工业网络里有一种故障很容易发生在设备改造之后:原来两台交换机之间只有一根上联线,PLC、工控机、HMI和远程I/O运行一直正常,为了“提高可靠性”,维护人员又在两台交换机之间增加了一根网线,想让其中一根断掉以后还有备用。结果网线刚插上不久,整个网络就开始变慢,HMI画面刷新延迟,PLC偶尔通信超时,交换机端口指示灯高速闪烁,有时连普通Ping都忽高忽低。拔掉后来增加的那根网线,网络又立即恢复。遇到这种现象,首先应该想到的不是交换机性能不够,而是两条线路可能让二层网络形成了环路。普通以太网交换机并不会因为出现两条物理路径就自动理解哪一条应该作为“备用”,如果网络中没有正确配置环网协议或生成树机制,同一个广播报文可能沿不同路径不断被交换机转发,最终把正常通信淹没。
要理解这种故障,先要知道交换机处理普通以太网帧的基本方式。交换机可以根据MAC地址表判断某些数据应该从哪个端口发出,但广播帧、未知目标MAC地址的数据以及部分组播流量,通常需要向多个相关端口转发。如果网络拓扑中不存在闭环,这些报文传播到网络边缘后自然结束;一旦两台或多台交换机通过多条线路形成封闭路径,同一个报文就可能被不断复制并沿环路循环。以太网二层帧本身不像IP数据包那样依赖TTL逐跳递减来自动终止这种循环,因此错误的物理环路可能迅速产生大量重复流量。现场最终看到的往往不是“某一台设备彻底断线”,而是所有设备都变得不稳定,这也是网络环路与普通网线断路最明显的区别之一。
广播风暴只是环路带来的一个结果,MAC地址表反复变化同样会让通信变得混乱。同一个PLC的MAC地址可能一会儿从交换机端口1被学习到,一会儿又因为环路中的重复数据从端口2出现,交换机不断更新地址表,导致本来应该明确的数据转发路径发生抖动。网络规模越大、广播和组播设备越多,这种影响越明显。工业现场中的PLC发现、设备名称识别、ARP、部分实时通信和设备扫描都会产生一定的广播或组播流量,因此一个原本负载并不高的网络,在形成环路以后也可能很快出现严重拥塞。维护人员如果只看交换机是“千兆的”,认为几十台设备不可能把带宽用满,就容易忽略这些流量并不是正常业务数据,而是在网络内部重复转发出来的异常流量。
最典型的环路来自交换机之间重复连接,但并不只有这一种情况。设备扩建过程中,一根来自A交换机的网线经过多个控制柜后又被接回原网络,也可能无意中形成闭环;某些工控机同时连接两个设备网口,如果启用了网桥、网络共享或特殊转发功能,也可能改变原网络拓扑;维护人员临时用小交换机连接两个原本已经互通的网络,同样可能造成新的闭环。更难查的是控制柜内存在一根多年没有使用的备用网线,后期维修人员不知道另一端已经接在交换机上,又把它插入一个空闲端口,网络环路就这样突然出现。因此,排查时不能只盯着最新增加的交换机,还要按照实际网线走向画出拓扑,确认任意两个网络节点之间是否出现了未经设计的重复二层路径。
具备管理功能的工业交换机通常可以通过相应的环网或生成树机制处理冗余路径,但“交换机支持环网”并不代表把线接成圈以后就一定安全。不同设备可能支持RSTP、MSTP或厂家提供的工业环网机制,具体协议、端口角色和配置方式需要按照整个网络设计统一设置。如果一部分交换机开启了某种环网协议,另一部分普通交换机却没有对应配置,或者维护时把原环网端口插到了普通业务端口上,原本应该被阻塞或管理的备用路径仍可能参与普通数据转发。工业网络冗余的关键不是物理上多接一根线,而是让交换设备能够识别冗余拓扑,并在正常状态下管理其中一条路径,在主链路故障后按照设计完成切换。没有协议控制的双线连接,只能算形成了两个物理连接,不能直接等同于真正的网络冗余。
排查疑似环路时,一个非常实用的现象是观察交换机端口状态。如果网络突然异常,而多个端口指示灯几乎持续高速闪烁,即使设备本身没有大量数据传输,也值得怀疑异常广播或重复流量。可管理交换机还可以查看端口流量、广播包数量、错误统计、MAC地址变化以及生成树状态等信息。若某几个互联端口流量突然明显高于平时,而实际生产业务并没有同步增加,应继续沿这些链路检查。现场急于恢复生产时,可以根据原网络拓扑和安全操作要求逐步断开最近新增或可疑的冗余连接,观察网络是否恢复,但不能在不清楚设备通信关系的情况下随机拔线,因为某些链路本身可能承担关键控制通信。
网络环路和普通带宽拥塞也要区分。真正的业务流量过大,例如多个高分辨率工业相机持续传输图像,也会造成端口利用率升高,但这种负载通常与设备运行状态有明确关系,停止图像采集后流量会明显下降。环路流量则可能在没有明显生产数据的情况下持续存在,并快速扩散到整个二层网络。如果只有某一台相机数据慢,而其他PLC通信稳定,更适合检查单端口带宽、网线和相机配置;如果原本互不相关的PLC、HMI、工控机和远程I/O同时出现延迟,则应该从公共网络结构、交换机互联和广播异常方向检查。判断故障影响范围,是区分局部设备问题和网络拓扑问题的重要方法。
设备网络扩建时,最好不要采用“哪里还有空口就接哪里”的方式。每新增一台交换机、一条上联或一条备用线路,都应该知道它在现有拓扑中的位置。规模较小的产线也建议保留简单的网络拓扑图,标明交换机、PLC、工控机、HMI、远程I/O以及交换机之间的连接关系。以后设备出现通信异常时,可以迅速判断某根线断开会影响哪些节点,也能避免把两个本来已经连通的交换机再次相连。对于有冗余要求的关键设备网络,应在设计阶段确定所采用的环网或生成树方案,并统一交换机配置,而不是设备运行几年以后临时增加一根“备用网线”。
工业交换机网络出现全网时通时断、端口持续高速闪烁或者增加一条线路后故障突然出现时,比较有效的排查顺序是先确认最近有没有改变网络拓扑,再画出交换机之间的实际连接关系,检查是否形成闭环,随后利用管理交换机诊断信息查看异常广播、端口流量和环网状态。真正需要冗余时,应使用交换机明确支持并按照设计正确配置的网络冗余机制,而不能简单把两根网线并接成两条通路。涉及PLC、工业交换机和生产网络调整时,应提前保存原网络配置和拓扑资料,避免在设备运行过程中随意启用网桥、改变环网参数或增减关键链路;具体冗余协议、端口配置和恢复方式应以交换机技术资料及设备网络设计要求为准。