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