實(shí)戰(zhàn)案例:驚!工業(yè)環(huán)網(wǎng)剛運(yùn)行一個(gè)多月出問題,丟包嚴(yán)重到 “全線告急”!
本期分享的案例是工業(yè)以太網(wǎng)的相關(guān)問題。
問題背景
近期呢,有不少朋友咨詢工業(yè)環(huán)網(wǎng)方案如何部署?如何維護(hù)?今天來給大家分享一個(gè)典型工業(yè)場(chǎng)景案例。項(xiàng)目地是一個(gè)自來水廠,工作人員發(fā)現(xiàn)每隔1-2個(gè)月,控制中心的控制臺(tái)PC訪問和ping工業(yè)終端存在大量丟包,而ping直連的交換機(jī)則無丟包。這個(gè)項(xiàng)目用的是某M的工業(yè)交換機(jī)部署的ERPS環(huán)網(wǎng)架構(gòu),組網(wǎng)拓?fù)淙缦拢?/p>
基礎(chǔ)規(guī)劃如下:
- 整個(gè)網(wǎng)段都是192.168.0.0/24
- 機(jī)房交換機(jī)為RPL角色,RPL Owner端口位置如上拓?fù)滹@示
- 其它環(huán)網(wǎng)交換機(jī)均為Normal角色
工業(yè)以太網(wǎng)中ERPS環(huán)網(wǎng)應(yīng)用是非常常見的,可能有一些小伙伴不太了解機(jī)制原理,這里我簡單普及一下。
ERPS環(huán)網(wǎng)基本原理
這是一個(gè)主環(huán)拓?fù)?,基本工作原理如下?/p>
- 正常工作狀態(tài)下,RPL交換機(jī)和Normal交換機(jī)的狀態(tài)機(jī)是“Idle”,RPL口是”阻塞“狀態(tài),邏輯上收斂成一個(gè)無環(huán)鏈路;
- 存在鏈路故障,比如"濾藥—脫水"這條鏈路掛了,所有環(huán)網(wǎng)交換機(jī)的狀態(tài)機(jī)同步為“Protection”,此時(shí)RPL切換為“轉(zhuǎn)發(fā)”,切換時(shí)間<50ms,邏輯上依舊是一個(gè)無環(huán)鏈路;
- 鏈路恢復(fù),比如“濾藥—脫”水鏈路恢復(fù),所有環(huán)網(wǎng)交換機(jī)的狀態(tài)機(jī)同步為”Pending“并內(nèi)置定時(shí)器WTR,因?yàn)闆]法判斷這條恢復(fù)鏈路是否穩(wěn)定,此時(shí)RPL口依舊是“轉(zhuǎn)發(fā)”狀態(tài);
- 當(dāng)WTR定時(shí)器超時(shí)后恢復(fù)鏈路依然穩(wěn)定,此時(shí)所有交換機(jī)同步切換為“Idle”狀態(tài)機(jī),RPL端口也切換為“阻塞”,切換時(shí)間<50ms。
好了,基本情況就是這樣,記住這一點(diǎn)就行,這個(gè)是典型的”單主環(huán)“工作原理。
問題確認(rèn)
這個(gè)項(xiàng)目網(wǎng)絡(luò)異常時(shí)控制臺(tái)PC ping工業(yè)終端大量丟包,進(jìn)一步分析這些終端都是在ERPS環(huán)交換機(jī)上的,而ping非環(huán)交換機(jī)、直連交換機(jī)則無此問題,所以我們以交換機(jī)IP為目標(biāo)測(cè)試:
可以明確確認(rèn),PC訪問非直連的其它ERPS環(huán)網(wǎng)交換機(jī)時(shí),鏈路上都會(huì)出現(xiàn)丟包問題!那么ERPS環(huán)網(wǎng)如何排查呢?主要從以下狀態(tài)參數(shù)入手:
- 檢查環(huán)網(wǎng)口物理鏈路是否有明顯短路或不穩(wěn)定故障;
- 檢查交換機(jī)的環(huán)網(wǎng)狀態(tài)是否正常,這個(gè)要看“狀態(tài)機(jī)”;
- 抓取環(huán)網(wǎng)端口口的報(bào)文,分析ERPS檢測(cè)包是否收發(fā)正常。
基礎(chǔ)排查
第一步、物理鏈路檢查
確認(rèn)環(huán)網(wǎng)交換機(jī)環(huán)網(wǎng)口之間的光纖連接正常,無松動(dòng)、損壞跡象。同時(shí),檢查端口狀態(tài),發(fā)現(xiàn)端口均已正常UP,排除了物理鏈路層面的問題。
第二步、檢查設(shè)備狀態(tài)機(jī)
物理鏈路檢查無問題,下一步需要進(jìn)入路由CLI界面,命令的方式查看RPL交換機(jī)的ERPS狀態(tài)機(jī):
- 第一次敲擊:
<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-failed
- 第二次敲擊:
<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-failed
從命令回顯可以看到一個(gè)關(guān)鍵信息:
環(huán)交換機(jī)的環(huán)網(wǎng)口始終處于Forwarding(轉(zhuǎn)發(fā))狀態(tài),理論上數(shù)據(jù)轉(zhuǎn)發(fā)不會(huì)丟包。但我們發(fā)現(xiàn),Ring State(環(huán)網(wǎng)狀態(tài))在Pending和Protection之間切換非常頻繁,即便是環(huán)網(wǎng)口處于轉(zhuǎn)發(fā)模式但因狀態(tài)機(jī)震蕩過于劇烈,也是可能導(dǎo)致設(shè)備丟包的(比如1s震蕩幾百次)
那么造成震蕩的原因可能是BUG,也可能是鏈路質(zhì)量,下一步我們需要抓包看看到底是那條鏈路的ERPS檢測(cè)報(bào)文交互存在異常。
第三步、抓包分析ERPS檢測(cè)報(bào)文狀態(tài)
抓包點(diǎn)位如下:
我們找到了環(huán)網(wǎng)檢測(cè)包CCM發(fā)包異常的交換機(jī)是“送水泵房48”,通過wireshark分析過濾,有很多時(shí)候它的CCM檢測(cè)發(fā)包間隔能打到17-34ms,這是完全不符合預(yù)期的:
我們看看正常的交換機(jī)“沉淀池 50”,基本上CCM發(fā)包間隔最多只有3ms,完全符合ERPS環(huán)網(wǎng)檢測(cè)預(yù)期:
基本定位問題原因:
“送水泵房48”環(huán)交換機(jī)CCM檢測(cè)包發(fā)包異常,導(dǎo)致ERPS整網(wǎng)狀態(tài)劇烈震蕩在Protection和Pending之間切換從而控制臺(tái)訪問工業(yè)終端時(shí)存在丟包問題。
解決方案
從上述分析發(fā)現(xiàn)時(shí)“送水泵房48”交換機(jī)發(fā)包異常,造成其原因有兩種可能:
- 設(shè)備軟件BUG
- 設(shè)備環(huán)網(wǎng)口和鏈路質(zhì)量不佳
對(duì)此找到了某M官網(wǎng)找了固件完成異常設(shè)備的升級(jí),發(fā)現(xiàn)運(yùn)行一段時(shí)間后問題依舊,還是這臺(tái)設(shè)備發(fā)包異常。
再對(duì)其整改了光模塊和光纖鏈路,歷時(shí)3個(gè)月運(yùn)行,問題未再發(fā)生,圓滿解決(前文說過基礎(chǔ)硬件檢查光鏈路正常link和收發(fā)閃爍,但并不代表鏈路質(zhì)量完全無問題)。