石明明
(1.北京全路通信信號研究設計院集團有限公司,北京 100070;2.北京市高速鐵路運行控制系統(tǒng)工程技術研究中心,北京 100070)
安全數(shù)據(jù)網(wǎng)是高速鐵路信號系統(tǒng)數(shù)據(jù)交換的核心部分,是CTCS-2 及CTCS-3 級列控系統(tǒng)關鍵設備間通信的載體,承擔著列控中心、無線閉塞中心、聯(lián)鎖、臨時限速服務器、RBC 等信號設備間信息傳輸?shù)闹匾饔?。根?jù)《高速鐵路信號系統(tǒng)安全數(shù)據(jù)網(wǎng)技術規(guī)范V3.0》中要求,現(xiàn)階段可通過NMS 及EMS 網(wǎng)管系統(tǒng)對高速鐵路信號信息安全數(shù)據(jù)網(wǎng)進行設備層面的監(jiān)測,但是未對數(shù)據(jù)層面的監(jiān)測及分析提出明確的約束及實現(xiàn),而現(xiàn)有的安全數(shù)據(jù)網(wǎng)各節(jié)點交換機均具備了單向數(shù)據(jù)鏡像功能,這已經(jīng)為網(wǎng)絡數(shù)據(jù)的獲取及分析奠定了基礎。
獲取及分析高速鐵路信號信息系統(tǒng)安全數(shù)據(jù)網(wǎng)網(wǎng)絡數(shù)據(jù)具備3 層重要含義,一是可發(fā)現(xiàn)安全設備間應用層面通信隱患,可針對不穩(wěn)定的設備節(jié)點進行狀態(tài)修,避免故障的發(fā)生;二是可發(fā)現(xiàn)網(wǎng)絡中非準入設備,進行告警及提示,從而提升網(wǎng)絡安全性和節(jié)點的穩(wěn)定性;三是完整記錄各節(jié)點的網(wǎng)絡原始收發(fā)數(shù)據(jù),待設備間故障發(fā)生時準確快速的定位故障原因。
本文借助WinPcap 開源庫,在現(xiàn)有的維護系統(tǒng)中進行功能的開發(fā)實現(xiàn)。
Windows Packet Capture(WinPcap)是應用于Windows 平臺的網(wǎng)絡數(shù)據(jù)獲取及分析的一種驅動軟件包。WinPcap 通過Netgroup Packet Filter(NPF)核心代碼接收對應網(wǎng)卡上的原始網(wǎng)絡數(shù)據(jù)包,可向外部軟件提供完整的API(Application Programming Interface)接口函數(shù),繼而實現(xiàn)網(wǎng)絡數(shù)據(jù)的獲取和分析功能。WinPcap 獨立于通信協(xié)議(如TCP-IP)而發(fā)送和接收原始數(shù)據(jù)包,也就是說,WinPcap 不能阻塞、過濾或控制其他應用程序數(shù)據(jù)包的發(fā)收,它僅僅只是監(jiān)聽共享網(wǎng)絡上傳送的數(shù)據(jù)包。
端口鏡像(Port Mirroring)功能是指在交換機上,將一個或多個源端口的數(shù)據(jù)流量轉發(fā)到某一個指定端口來實現(xiàn)對網(wǎng)絡數(shù)據(jù)的監(jiān)聽,指定端口稱之為“鏡像端口”或“目的端口”,工業(yè)交換機中一般設置網(wǎng)絡數(shù)據(jù)運算單元和管理運算單元,端口鏡像功能一般通過管理運算單元執(zhí)行操作,所以開啟端口鏡像功能不會影響當前交換機正常工作??蓪︾R像端口進行獨立的Vlan 劃分避免接入鏡像端口的操作系統(tǒng)影響安全網(wǎng)絡信息內容,提升網(wǎng)絡安全等級。
高速鐵路信號信息安全數(shù)據(jù)網(wǎng)承載著信號系統(tǒng)安全設備間通信的職責,網(wǎng)絡以冗余環(huán)網(wǎng)方式假設,網(wǎng)絡各節(jié)點均通過工業(yè)級以太網(wǎng)交換機設備進行連接,網(wǎng)絡上運行的設備包括列控中心、車站聯(lián)鎖、臨時限速服務器、無線閉塞中心服務器。
高速鐵路信號信息安全數(shù)據(jù)網(wǎng)中各設備間通信主要以鐵路信號安全通信協(xié)議RSSP-1 和RSSP-2 為主,設備間通信的IP 地址及端口可通過高速鐵路信號信息安全數(shù)據(jù)網(wǎng)工程配置文件中明確,兩套協(xié)議的特點如表1 所示。
軟件依托于現(xiàn)有維護系統(tǒng),采用配置文件加動態(tài)鏈接庫方式進行實現(xiàn),方便現(xiàn)有維護系統(tǒng)進行功能的增加,配置文件主要包含鏡像端口網(wǎng)卡信息、當前網(wǎng)絡節(jié)點下合法設備信息以及各設備通信鏈路配置,基于靜態(tài)配置文件來實現(xiàn)網(wǎng)卡的選擇、數(shù)據(jù)包的獲取及保持、協(xié)議解析及分析以及非法侵入設備等報警處理。
表1 RSSP-1和RSSP-2通信協(xié)議特點對照表Tab.1 Comparison table of communication protocol characteristics between RSSP-1 and RSSP-2
軟件啟動后首先完成軟件自檢及配置文件信息的讀取及格式檢查,之后根據(jù)配置文件內容選取對應的網(wǎng)卡,調用WinPcap 的API 接口實現(xiàn)網(wǎng)絡數(shù)據(jù)的實時獲取,通過獨立線程完成數(shù)據(jù)的記錄及壓縮,并同時執(zhí)行網(wǎng)絡數(shù)據(jù)的分層、分類分析及報警功能。軟件的大體流程圖如圖1 所示。
軟件大致分為數(shù)據(jù)配置模塊、網(wǎng)絡采集模塊、數(shù)據(jù)存儲及壓縮模塊、網(wǎng)絡數(shù)據(jù)分析模塊、告警模塊以及信息反饋模塊。
1)數(shù)據(jù)配置模塊
數(shù)據(jù)配置模塊主要負責處理端口鏡像網(wǎng)卡信息,高速鐵路信號信息安全數(shù)據(jù)網(wǎng)節(jié)點配置信息等。
根據(jù)高速鐵路信號信息安全數(shù)據(jù)網(wǎng)雙網(wǎng)冗余的特點,端口鏡像網(wǎng)卡需單獨配置左網(wǎng)及右網(wǎng)兩塊網(wǎng)卡的網(wǎng)卡IP 地址,軟件初始化時根據(jù)不同網(wǎng)卡IP地址找到對應網(wǎng)卡進行后面的數(shù)據(jù)采集操作。
各節(jié)點中往往存在本節(jié)點設備與外部多個類型設備的通信內容,在網(wǎng)絡節(jié)點配置中需明確寫明當前網(wǎng)絡節(jié)點與外部設備通信的冗余鏈路信息,8 條鏈路信息分別為本設備的雙系與對方設備雙系在左右網(wǎng)上的不同鏈路,網(wǎng)絡鏈路結構表如表2 所示。
圖1 軟件業(yè)務流程圖Fig.1 Flow chart of software business
表2 網(wǎng)絡鏈路結構表Tab.2 Network link structure table
由于不同設備間通信方式的不同,后期數(shù)據(jù)分析的方法也相應存在差異,在網(wǎng)絡節(jié)點配置中需要標識各條鏈路的兩側設備類型、兩側設備IP 及端口、鏈路通信方式、通信協(xié)議版本等參數(shù)。
2)網(wǎng)絡采集模塊
網(wǎng)絡采集模塊通過數(shù)據(jù)配置模塊反饋的基礎配置信息后,對不同的端口鏡像網(wǎng)卡進行初始化,以單獨網(wǎng)卡單獨線程的方式調用WinPcap 的采集接口,實時獲取各個網(wǎng)卡的全部網(wǎng)絡鏡像數(shù)據(jù),加入網(wǎng)絡采集的ms 級時鐘戳后形成獨立的隊列數(shù)據(jù),供分析及存儲模塊使用。
3)數(shù)據(jù)存儲及壓縮模塊
為實現(xiàn)網(wǎng)絡數(shù)據(jù)的后期分析功能,需對實時采集的網(wǎng)絡數(shù)據(jù)進行存儲及壓縮操作,存儲的文件格式為基于Wireshark 的★.pcap 文件格式,之后以小時為單位定期對同一小時的文件壓縮成★.rar 格式的壓縮文件,以減少對磁盤的消耗。
模塊獲取當前系統(tǒng)時鐘,首先創(chuàng)建包含年、月、日、時、分、秒信息的目標文件,通過pcap_dump_open()函數(shù)實現(xiàn)文件打開操作,通過pcap_dump()函數(shù)實現(xiàn)文件的實時寫入操作。為了減少文件容量過大導致的壓縮效率降低,以及目標文件異常引起的數(shù)據(jù)丟失情況,模塊進行寫入操作時同時監(jiān)控文件的大小,待文件超過50 M 后創(chuàng)建新的目標文件,之后持續(xù)進行文件的記錄操作。
模塊設置獨立的定時器,以1 h 為單位,當定時器觸發(fā)后檢查當前日志存儲目錄下的所有★.pcap文件內容,以文件名為依據(jù)將上一個小時的文件篩選出來,調用rar 文件壓縮庫實現(xiàn)整小時文件的壓縮操作。同時根據(jù)配置內容,檢查所有rar 后綴名的文件,若文件時間超過30 天則針對文件進行刪除操作。
4)網(wǎng)絡數(shù)據(jù)分析模塊
網(wǎng)絡數(shù)據(jù)分析模塊根據(jù)左右網(wǎng)的劃分,實時獲取網(wǎng)絡數(shù)據(jù)隊列中內容,根據(jù)各條鏈路的兩側設備類型、兩側設備IP 及端口、鏈路通信方式、通信協(xié)議版本等參數(shù),將散列的網(wǎng)絡數(shù)據(jù)拆分成不同的鏈路數(shù)據(jù)區(qū),根據(jù)設備間的配置參數(shù),判斷當前鏈路的物理通信狀態(tài),包括數(shù)據(jù)包的有無、數(shù)據(jù)包發(fā)送間隔、數(shù)據(jù)包長度等信息,通過設置的通信質量閥值,判斷當前鏈路通道的穩(wěn)定性,同時根據(jù)配置的設備間通信協(xié)議版本、協(xié)議類型及內容解析數(shù)據(jù)包中的關鍵數(shù)據(jù)內容,符合正常通信狀態(tài)的內容存儲至關鍵數(shù)據(jù)內容數(shù)據(jù)區(qū),不符合正常通信協(xié)議要求的內容存儲至異常數(shù)據(jù)區(qū)內。以消息方式發(fā)送給信息反饋模塊進行后續(xù)處理。
網(wǎng)絡數(shù)據(jù)分析模塊同時將無法識別的網(wǎng)絡數(shù)據(jù)存儲在獨立的異常數(shù)據(jù)區(qū)內,通過對數(shù)據(jù)的ip、端口、消息包類型信息進行分析,判斷是否為可識別數(shù)據(jù)內容,形成相應的告警內容,同時針對分析模塊的結果進行異常數(shù)據(jù)的分析,形成告警信息,將上述內容以消息方式實時發(fā)送給告警模塊進行后續(xù)處理。
5)告警模塊以及信息反饋模塊
告警模塊將分析模塊反饋的告警信息以設備為單位進行匯總,分為設備告警、設備告警恢復兩大類型,疊加上告警出現(xiàn)或恢復時的時鐘信息內容后實時發(fā)送給上層接口。
消息反饋模塊將分析模塊反饋的設備間通信狀態(tài)、關鍵數(shù)據(jù)內容以設備為單位存入內存數(shù)組中,在同一內存區(qū)內實時更新相同設備的最新狀態(tài),以動態(tài)的方式實時將內存區(qū)中的內容加上設備標識打包發(fā)送給上層接口進行處理。
高速鐵路信號系統(tǒng)安全數(shù)據(jù)網(wǎng)現(xiàn)階段僅能通過EMS 和NMS 實現(xiàn)設備層面的狀態(tài)監(jiān)測及告警,而數(shù)據(jù)層面的監(jiān)測及告警還未在實際設備中應用。為達到信號系統(tǒng)平穩(wěn)安全運行的目的,除了系統(tǒng)軟件層面管理外,提升系統(tǒng)的可維護性及故障定位的準確性也是至關重要和十分必要的。本文對高速鐵路信號系統(tǒng)安全數(shù)據(jù)網(wǎng)的數(shù)據(jù)獲取及分析進行了初步探索和嘗試,在保證現(xiàn)有信號系統(tǒng)穩(wěn)定運行的前提下將本文說描述的功能疊加到各設備維護機中可大幅度提升基于高速鐵路信號系統(tǒng)安全數(shù)據(jù)網(wǎng)設備的可維護性和故障準確定位功能。