基于多線程掃描的網(wǎng)絡拓撲邊界監(jiān)測系統(tǒng)設計
隨著國家電子政務網(wǎng)絡規(guī)模和業(yè)務應用的不斷深化,通過網(wǎng)絡傳輸?shù)臄?shù)據(jù)和業(yè)務變得越來越敏感和重要。為了保障業(yè)務數(shù)據(jù)在網(wǎng)絡傳輸交換過程中不被非法獲取與篡改,相應的網(wǎng)絡信息安全防護措施已在不同層面進行了部署。然而,大多數(shù)的業(yè)務專網(wǎng)對于網(wǎng)絡的訪問控制幾乎都集中在網(wǎng)絡的出入關口,而對網(wǎng)絡內(nèi)部結構和接入邊界卻沒有施行必要的監(jiān)測與管理。這種只注重網(wǎng)關出入防護的安全策略雖然配置了大量的防火墻、多重安全網(wǎng)關和網(wǎng)閘等網(wǎng)絡安全設備,卻無法對網(wǎng)絡運行的狀態(tài)和網(wǎng)絡結構的變化有一個全面的了解,而且對來自于網(wǎng)絡接入邊界甚至是網(wǎng)絡內(nèi)部的非法訪問常常束手無策。在過度強化“大門”的安全建設的同時,卻往往忽略了“圍墻”的筑造與管理,從而使得網(wǎng)絡接入邊界往往成為網(wǎng)絡安全防護中最薄弱的防線。
信息網(wǎng)絡是一個自治域,應該有其自身的收斂性,一個可管理的網(wǎng)絡應該具有確定的邊界,并且在網(wǎng)絡邊界發(fā)生變化時,能夠及時地發(fā)現(xiàn)差異并定位。在傳統(tǒng)意義上,網(wǎng)絡邊界是一個網(wǎng)絡安全域與其外部域的分界線,是網(wǎng)絡之間互聯(lián)的“關口”,而本文所提到的網(wǎng)絡邊界則更加注重對“圍墻”的管理,為了避免與傳統(tǒng)的邊界名詞相混淆,稱其為“網(wǎng)絡接入邊界”。首先定義直接面向終端,提供網(wǎng)絡接入服務的設備稱其為邊界接入設備,又稱為邊界設備。所謂網(wǎng)絡接入邊界就是通信網(wǎng)絡中接入設備的最邊緣,也就是網(wǎng)絡結構中邊界設備的位置。該接入邊界在網(wǎng)絡初始設計和建設維護階段確定,并預期不得無故更改與擴展。
1 當前網(wǎng)絡監(jiān)測存在的不足
面對當前網(wǎng)絡規(guī)模的不斷增長,網(wǎng)絡結構日趨復雜,加之網(wǎng)絡設備的多樣性,目前的網(wǎng)絡監(jiān)測手段已不能滿足當前網(wǎng)絡管理的需要,主要不足體現(xiàn)在以下幾點:
?。?)網(wǎng)絡運行狀態(tài)不夠全面。在日常網(wǎng)絡管理中對網(wǎng)絡運行狀態(tài)的實時監(jiān)控是非常必要的。通過對網(wǎng)絡流量、拓撲結構、網(wǎng)絡設備及終端運行等情況的全面監(jiān)測,管理者可以對當前網(wǎng)絡的運行狀態(tài)有一個全面的了解和把握,并可對一些異常情況作出及時反應,保障網(wǎng)絡安全正常地運行。然而,由于網(wǎng)絡設備的復雜多樣性,至今還沒有一個第三方的網(wǎng)絡管理軟件可以對不同廠家的網(wǎng)絡設備進行全面的遠程管理與控制,使用當前網(wǎng)絡監(jiān)測手段往往無法獲取全面的網(wǎng)絡運行狀態(tài)信息。
?。?)網(wǎng)絡結構化變化無從知曉。在較大規(guī)模網(wǎng)絡中,保持網(wǎng)絡拓撲結構的穩(wěn)定對于整個網(wǎng)絡的安全尤為重要。網(wǎng)絡建設時期設計的拓撲結構與正常運行時期的真實結構經(jīng)常存在較大的差異。如果運行過程中有設備發(fā)生故障或者有用戶私自在網(wǎng)絡中違規(guī)接入網(wǎng)絡設備,必將影響到網(wǎng)絡真實結構的變化,并由此帶來巨大的安全隱患。有一些網(wǎng)絡拓撲發(fā)現(xiàn)方法可以根據(jù)簡單網(wǎng)絡管理協(xié)議SNMP(Simple Network Management Protocol)來完成對網(wǎng)絡層和鏈路層連接的自動發(fā)現(xiàn)[1-2],生成網(wǎng)絡運行時的拓撲結構,然而在現(xiàn)實中的應用卻相對滯后,沒有一種由宏觀到具體、兼顧整體與局部的視圖展示方法,而且沒有對網(wǎng)絡結構進行全面的監(jiān)測,幾乎沒有涉及網(wǎng)絡結構的差異變化情況,更沒有發(fā)現(xiàn)結構異常時的報警提示了。
?。?)網(wǎng)絡接入邊界無法掌握。網(wǎng)絡接入邊界作為網(wǎng)絡用戶的接入?yún)^(qū)域通常處于網(wǎng)絡結構的最末端,隨著網(wǎng)絡接入終端多樣化的出現(xiàn),邊界接入方法與過程變得非常容易。有些用戶可能會隨意更換工作終端、改變終端的接入接口,或者通過自行架設的小型網(wǎng)絡設備進行多用戶違規(guī)接入,甚至非法提供網(wǎng)絡轉發(fā)、代理和地址轉換服務等,這些情況都將會影響網(wǎng)絡接入邊界的收斂性,使網(wǎng)絡接入邊界變得不可預測,并對網(wǎng)絡的安全穩(wěn)定運行造成嚴重威脅。而現(xiàn)階段的網(wǎng)絡監(jiān)測管理手段無法及時獲取網(wǎng)絡接入邊界狀態(tài)變化的信息,更無法對接入邊界變化區(qū)域進行準確的定位,這是現(xiàn)有網(wǎng)絡管理體系中普遍存在的盲點和隱患。
2 系統(tǒng)功能結構
當前網(wǎng)絡規(guī)模和數(shù)量大量增長,組網(wǎng)設備的類型也多種多樣,來自于不同廠家的各類設備常常同時存在,如何在統(tǒng)一的架構體系內(nèi)對這些設備進行管理就變得十分重要。本系統(tǒng)主要采用目前普遍使用的SNMP標準協(xié)議,通過對網(wǎng)絡結構的定時掃描和對網(wǎng)絡接入邊界的實時監(jiān)測來實現(xiàn)所需的功能。
?。?)全面掃描網(wǎng)絡拓撲結構,實現(xiàn)網(wǎng)絡結構樹的自動生成與存儲打印,通過與歷史結構的比對發(fā)現(xiàn)網(wǎng)絡結構的差異變化,并及時報警通知網(wǎng)絡管理員。
?。?)監(jiān)測網(wǎng)絡設備的運行狀態(tài),主要監(jiān)測CPU、內(nèi)存和接入端口的工作情況,對于工作狀態(tài)或者網(wǎng)絡流量異常的情況能及時發(fā)出報警信號。
?。?)在專用和保密網(wǎng)絡中實現(xiàn)所有入網(wǎng)終端與設備的登記認證,對終端與設備的上網(wǎng)檔案和監(jiān)測數(shù)據(jù)進行存儲記錄,對接入終端的運行狀態(tài)、接入方式、路由轉發(fā)、地址轉換和代理服務等異常狀態(tài)進行實時監(jiān)測,發(fā)現(xiàn)異常時能夠及時阻斷,實現(xiàn)對網(wǎng)絡邊界的常規(guī)性看護,對工作主機的工作狀態(tài)給出健康建議。
系統(tǒng)通過對整個網(wǎng)絡運行狀態(tài)數(shù)據(jù)進行實時的采集與分析,將網(wǎng)絡拓撲結構信息及其組成節(jié)點的工作狀態(tài)信息存儲在數(shù)據(jù)庫中,對這些數(shù)據(jù)進行加工分析后,通過列表、拓撲視圖等方式將其展現(xiàn)在網(wǎng)絡管理界面上。系統(tǒng)體系結構如圖1所示。
在網(wǎng)絡中心位置部署結構監(jiān)測服務器、結構存儲服務器和結構視圖服務器,用于整個網(wǎng)絡結構的實時動態(tài)掃描存儲、邊界守護和視圖生成功能;在網(wǎng)絡內(nèi)部設置固定或移動的監(jiān)測終端,用于網(wǎng)絡管理人員隨時查看網(wǎng)絡實時運行狀態(tài),接收服務器的報警信號并進行相應的處理。
位于整個網(wǎng)絡內(nèi)部,支持TCP/IP協(xié)議的路由器、交換機、服務器、工作主機和無線接入點等所有的網(wǎng)絡設備和終端都屬于網(wǎng)絡結構監(jiān)測的對象,需要定期接受結構監(jiān)測服務器的掃描并提供自身運行的狀態(tài)和數(shù)據(jù)。當有異常情況發(fā)生時,這些監(jiān)測對象應該能夠主動向上匯報,以達到實時掌握整個網(wǎng)絡運行狀態(tài)的目的。
3 系統(tǒng)實時性設計
系統(tǒng)通過SNMP協(xié)議掃描獲取網(wǎng)絡設備、終端及其連接關系的基本信息,主要包括管理信息庫中的路由表、接口表、地址映射表和運行狀態(tài)信息等,并逐步獲取實時的網(wǎng)絡結構信息。在使用廣度優(yōu)先算法掃描的過程中,盡可能準確地辨識掃描目標的類型和身份,根據(jù)情況啟動網(wǎng)絡層掃描[3]和鏈路層掃描[4],并通過梳理節(jié)點間的父子連接關系,最終判定網(wǎng)絡接入邊界所在,更新存入后臺支持數(shù)據(jù)庫[5]。當掃描過程完成以后,整個網(wǎng)絡的結構信息便被獲取,實時的網(wǎng)絡邊界得以確定,網(wǎng)絡自身的運行狀態(tài)得以全面掌控。
在系統(tǒng)監(jiān)測運行過程中,需要在第一時間內(nèi)發(fā)現(xiàn)網(wǎng)絡結構的異常變化和接入邊界的違規(guī)行為并作出響應,以便盡可能早地對潛在的網(wǎng)絡安全隱患進行定位,減少對網(wǎng)絡安全運行的實質(zhì)性破壞。因此,迅速準確地發(fā)現(xiàn)網(wǎng)絡的拓撲結構,提高系統(tǒng)掃描檢測過程的實時性就成為了保障系統(tǒng)可靠運行的一個基本要求。
3.1 多線程掃描
網(wǎng)絡結構的獲取與更新一般通過周期性的掃描來完成。通過指定掃描起始地址,獲得與該節(jié)點相連的其他節(jié)點的運行信息,使用廣度優(yōu)先算法依次遍歷網(wǎng)絡中的每個節(jié)點,這種全網(wǎng)單線程掃描方法(以下簡稱方法一)常常用在網(wǎng)絡規(guī)模較小、結構較為簡單的情況下。
對于規(guī)模較大的網(wǎng)絡,考慮到掃描過程中大部分時間都浪費在等待設備準備數(shù)據(jù)的階段,為了能合理利用這段空閑時間,在更短的時間內(nèi)盡快完成對整個網(wǎng)絡的掃描分析,實際過程中常常根據(jù)子網(wǎng)劃分使用多個掃描起始地址的子網(wǎng)多線程掃描的方法(以下簡稱方法二)。在系統(tǒng)初始化后,讀取指定的子網(wǎng)掃描起始地址列表,啟動多個掃描線程對所在子網(wǎng)進行掃描。多個線程之間共同維護一個節(jié)點訪問列表,對已經(jīng)掃描過的地址不再執(zhí)行重復的操作。
方法二中每個掃描線程對應一棵子樹,掃描線程的數(shù)量一般可參考管理人員最熟悉的核心層設備的數(shù)量來設置,但是最好不要手工設置。實際應用時可以在掃描3層設備路由列表的過程中,在得到與該設備所連接的子網(wǎng)設備地址后,立即開啟一個新的子網(wǎng)掃描線程,這種改進方式也可稱為設備多線程掃描方法,其掃描流程如圖2所示。
在掃描流程圖中的每個線程都能獨立完成各自的掃描分析任務,在對每一個設備掃描完成之后,立即讀取目標的安全設置,完成結構邊界的確認、檢驗、存儲和展現(xiàn)工作。
對于較大規(guī)模的網(wǎng)絡,在采用了設備多線程掃描的方法后,完成全網(wǎng)掃描所耗費的時間已經(jīng)大幅減少,如表1所示,其中,①②③為掃描算法分別在3個不同的時間段內(nèi)運行的結果。但是詳細分析后發(fā)現(xiàn),掃描線程仍然有一部分空閑時間在等待設備準備數(shù)據(jù),而這部分空閑時間正是再次提高掃描速度的希望。在分析了設備的掃描過程后發(fā)現(xiàn),為了實現(xiàn)網(wǎng)絡結構的自動發(fā)現(xiàn)與監(jiān)測,每個設備都需要掃描接口表、路由表、端口映射表、地址映射表等多張表格,雖然在掃描流程上采用了子網(wǎng)多線程掃描,但是每個掃描線程依然是按照順序對這幾張表格進行掃描的,由此得出了通過多線程方式來獲取這些表格的表格多線程掃描方法(以下簡稱方法三)。
為了驗證這3種掃描方法的性能,特意選擇長安大學校園網(wǎng)絡進行實際測試,表1是這3種掃描方法分別在3個不同的時間段內(nèi)測試運行的結果數(shù)據(jù)。
在對掃描方法的性能進行比較時,掃描完成時間以及掃描對網(wǎng)絡帶寬的影響是兩個重點指標。本來每秒鐘獲得的記錄數(shù)量也可以作為一個性能指標來指示掃描算法的性能優(yōu)劣,但是該指標與網(wǎng)絡流量成正比關系(記錄條數(shù)越多網(wǎng)絡流量越大),因此在比較過程中只使用了完成時間和波特率兩項指標,3種方法性能比較如圖3所示。從測試的結果可以看出,這3種方法在3次測試過程中性能表現(xiàn)均較為穩(wěn)定,方法一的完成時間是最長的,在使用了多線程以后方法二和方法三的完成時間有了大幅的減少。同時,隨著完成時間的縮減,網(wǎng)絡流量也逐步升高,由于目前主干網(wǎng)絡多是千兆的情況,因此多線程的使用對網(wǎng)絡帶寬的壓力實在小到可以忽略不計。
3.2 異常情況自動上報
在實際應用時,單靠周期性的掃描來發(fā)現(xiàn)網(wǎng)絡結構的異常變動顯然不夠,應該設計一種異常自動上報機制,使得接入設備能夠在異常發(fā)生的第一時間將自身變動信息自動上報給服務器,而不是等待掃描模塊下一次周期性的輪詢,而這恰恰就是SNMP陷阱(SNMP Trap)的用武之地。
SNMP陷阱不同于SNMP的主動采集,SNMP主動采集是按照固定的時間間隔,由管理工作站以詢問的方式采集被管理設備的各項MIB信息,因此,發(fā)現(xiàn)網(wǎng)絡結構的變化與異常的及時性取決于掃描采集的頻率。在一個較大規(guī)模的網(wǎng)絡內(nèi),輪詢過于頻繁會產(chǎn)生大量不必要的通信量,容易引起網(wǎng)絡擁塞;輪詢周期過長,則不能保證網(wǎng)絡故障被及時發(fā)現(xiàn),嚴重影響了系統(tǒng)的實時性[6]。而SNMP陷阱使用事件驅動機制,在被監(jiān)控設備上設置陷阱,一旦被監(jiān)控設備出現(xiàn)異常情況,立即向管理工作站發(fā)送陷阱消息,因此能夠在最短的時間內(nèi)發(fā)現(xiàn)異常,避免由設備異常而帶來的經(jīng)濟損失。
在SNMP的管理模型中,管理代理會向管理工作站發(fā)送一些重要事件的異步通告,其中包括設備的冷啟動、熱啟動、接口上線和接口下線等幾種消息,而這些消息將由代理主動通知SNMP管理器,而不是等到管理工作站為獲得這些錯誤情況而輪詢的時候才會報告,這將有助于系統(tǒng)以最快的速度接收到來自于被管理設備的異常通知。系統(tǒng)在收到這些消息后可以通過單獨查詢這個設備或查詢其周邊的相關設備來獲得這個事件更加詳細的情況并向管理人員發(fā)送告警,以便對異常情況作出正確的判斷和處理。
當然,使用SNMP陷阱也需要消耗一定的系統(tǒng)資源,如果該陷阱需要傳輸大量的數(shù)據(jù),則被管設備就要消耗更多的時間來處理這些數(shù)據(jù),從而降低了設備的運行速度。此外,如果接連發(fā)生相同類型的陷阱,每次都要報告給管理站,這樣又造成了資源的浪費,可能會造成網(wǎng)絡擁堵甚至癱瘓。因此,本系統(tǒng)僅僅使用了設備啟動、接口上線和接口下線這幾種與網(wǎng)絡結構和邊界安全監(jiān)測關系最為密切的陷阱事件,以減輕網(wǎng)絡壓力,提高系統(tǒng)的實時性能。
網(wǎng)絡規(guī)模大、涉及范圍廣、設備種類多以及用戶數(shù)量大是目前網(wǎng)絡的基本特點,因此網(wǎng)絡的維護管理和安全防護便成為了一個難題。本系統(tǒng)在保障網(wǎng)絡出口安全的同時,重點加強了網(wǎng)絡邊界的安全監(jiān)測與防護,使網(wǎng)絡管理人員能及時全面地了解實時的網(wǎng)絡結構和邊界接入變化情況,并通過使用多線程和SNMP陷阱技術來提高網(wǎng)絡結構掃描的效率,從而有效解決了目前網(wǎng)絡使用過程中比較常見的用戶隨意更改接入狀態(tài)和非法接入網(wǎng)絡設備的問題,避免了由此產(chǎn)生的網(wǎng)絡運行不穩(wěn)定問題,消除了網(wǎng)絡安全監(jiān)管盲區(qū)和網(wǎng)絡安全隱患,保障了網(wǎng)絡運行的可靠與安全。
參考文獻
[1] 孫延濤,吳志美,石志強.基于地址轉發(fā)表的交換式以太網(wǎng)拓撲發(fā)現(xiàn)方法[J].軟件學報,2006,17(12):2565-2576.
[2] BREITBART Y, GAROFALAKIS M, JAI B, et al. Topology discovery in heterogeneous IP networks: the net inventory system[J]. IEEE/ACM Transactions on Networking,2004, 12(3):401-414.
[3] 楊安義,朱華清,王繼龍.一種改進的基于SNMP的網(wǎng)絡拓撲發(fā)現(xiàn)算法及實現(xiàn)[J].計算機應用,2007,27(10):2412-2419.
[4] 李琳,李杰.基于SNMP的網(wǎng)絡拓撲發(fā)現(xiàn)算法[J].計算機工程與設計,2008,29(6):1345-1347.
[5] 賀英杰,王慧強,周仁杰.面向網(wǎng)絡態(tài)勢感知的實時網(wǎng)絡拓撲發(fā)現(xiàn)[J].計算機工程,2009,35(24):127-129.
[6] 蔡道家,侯秀紅,汪國安,等.基于SNMP的自陷的傳遞輪詢算法[J].計算機工程,2007,33(11):273-275.