基于多線程掃描的網(wǎng)絡(luò)拓撲邊界監(jiān)測系統(tǒng)設(shè)計
在掃描流程圖中的每個線程都能獨立完成各自的掃描分析任務(wù),在對每一個設(shè)備掃描完成之后,立即讀取目標的安全設(shè)置,完成結(jié)構(gòu)邊界的確認、檢驗、存儲和展現(xiàn)工作。
對于較大規(guī)模的網(wǎng)絡(luò),在采用了設(shè)備多線程掃描的方法后,完成全網(wǎng)掃描所耗費的時間已經(jīng)大幅減少,如表1所示,其中,①②③為掃描算法分別在3個不同的時間段內(nèi)運行的結(jié)果。但是詳細分析后發(fā)現(xiàn),掃描線程仍然有一部分空閑時間在等待設(shè)備準備數(shù)據(jù),而這部分空閑時間正是再次提高掃描速度的希望。在分析了設(shè)備的掃描過程后發(fā)現(xiàn),為了實現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)的自動發(fā)現(xiàn)與監(jiān)測,每個設(shè)備都需要掃描接口表、路由表、端口映射表、地址映射表等多張表格,雖然在掃描流程上采用了子網(wǎng)多線程掃描,但是每個掃描線程依然是按照順序?qū)@幾張表格進行掃描的,由此得出了通過多線程方式來獲取這些表格的表格多線程掃描方法(以下簡稱方法三)。
為了驗證這3種掃描方法的性能,特意選擇長安大學校園網(wǎng)絡(luò)進行實際測試,表1是這3種掃描方法分別在3個不同的時間段內(nèi)測試運行的結(jié)果數(shù)據(jù)。
在對掃描方法的性能進行比較時,掃描完成時間以及掃描對網(wǎng)絡(luò)帶寬的影響是兩個重點指標。本來每秒鐘獲得的記錄數(shù)量也可以作為一個性能指標來指示掃描算法的性能優(yōu)劣,但是該指標與網(wǎng)絡(luò)流量成正比關(guān)系(記錄條數(shù)越多網(wǎng)絡(luò)流量越大),因此在比較過程中只使用了完成時間和波特率兩項指標,3種方法性能比較如圖3所示。從測試的結(jié)果可以看出,這3種方法在3次測試過程中性能表現(xiàn)均較為穩(wěn)定,方法一的完成時間是最長的,在使用了多線程以后方法二和方法三的完成時間有了大幅的減少。同時,隨著完成時間的縮減,網(wǎng)絡(luò)流量也逐步升高,由于目前主干網(wǎng)絡(luò)多是千兆的情況,因此多線程的使用對網(wǎng)絡(luò)帶寬的壓力實在小到可以忽略不計。
3.2 異常情況自動上報
在實際應(yīng)用時,單靠周期性的掃描來發(fā)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)的異常變動顯然不夠,應(yīng)該設(shè)計一種異常自動上報機制,使得接入設(shè)備能夠在異常發(fā)生的第一時間將自身變動信息自動上報給服務(wù)器,而不是等待掃描模塊下一次周期性的輪詢,而這恰恰就是SNMP陷阱(SNMP Trap)的用武之地。
SNMP陷阱不同于SNMP的主動采集,SNMP主動采集是按照固定的時間間隔,由管理工作站以詢問的方式采集被管理設(shè)備的各項MIB信息,因此,發(fā)現(xiàn)網(wǎng)絡(luò)結(jié)構(gòu)的變化與異常的及時性取決于掃描采集的頻率。在一個較大規(guī)模的網(wǎng)絡(luò)內(nèi),輪詢過于頻繁會產(chǎn)生大量不必要的通信量,容易引起網(wǎng)絡(luò)擁塞;輪詢周期過長,則不能保證網(wǎng)絡(luò)故障被及時發(fā)現(xiàn),嚴重影響了系統(tǒng)的實時性[6]。而SNMP陷阱使用事件驅(qū)動機制,在被監(jiān)控設(shè)備上設(shè)置陷阱,一旦被監(jiān)控設(shè)備出現(xiàn)異常情況,立即向管理工作站發(fā)送陷阱消息,因此能夠在最短的時間內(nèi)發(fā)現(xiàn)異常,避免由設(shè)備異常而帶來的經(jīng)濟損失。
在SNMP的管理模型中,管理代理會向管理工作站發(fā)送一些重要事件的異步通告,其中包括設(shè)備的冷啟動、熱啟動、接口上線和接口下線等幾種消息,而這些消息將由代理主動通知SNMP管理器,而不是等到管理工作站為獲得這些錯誤情況而輪詢的時候才會報告,這將有助于系統(tǒng)以最快的速度接收到來自于被管理設(shè)備的異常通知。系統(tǒng)在收到這些消息后可以通過單獨查詢這個設(shè)備或查詢其周邊的相關(guān)設(shè)備來獲得這個事件更加詳細的情況并向管理人員發(fā)送告警,以便對異常情況作出正確的判斷和處理。
當然,使用SNMP陷阱也需要消耗一定的系統(tǒng)資源,如果該陷阱需要傳輸大量的數(shù)據(jù),則被管設(shè)備就要消耗更多的時間來處理這些數(shù)據(jù),從而降低了設(shè)備的運行速度。此外,如果接連發(fā)生相同類型的陷阱,每次都要報告給管理站,這樣又造成了資源的浪費,可能會造成網(wǎng)絡(luò)擁堵甚至癱瘓。因此,本系統(tǒng)僅僅使用了設(shè)備啟動、接口上線和接口下線這幾種與網(wǎng)絡(luò)結(jié)構(gòu)和邊界安全監(jiān)測關(guān)系最為密切的陷阱事件,以減輕網(wǎng)絡(luò)壓力,提高系統(tǒng)的實時性能。
網(wǎng)絡(luò)規(guī)模大、涉及范圍廣、設(shè)備種類多以及用戶數(shù)量大是目前網(wǎng)絡(luò)的基本特點,因此網(wǎng)絡(luò)的維護管理和安全防護便成為了一個難題。本系統(tǒng)在保障網(wǎng)絡(luò)出口安全的同時,重點加強了網(wǎng)絡(luò)邊界的安全監(jiān)測與防護,使網(wǎng)絡(luò)管理人員能及時全面地了解實時的網(wǎng)絡(luò)結(jié)構(gòu)和邊界接入變化情況,并通過使用多線程和SNMP陷阱技術(shù)來提高網(wǎng)絡(luò)結(jié)構(gòu)掃描的效率,從而有效解決了目前網(wǎng)絡(luò)使用過程中比較常見的用戶隨意更改接入狀態(tài)和非法接入網(wǎng)絡(luò)設(shè)備的問題,避免了由此產(chǎn)生的網(wǎng)絡(luò)運行不穩(wěn)定問題,消除了網(wǎng)絡(luò)安全監(jiān)管盲區(qū)和網(wǎng)絡(luò)安全隱患,保障了網(wǎng)絡(luò)運行的可靠與安全。
參考文獻
[1] 孫延濤,吳志美,石志強.基于地址轉(zhuǎn)發(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)絡(luò)拓撲發(fā)現(xiàn)算法及實現(xiàn)[J].計算機應(yīng)用,2007,27(10):2412-2419.
[4] 李琳,李杰.基于SNMP的網(wǎng)絡(luò)拓撲發(fā)現(xiàn)算法[J].計算機工程與設(shè)計,2008,29(6):1345-1347.
[5] 賀英杰,王慧強,周仁杰.面向網(wǎng)絡(luò)態(tài)勢感知的實時網(wǎng)絡(luò)拓撲發(fā)現(xiàn)[J].計算機工程,2009,35(24):127-129.
[6] 蔡道家,侯秀紅,汪國安,等.基于SNMP的自陷的傳遞輪詢算法[J].計算機工程,2007,33(11):273-275.
評論