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