最近我和冯工去了一家生产企业,这家企业使用了很多国外进口的机器装置来生产汽车配件,随着机器设备的增多及数字化的管理手段的要求,企业数据就要和现场的设备进行交互,不过在进行IT和OT融合的时候,前期并没有进行很好的网络规划,而是直接从IT侧拉过一根网线和装置的现场网络相连,用户描述现场网络总会莫名其妙出现网络中断,那么今天我给大家讲清楚这背后的原因以及解决这个问题的方法。
首先,我们在现场看到了现场PN设备和IT网线都连接至一个知名的第三方的交换机上,基本上采用星型的拓扑连接方式,那么我们首先要使用Bany来检测一下来自IT网线上的数据是否包含大量的广播数据或者高负荷的数据,然而可能是由于这根网线连接到IT侧的端口是千兆口,不能使用Bany的T1/T2口进行抓包,也就是基于这样的原因,我当时改Bany的T3/T4口代替T1/T2口和更换网线等方式进行测试,在更换连接方式过程中,发现每当插入IT网线到该交换机时就会出现生产装置急停,实际上就是PN IO通信中断。此时,我们已经看到了这个故障现象,也知道了其中的一点端倪。
为了验证我们的想法,使用Bany捕捉当网线插入前后,PN网络中的IO控制器的所有出入的报文,然后使用Wireshark打开,使用IO图表来查看插入网线前后的报文流量情况,可见网络流量突然消失,中间间隔约30秒后恢复,看到这里,大家是否知道这个30秒是什么时间呢?
这个30秒是典型的生成树协议STP收敛的时间,就是说当STP检测到直连链路扑发生变化,STP会使网络进行重构,此时交换机的地址表全部复位,重新进行学习,重新建立正常的没有环路的树型网络拓扑。然后使用_ws.col.protocol == "PNIO-CM" or pn_dcp or pn_io or stp or arp过滤条件,查看详细的报文情况,可见PN IO通信中断到通信恢复过程中都是STP的协议。这就证明了我们的推测,表明插入网线,生成树协议发现拓扑变化,进行重新收敛,促使交换机刷新地址表,从而导致PN网络通信中断。
此外,由于该交换机支持VLAN功能,从而导致IO设备的PN报文的优先级出VLAN接口的时候就会丢失,这意味着PN通信的实时性无法得到保证。
这是典型的IT/OT融合过程中网络出现的问题,我给用户的建议是采用西门子工厂自动化典型的网络推荐,Cell层对应用户全部的机器装置,然后通过环网连接至汇聚层,在与IT连接的中间,使用带有数据中心和DMZ的骨干层网络进行连接,用户对此方案很满意,开始积极推动现场的网络改造。