实战案例:惊!工业环网刚运行一个多月出问题,丢包严重到 “全线告急”!

本期分享的案例是工业以太网的相关问题。

问题背景

近期呢,有不少朋友咨询工业环网方案如何部署?如何维护?今天来给大家分享一个典型工业场景案例。项目地是一个自来水厂,工作人员发现每隔1-2个月,控制中心的控制台PC访问和ping工业终端存在大量丢包,而ping直连的交换机则无丢包。这个项目用的是某M的工业交换机部署的ERPS环网架构,组网拓扑如下:

基础规划如下:

整个网段都是192.168.0.0/24机房交换机为RPL角色,RPL Owner端口位置如上拓扑显示其它环网交换机均为Normal角色

工业以太网中ERPS环网应用是非常常见的,可能有一些小伙伴不太了解机制原理,这里我简单普及一下。

ERPS环网基本原理

这是一个主环拓扑,基本工作原理如下:

正常工作状态下,RPL交换机和Normal交换机的状态机是“Idle”,RPL口是”阻塞“状态,逻辑上收敛成一个无环链路;存在链路故障,比如"滤药—脱水"这条链路挂了,所有环网交换机的状态机同步为“Protection”,此时RPL切换为“转发”,切换时间<50ms,逻辑上依旧是一个无环链路;链路恢复,比如“滤药—脱”水链路恢复,所有环网交换机的状态机同步为”Pending“并内置定时器WTR,因为没法判断这条恢复链路是否稳定,此时RPL口依旧是“转发”状态;当WTR定时器超时后恢复链路依然稳定,此时所有交换机同步切换为“Idle”状态机,RPL端口也切换为“阻塞”,切换时间<50ms。

好了,基本情况就是这样,记住这一点就行,这个是典型的”单主环“工作原理。

问题确认

这个项目网络异常时控制台PC ping工业终端大量丢包,进一步分析这些终端都是在ERPS环交换机上的,而ping非环交换机、直连交换机则无此问题,所以我们以交换机IP为目标测试:

可以明确确认,PC访问非直连的其它ERPS环网交换机时,链路上都会出现丢包问题!那么ERPS环网如何排查呢?主要从以下状态参数入手:

检查环网口物理链路是否有明显短路或不稳定故障;检查交换机的环网状态是否正常,这个要看“状态机”;抓取环网端口口的报文,分析ERPS检测包是否收发正常。基础排查

第一步、物理链路检查

确认环网交换机环网口之间的光纤连接正常,无松动、损坏迹象。同时,检查端口状态,发现端口均已正常UP,排除了物理链路层面的问题。

第二步、检查设备状态机

物理链路检查无问题,下一步需要进入路由CLI界面,命令的方式查看RPL交换机的ERPS状态机:

第一次敲击:
复制
<JIFANG-54> display erps ring 1 verbose Ring ID : 1 Description : Ring 102 Control Vlan : 1002 Protected Instance : 4092 Service Vlan : 500 to 600 WTR Timer Setting (min) : 1 Running (s) : 0 Guard Timer Setting (csec) : 200 Running (csec) : 0 Holdoff Timer Setting (deciseconds) : 0 Running (deciseconds) : 0 WTB Timer Running (csec) : 0 Ring State : Protection Port Port Role Port Status Signal Status -------------------------------------------------------------------------------- 10GE1/0/1 Common Forwarding Non-failed 10GE1/0/2 RPL Owner Forwarding Non-failed1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
第二次敲击:
复制
<JIFANG-54> display erps ring 1 verbose Ring ID : 1 Description : Ring 102 Control Vlan : 1002 Protected Instance : 4092 Service Vlan : 500 to 600 WTR Timer Setting (min) : 1 Running (s) : 0 Guard Timer Setting (csec) : 200 Running (csec) : 0 Holdoff Timer Setting (deciseconds) : 0 Running (deciseconds) : 0 WTB Timer Running (csec) : 0 Ring State : Pending Port Port Role Port Status Signal Status -------------------------------------------------------------------------------- 10GE1/0/1 Common Forwarding Non-failed 10GE1/0/2 RPL Owner Forwarding Non-failed1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.

从命令回显可以看到一个关键信息:

环交换机的环网口始终处于Forwarding(转发)状态,理论上数据转发不会丢包。但我们发现,Ring State(环网状态)在Pending和Protection之间切换非常频繁,即便是环网口处于转发模式但因状态机震荡过于剧烈,也是可能导致设备丢包的(比如1s震荡几百次)

那么造成震荡的原因可能是BUG,也可能是链路质量,下一步我们需要抓包看看到底是那条链路的ERPS检测报文交互存在异常。

第三步、抓包分析ERPS检测报文状态

抓包点位如下:

我们找到了环网检测包CCM发包异常的交换机是“送水泵房48”,通过wireshark分析过滤,有很多时候它的CCM检测发包间隔能打到17-34ms,这是完全不符合预期的:

我们看看正常的交换机“沉淀池 50”,基本上CCM发包间隔最多只有3ms,完全符合ERPS环网检测预期:

基本定位问题原因:

“送水泵房48”环交换机CCM检测包发包异常,导致ERPS整网状态剧烈震荡在Protection和Pending之间切换从而控制台访问工业终端时存在丢包问题。

解决方案

从上述分析发现时“送水泵房48”交换机发包异常,造成其原因有两种可能:

设备软件BUG设备环网口和链路质量不佳

对此找到了某M官网找了固件完成异常设备的升级,发现运行一段时间后问题依旧,还是这台设备发包异常。

再对其整改了光模块和光纤链路,历时3个月运行,问题未再发生,圆满解决(前文说过基础硬件检查光链路正常link和收发闪烁,但并不代表链路质量完全无问题)。

THE END
本站服务器由亿华云赞助提供-企业级高防云服务器