黃耀鵬
(中國民用航空中南地區空中交通管理局廣西分局,南寧 530000)
空管自動化系統是空管運行的核心設備之一,其網絡處理的信息源復雜,安全要求高,因此系統對網絡的監控也成為了各個設備廠家設計系統必須考慮的一個關鍵內容。網絡流量的分析一方面可以提前預測定位系統故障的節點及相應的后臺軟件模塊的效率,另一方面也可以為系統的優化設計、設備擴容分析提供思路。本文從實際出發設計一種空管自動化系統網絡流量監控系統,為相關研究拋磚引玉。
傳統的網絡流量監控設計主要通過對局域網內部的數據包進行抓包分析,數據包在經過路由器或防火墻時,通過網絡設備定義不同的規則進行規則的匹配,進而識別不同的應用類型,如果將其應用到空管自動化系統,則是一種網絡設備的規則定義。通過內部消息頭的分析,系統從TCP/IP鏈接的SYN包可以快速獲取到源IP、目的IP及相應的端口。如若將其進行簡單的應用,為了符合設備廠家內部消息的多樣性,可以通過tcpdump工具進行。安裝好相關軟件后,可以在控制臺中輸入:tcpdumpie1000g0-s100-w/tmp/les.pcap。實現簡單的抓包。基于數據的多樣分析,-s一般要指定大一點,因為一個數據包除了實際數據外,還有各個協議層加的包頭,TCP的所有包頭有54個字節,如果-s參數指定的數字小于54,那么實際傳輸的數據都抓不到。當然,這種思路的設計有一定的限制,在針對一些較為基礎的設計上往往軟件沒有相應的IANA注冊端口,有的是基于不常見的端口,甚至有針對IP層負荷的加密。此時,抓包分析無法完全分析所有數據。
針對上述的情況,此處提出一種基于深度包檢測技術的流量監控。在數據的傳輸過程,如果資源出現不足時,系統會產生堵塞,導致網絡性能下降,為了緩解此類情況,各空管自動化廠家做了相應的處理,例如萊斯自動化在監控的設計上通過文件參數的控制(例如設置Pnclear參數控制過期消息讀或者不讀,pflag參數控制阻塞與非阻塞)。在設計上可以通過優先隊列進行消息的調度。如果設備的每一端口有一個基于隊列的輸入或者輸出,則可以通過業務的重要程度進行分級設計,如操作權限下的管制席位高于自由權限下的管制席位,有扇區的席位高于無扇區的席位。借此定義隊列,通過隊列的等級進行排序進而進行流量的監控。
TCP連接需要通過3次握手,這要求系統必須設置相應的緩沖區,同時也給予設計提供相應的控制權限,只要控制所在消息的發送及接受的網絡緩沖區大小即可完成對該消息類型的簡單流量控制,防止阻塞,提高性能。鑒于上述的機制,可以通過在傳統的抓包分析上,增加對應用層協議的識別。一般的流量控制時通過5tuple的分析,但是多數無法考慮源端口、目的端口以及應用協議。在網絡傳輸的數據包上,系統對OSI七層協議中的應用層協議進行信息重組,不同應用在此處將會對應不同的協議類型進行區別,有關文獻將其稱為協議指紋。這可以解決沒有在IANA注冊過的端口問題,系統如果獲取到的指紋信息是特殊字符則根據檢測方式的不同將其分為掩碼和特征碼結合以及正則表達式分析兩種方式。正則表達式在處理上有較為成熟的經驗可以借鑒,因此整體的系統實現也較為簡單。
由于大多數自動化的消息轉發都是基于內部網絡的UDP組播,系統可以在網絡中獲取相應的數據進行分析。為了保持在用系統的穩定性,系統不直接加入自動化系統的內部局域網,而是通過網絡(網絡流量監控PC機)轉串口再進行串口轉網絡(自動化交換機)的方式進行介入。通過部署一套基于WINDOWS的軟件對局域網數據分析。為了提高系統開發效率,此處采用C#進行軟件的設計與實現。
萊斯自動化系統提供了基于SNMP協議的監控信息數據流,因此系統可以通過SNMP響應報文的分析進行設計與實現,主要模塊包括流量采集子系統和數據分析顯示子系統。為了提高實現效率及優化系統性能,此處采集子系統將引用snmpsharpnet庫。其主要的SNMP的語句有snmpget和snmpwalk,前者可以通過oid進行查找,后者則可以返回一個組的數據。
Snmpwalk返回的數據將在系統內部通過軟件消息的形式傳遞給系統數據分析及顯示模塊。該模塊通過數據接收和正則表達式處理數據。針對報頭標識、源IP地址、端口號進行分析,最終生成一份以管制席位為標識的用戶報告。
本文基于實際運行提出一種空管自動化系統網絡流量監控的方案,分析了傳統設計思路的同時提出了改進設計,并通過C#設計了軟件,該軟件在空管自動化的實際運維中有較為豐富的應用方式,為提高現場運維效率、增強安全保障力度提供技術支持。