周毅
(中海油能源發(fā)展股份有限公司 采油服務(wù)公司,天津 300452)
作為智能船舶的“信息高速公路”,網(wǎng)絡(luò)平臺(tái)通過交換機(jī)、網(wǎng)關(guān)、服務(wù)器等網(wǎng)絡(luò)信息設(shè)備將船舶主要系統(tǒng)及設(shè)備如主推進(jìn)系統(tǒng)、輔機(jī)及電站系統(tǒng)、輔助設(shè)備及系統(tǒng)采集納入到一個(gè)統(tǒng)一的網(wǎng)絡(luò)中,實(shí)現(xiàn)信息的統(tǒng)一采集、分發(fā)、共享并得到有效的管理[1-2]。考慮網(wǎng)絡(luò)設(shè)備故障、病毒攻擊、環(huán)路等因素,網(wǎng)絡(luò)平臺(tái)系統(tǒng)可能面臨網(wǎng)絡(luò)風(fēng)暴的風(fēng)險(xiǎn),導(dǎo)致網(wǎng)絡(luò)傳輸性能下降,甚至網(wǎng)絡(luò)癱瘓,影響各智能應(yīng)用的正常運(yùn)行。各船的網(wǎng)絡(luò)環(huán)境不同,需針對(duì)各種類型船舶設(shè)定適合的網(wǎng)絡(luò)風(fēng)暴策略。目前挪威船級(jí)社(DNVGL)已經(jīng)強(qiáng)制要求船載計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)需按照相關(guān)規(guī)范要求完成并通過網(wǎng)絡(luò)風(fēng)暴測(cè)試[3]。CCS船級(jí)社要求智能船舶如需取得相應(yīng)的智能符號(hào),需完成并通過網(wǎng)絡(luò)風(fēng)暴測(cè)試[4]。
1)網(wǎng)絡(luò)設(shè)備選型不當(dāng)。三層網(wǎng)絡(luò)交換機(jī)在進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)時(shí),首先解析數(shù)據(jù)包中的目的IP物理設(shè)備的MAC地址(media access control address),如果交換機(jī)地址表中沒有對(duì)應(yīng)的MAC地址,將會(huì)發(fā)出廣播幀尋址,如果局域網(wǎng)中存在對(duì)應(yīng)MAC地址的物理終端,交換機(jī)將收到MAC地址回復(fù)幀,并加入到本身的路由表,且轉(zhuǎn)發(fā)數(shù)據(jù)包。如果交換機(jī)未收到MAC地址回復(fù)幀,則直接丟棄該數(shù)據(jù)包,從網(wǎng)絡(luò)通信機(jī)理上,三層交換機(jī)自身不會(huì)產(chǎn)生網(wǎng)絡(luò)風(fēng)暴。但是如果在網(wǎng)絡(luò)平臺(tái)設(shè)計(jì)中,選用二層交換機(jī)或多端口轉(zhuǎn)發(fā)器(HUB),上述網(wǎng)絡(luò)設(shè)備在收到數(shù)據(jù)包后,不會(huì)檢查數(shù)據(jù)包中的目的IP物理設(shè)備的MAC地址,直接轉(zhuǎn)發(fā)給局域網(wǎng)內(nèi)所有通信端口,很容易產(chǎn)生網(wǎng)絡(luò)風(fēng)暴。
2)網(wǎng)線短路?,F(xiàn)代交換機(jī)多采用存儲(chǔ)轉(zhuǎn)發(fā)技術(shù),將輸入端口接收的數(shù)據(jù)包暫時(shí)緩存,首先檢查數(shù)據(jù)包是否正確,同時(shí)過濾掉沖突包錯(cuò)誤,待確定數(shù)據(jù)包內(nèi)容、格式正確后,取出包中的目的地址,通過查找路由表確定目的端口地址,最后將該包發(fā)送出去。在船舶網(wǎng)線敷設(shè)、接線或者長(zhǎng)期使用過程中,均可能因線路短路,導(dǎo)致該交換機(jī)接收到大量不符合轉(zhuǎn)發(fā)原則的數(shù)據(jù)包,造成交換機(jī)處理器長(zhǎng)期處于繁忙狀態(tài),正常業(yè)務(wù)數(shù)據(jù)包無法及時(shí)轉(zhuǎn)發(fā),從而導(dǎo)致緩沖區(qū)溢出,產(chǎn)生丟包。
3)網(wǎng)卡損壞。網(wǎng)絡(luò)終端設(shè)備的網(wǎng)卡負(fù)責(zé)與其他網(wǎng)絡(luò)設(shè)備進(jìn)行通信,產(chǎn)生/接收數(shù)據(jù)包。當(dāng)網(wǎng)卡損壞后,一方面可能會(huì)導(dǎo)致該網(wǎng)絡(luò)終端離線,無法產(chǎn)生或接收網(wǎng)絡(luò)中的數(shù)據(jù)包,該情形下,無法產(chǎn)生網(wǎng)絡(luò)風(fēng)暴;另一方面損壞的網(wǎng)卡可能會(huì)重復(fù)高頻地向網(wǎng)絡(luò)中發(fā)送大量無用數(shù)據(jù)包,或者與交換機(jī)形成環(huán)路,導(dǎo)致無用的數(shù)據(jù)包占用交換機(jī)大部分的處理轉(zhuǎn)發(fā)能力,阻塞正常的數(shù)據(jù)包轉(zhuǎn)發(fā)。
4)網(wǎng)絡(luò)環(huán)路。由于網(wǎng)線連接失誤,導(dǎo)致一條物理網(wǎng)絡(luò)線路的兩端,同時(shí)接在了一臺(tái)網(wǎng)絡(luò)交換機(jī)中,形成連接環(huán)路,或者由于2層交換機(jī)缺少生成樹協(xié)議(spanning tree protocol,STP協(xié)議),無法自動(dòng)切斷級(jí)聯(lián)交換機(jī)之間的冗余端口,形成拓?fù)洵h(huán)路。上述2種網(wǎng)絡(luò)環(huán)路均會(huì)造成每一個(gè)數(shù)據(jù)幀均在網(wǎng)絡(luò)中重復(fù)廣播,網(wǎng)絡(luò)負(fù)載呈指數(shù)式上升,最終超出當(dāng)前交換機(jī)處理能力,阻塞正常數(shù)據(jù)幀的處理業(yè)務(wù)。
5)網(wǎng)絡(luò)病毒。網(wǎng)絡(luò)病毒,如Funlove、震蕩波、RPC等,在局域網(wǎng)內(nèi)快速傳播,占用大量網(wǎng)絡(luò)帶寬,引起網(wǎng)絡(luò)堵塞。
典型智能船舶網(wǎng)絡(luò)平臺(tái)架構(gòu)見圖1[7],由1臺(tái)防火墻組成數(shù)據(jù)邊界安全層,1臺(tái)核心交換機(jī)和2臺(tái)匯聚交換機(jī)組成無冗余配置的數(shù)據(jù)傳輸層,設(shè)備接入層中各個(gè)網(wǎng)絡(luò)終端或其他信息系統(tǒng)(如局域網(wǎng)系統(tǒng)、CCTV系統(tǒng)等)按照冗余及就近原則連接至匯聚交換機(jī)或核心交換機(jī)。
圖1 典型智能船舶網(wǎng)絡(luò)平臺(tái)架構(gòu)
在圖1所示架構(gòu)基礎(chǔ)上,構(gòu)造拓?fù)洵h(huán)路,見圖2。
圖2 網(wǎng)絡(luò)風(fēng)暴故障分析拓?fù)?/p>
按照?qǐng)D2所示的架構(gòu),在上海船舶研究設(shè)計(jì)院智能船舶創(chuàng)新實(shí)驗(yàn)室(以下簡(jiǎn)稱上船院實(shí)驗(yàn)室)搭建測(cè)試環(huán)境,見圖3。
圖3 上船院實(shí)驗(yàn)室模擬測(cè)試環(huán)境
將個(gè)人筆記本模擬為1#網(wǎng)絡(luò)終端,IP配置為192.168.0.1/24網(wǎng)段的任意一個(gè)地址,核心交換機(jī)IP配置為192.168.0.1/24網(wǎng)段的任一地址,然后將3臺(tái)交換機(jī)的STP協(xié)議通過“stp disenable”命令關(guān)閉。打開個(gè)人筆記本命令行界面,設(shè)置ping(Packet Internet Groper,因特網(wǎng)包探索器)命令的參數(shù),目的IP設(shè)置為核心交換機(jī)的IP地址,次數(shù)設(shè)置為10次,執(zhí)行上述ping命令。通過人為構(gòu)造環(huán)路,模擬網(wǎng)絡(luò)風(fēng)暴產(chǎn)生,單個(gè)網(wǎng)絡(luò)終端僅發(fā)送10個(gè)數(shù)據(jù)幀,10 s內(nèi)在網(wǎng)絡(luò)中最終產(chǎn)生了16萬個(gè)廣播,網(wǎng)絡(luò)中充斥著大量廣播報(bào)文,導(dǎo)致交換機(jī)、服務(wù)器被動(dòng)接收網(wǎng)絡(luò)中的廣播數(shù)據(jù)包并且進(jìn)行相關(guān)處理,極大消耗了交換機(jī)的CPU資源、內(nèi)存資源。如果沒有即時(shí)解決網(wǎng)絡(luò)風(fēng)暴,會(huì)對(duì)交換機(jī)、服務(wù)器硬件造成不可挽回的損傷,導(dǎo)致交換機(jī)、服務(wù)器癱瘓,局域網(wǎng)整體無法工作。
1.3.1 主動(dòng)抑制措施
1)優(yōu)化網(wǎng)絡(luò)拓?fù)?。智能船舶網(wǎng)絡(luò)平臺(tái)所有交換機(jī)選用3層網(wǎng)管型交換機(jī),且針對(duì)冗余配置的場(chǎng)景,所有冗余交換機(jī)默認(rèn)開啟STP協(xié)議,避免因物理設(shè)備通信機(jī)理和拓?fù)洵h(huán)路而產(chǎn)生網(wǎng)絡(luò)風(fēng)暴。
2)VLAN隔離及網(wǎng)絡(luò)風(fēng)暴控制。合理規(guī)劃并配置智能船舶網(wǎng)絡(luò)平臺(tái)的網(wǎng)絡(luò)策略,合理劃分虛擬局域網(wǎng)(virtual local area network,VLAN)、縮小廣播域,進(jìn)而將全網(wǎng)的廣播/組播/單播風(fēng)暴隔離在單個(gè)VLAN中,不會(huì)對(duì)其他業(yè)務(wù)VLAN產(chǎn)生影響。同時(shí)在交換機(jī)每個(gè)千兆以太網(wǎng)口上設(shè)置報(bào)文速率上行/下行閾值,當(dāng)某個(gè)端口在一個(gè)檢測(cè)時(shí)間間隔內(nèi)接收廣播/組播/單播報(bào)文的平均速率大于配置的最大閾值時(shí),設(shè)備會(huì)對(duì)該接口進(jìn)行風(fēng)暴控制,風(fēng)暴控制動(dòng)作包括阻塞報(bào)文和關(guān)閉接口。如果對(duì)報(bào)文進(jìn)行阻塞,當(dāng)該接口接收?qǐng)?bào)文的平均速率小于設(shè)定最小閾值時(shí),當(dāng)前接口會(huì)放開對(duì)該報(bào)文的阻塞。如果風(fēng)暴控制動(dòng)作為關(guān)閉接口,則需要手動(dòng)執(zhí)行命令來開啟接口,或者使能接口狀態(tài)自動(dòng)恢復(fù)為UP功能。
1.3.2 被動(dòng)抑制的措施
1)網(wǎng)絡(luò)監(jiān)測(cè)。在智能船舶網(wǎng)絡(luò)平臺(tái)中部署網(wǎng)絡(luò)流量監(jiān)控軟件,如eSight、sniffer等,實(shí)時(shí)監(jiān)測(cè)局域網(wǎng)內(nèi)的通信情況。當(dāng)發(fā)現(xiàn)廣播、組播或單播報(bào)文數(shù)據(jù)異常增多時(shí),自動(dòng)推送報(bào)警信息并迅速定位故障原因,切斷網(wǎng)絡(luò)風(fēng)暴源頭。
2)系統(tǒng)升級(jí)。對(duì)局域網(wǎng)內(nèi)的網(wǎng)絡(luò)設(shè)備定時(shí)升級(jí)補(bǔ)丁庫(kù)、病毒庫(kù),防止因病毒入侵。
基于LNG加注船智能化關(guān)鍵技術(shù)項(xiàng)目,完成“海洋石油301”LNG運(yùn)輸船網(wǎng)絡(luò)平臺(tái)架構(gòu),在上船院實(shí)驗(yàn)室構(gòu)建相應(yīng)的測(cè)試環(huán)境,見圖4。為方便表示網(wǎng)絡(luò)風(fēng)暴測(cè)試的輸入輸出數(shù)據(jù)流及環(huán)路測(cè)試,圖4所示的測(cè)試拓?fù)鋬H包括“海洋石油301”LNG運(yùn)輸船網(wǎng)絡(luò)平臺(tái)的主干網(wǎng)絡(luò)部分(僅包括雙冗余交換網(wǎng)絡(luò)、防火墻)。其他接入設(shè)備,包括服務(wù)器、智能網(wǎng)關(guān)等,未在圖4中示出,不影響網(wǎng)絡(luò)風(fēng)暴抑制策略的驗(yàn)證。測(cè)試拓?fù)湓O(shè)備組成清單見表1,測(cè)試設(shè)備清單見表2,Test Center設(shè)備主要用于模擬產(chǎn)生廣播/組播/單播模式下的大流量,并注入到測(cè)試拓?fù)渲?,Windows PC主要用于監(jiān)測(cè)網(wǎng)絡(luò)狀態(tài)。
圖4 網(wǎng)絡(luò)平臺(tái)模擬測(cè)試拓?fù)?/p>
表1 測(cè)試拓?fù)湓O(shè)備組成清單
表2 測(cè)試設(shè)備清單
網(wǎng)絡(luò)風(fēng)暴抑制策略驗(yàn)證測(cè)試分為測(cè)試儀器模擬打入大流量、人為構(gòu)造環(huán)路兩種測(cè)試場(chǎng)景。測(cè)試儀器模擬打流將測(cè)試本測(cè)試拓?fù)湎碌乃蠽LAN,見表3。按照?qǐng)D4測(cè)試拓?fù)涫疽?,將測(cè)試儀器接入到交換機(jī)空閑端口中,并將該端口配置為相應(yīng)待測(cè)試的VLAN,并配置主動(dòng)抑制策略和被動(dòng)抑制策略進(jìn)行廣播/組播/單播網(wǎng)絡(luò)風(fēng)暴測(cè)試。人為構(gòu)造環(huán)路測(cè)試場(chǎng)景僅隨機(jī)挑選2個(gè)交換機(jī)空閑端口作為測(cè)試端口,使用網(wǎng)絡(luò)跳線短接這2個(gè)測(cè)試端口進(jìn)行測(cè)試。
表3 模擬測(cè)試拓?fù)涞腣LAN規(guī)劃
2.2.1 廣播風(fēng)暴抑制測(cè)試
1)將Test Center連接至匯聚交換機(jī)的下行接口,如圖4中“入口流量”所示。在Test Center上位機(jī)軟件中,構(gòu)造廣播報(bào)文,通過修改VLANID實(shí)現(xiàn)遍歷所有業(yè)務(wù)VLAN測(cè)試需求。
2)逐步增加Test Center注入流量的速率,觀察對(duì)業(yè)務(wù)的影響,直至找到流量速率上限max_threshold,并將該閾值配置在核心交換機(jī)和匯聚交換機(jī)所有端口中。
3)將測(cè)試儀器發(fā)送廣播報(bào)文速率調(diào)整至高于max_threshold,模擬大流量注入場(chǎng)景下的廣播風(fēng)暴。
4)將測(cè)試儀器發(fā)送廣播報(bào)文速率調(diào)整至低于max_threshold,同時(shí)將匯聚交換機(jī)的2個(gè)測(cè)試端口短接,模擬人為構(gòu)造環(huán)路場(chǎng)景下的廣播風(fēng)暴。
5)查看交換機(jī)日志記錄,驗(yàn)證廣播風(fēng)暴抑制策略的有效性。
2.2.2 組播風(fēng)暴抑制測(cè)試
在Test Center上位機(jī)軟件中,構(gòu)造組播報(bào)文,重復(fù)廣播風(fēng)暴抑制測(cè)試中的步驟,驗(yàn)證組播風(fēng)暴抑制策略的有效性。
2.2.3 單播風(fēng)暴抑制測(cè)試
在Test Center上位機(jī)軟件中,構(gòu)造單播報(bào)文,重復(fù)廣播風(fēng)暴抑制測(cè)試中的步驟,驗(yàn)證單播風(fēng)暴抑制策略的有效性。
在廣播風(fēng)暴抑制策略測(cè)試中,當(dāng)測(cè)試儀器發(fā)送廣播報(bào)文速率高于max_threshold時(shí),交換機(jī)產(chǎn)生對(duì)應(yīng)端口的告警,并觸發(fā)風(fēng)暴控制動(dòng)作(阻塞報(bào)文或關(guān)閉接口);當(dāng)測(cè)試儀器發(fā)送廣播報(bào)文速率低于max_threshold時(shí),相應(yīng)端口的報(bào)警消除,端口狀態(tài)恢復(fù)正常;人為構(gòu)造環(huán)路形成后,廣播報(bào)文在2個(gè)測(cè)試端口間被重復(fù)轉(zhuǎn)發(fā),相應(yīng)端口使用率很快達(dá)到100%狀態(tài),同時(shí)觸發(fā)風(fēng)暴控制動(dòng)作。
在組播風(fēng)暴抑制策略測(cè)試中,當(dāng)測(cè)試儀器發(fā)送廣播報(bào)文速率高于max_threshold時(shí),交換機(jī)產(chǎn)生對(duì)應(yīng)端口的告警,并觸發(fā)風(fēng)暴控制動(dòng)作(阻塞報(bào)文或關(guān)閉接口);當(dāng)測(cè)試儀器發(fā)送廣播報(bào)文速率低于max_threshold時(shí),相應(yīng)端口報(bào)警消除,端口狀態(tài)恢復(fù)正常;人為構(gòu)造環(huán)路形成后,組播報(bào)文在2個(gè)測(cè)試端口間被重復(fù)轉(zhuǎn)發(fā),相應(yīng)端口的使用率很快達(dá)到100%狀態(tài),同時(shí)觸發(fā)風(fēng)暴控制動(dòng)作。
在單播風(fēng)暴抑制策略測(cè)試中,當(dāng)測(cè)試儀器發(fā)送廣播報(bào)文速率高于max_threshold時(shí),交換機(jī)產(chǎn)生對(duì)應(yīng)端口的告警,并觸發(fā)風(fēng)暴控制動(dòng)作(阻塞報(bào)文或關(guān)閉接口);當(dāng)測(cè)試儀器發(fā)送廣播報(bào)文速率低于max_threshold時(shí),相應(yīng)端口的報(bào)警消除,端口狀態(tài)恢復(fù)正常;人為構(gòu)造環(huán)路形成后,組播報(bào)文在2個(gè)測(cè)試端口間被重復(fù)轉(zhuǎn)發(fā),相應(yīng)端口使用率很快達(dá)到100%狀態(tài),同時(shí)觸發(fā)風(fēng)暴控制動(dòng)作。
本文針對(duì)智能船舶網(wǎng)絡(luò)平臺(tái)可能面臨的網(wǎng)絡(luò)風(fēng)暴,從網(wǎng)絡(luò)通信機(jī)理出發(fā),分析網(wǎng)絡(luò)風(fēng)暴發(fā)生的可能原因,并提出了主動(dòng)風(fēng)暴抑制策略和被動(dòng)分別抑制策略,從事前和事后兩個(gè)維度出發(fā),有效降低船舶網(wǎng)絡(luò)風(fēng)暴發(fā)生的概率以及對(duì)其他業(yè)務(wù)系統(tǒng)的影響,最后基于“海洋石油301”LNG運(yùn)輸船的網(wǎng)絡(luò)平臺(tái)架構(gòu),在上海船舶研究設(shè)計(jì)院智能船舶創(chuàng)新實(shí)驗(yàn)室搭建模擬測(cè)試環(huán)境,驗(yàn)證了針對(duì)單播、組播、廣播網(wǎng)絡(luò)通信模式的風(fēng)暴抑制策略的有效性,降低網(wǎng)絡(luò)風(fēng)暴產(chǎn)生的未知單播幀所造成的損害及蔓延。
希望測(cè)試能夠?yàn)樾袠I(yè)包括設(shè)計(jì)方、建造方、營(yíng)運(yùn)管理方提供參考。