基于SNMP的網絡監(jiān)控系統研究與設計
4 系統實現
4.1 環(huán)狀權值分布
拓撲圖的排序算法被叫“環(huán)狀權值分布”,主要是因為引入了設備在網絡中 “權重”的概念。由于布局的主要目的是讓主要設備能夠分布且合理定位在屏幕上,所以拓撲布局的算法首先是找出那些“權重”最高的設備,并依此排序進行設備定位。算法主要的步驟有:
(1)設備按“權重”排序。系統主要面向的是路由及交換設備,所以對拓撲圖最為敏感的信息就是“路由”信息。如果一個設備核心的路由數量高于其他的設備,則該設備就是所謂的“核心設備”。
(2)最高權重優(yōu)先定位。步驟(1)已經確定了最為核心的設備以及按“權值”排序后的設備分組。最為核心的設備是第一組,它們將以屏幕正中央為圓心,均勻分布在某個半徑的圓圈上。半徑的確定取決于要定位的設備數量,數量越多半徑值越大。當這些設備定位結束時,也就確定了此設備在屏幕中心點的角度(∠θ),此角度將作為下個步驟定位的依據。
(3)“衛(wèi)星”設備布局。與核心設備相聯接的設備都歸類為該核心設備的衛(wèi)星設備, “衛(wèi)星”設備的具體分布算法如下:
假定有n個核心設備,那么每個核心設備的衛(wèi)星設備只可以分布在360/n的扇形范圍內,如圖3所示。
![](http://editerupload.eepw.com.cn/fetch/20130926/170546_2_0.jpg)
圖3中有3個核心設備,被分為A、B、C三個扇形區(qū)域,以R2為例,它的3個衛(wèi)星設備就分布在B區(qū)域,且在B扇形內根據∠θ均勻分布,半徑會以衛(wèi)星設備的數量作相應的修正。
(4)繪制鏈路連線。核心設備區(qū)域的連線允許交錯,因為這部分的連線幾乎不太可能做到不交叉。由于分布是基于環(huán)的,所以連線即便有交錯,問題也不會很嚴重。衛(wèi)星設備的連線主要是對上一個設備的,這種情況下可以直連,如果衛(wèi)星設備之間有連線,則可對衛(wèi)星設備的布局會做一些小調整,盡量不出現連線的過度交叉。
此時如果發(fā)現x設備與z設備間有連線,就會根據屏幕上的空間對x或z的位置做一些小的調整,以讓x與z的連線分布得更為合理。
4.2 MIB模塊的實現
為命名方便,基于簡單網絡管理協議的網絡監(jiān)控系統簡稱為SNMS。根據MIB的命名方式,在1.3.6.1.4.1節(jié)點下自定義了一個名為Tute(888)的節(jié)點,在該節(jié)點下定義SNMS(1)節(jié)點。
定義了MIB中的對象標識符以后,就需要對軟件只能夠涉及到的、需要管理的對象進行劃分,在此,將SNMS這個系統分為system、user和file三部分,分別定義為system(1)、user(2)和file(3),如圖4所示。
![](http://editerupload.eepw.com.cn/fetch/20130926/170546_2_1.jpg)
4.3 Trap模塊的實現
為了使軟件在設備出現事件時能得到通知,在SNMP這個背景下就意味著需要一種能夠接收Trap的機制。設備在自己所能夠支持的事件范圍內,通過定義不同含義的Trap報文,按照設備自身所配置的接收對象將Trap發(fā)送出去。
4.3.1 統一偵聽Trap版本
SNMP協議不同的版本對應著不同的Trap格式。然而對SNMS自身來說,這些Trap的版本并沒有什么意義,軟件所需要的僅僅是必要的標識和對應標識的意義。所以需要一種機制將這些版本的Trap進行統一。
軟件采用的方式是使用中間層來代理。使用TrapMonitor來偵聽所有版本的Trap,通過不同的處理最終觸
發(fā)TrapComing事件,并將處理之后生成的TrapInfoEventArgs傳入,供訂閱者使用。
4.3.2 Trap信息翻譯
Trap包含的信息成百上千,若都由軟件來解析其信息將是一件非常耗時且龐大的工程。況且由于SNMP自身的可擴展性,軟件無法預測其后出現的新Trap定義,所以考慮這樣一種機制:對Trap進行建模,將其核心抽象為一種可擴展可配置的模式。
這種機制使得軟件可以輕松適應不同的場景,而且部署起來也很方便。軟件自身也集成了Trap信息的配置功能,可以避免手動接觸XML文件。
4.3.3 Trap過濾
如何過濾出有用的Trap信息非常關鍵,這是由系統的“管理”性質決定的。系統決定采用一種類似于網絡ACL的做法,提出了白名單和黑名單的過濾模式。類似于Trap信息翻譯,系統也采用了基于XML的做法,將過濾規(guī)則保存在更加靈活部署的XML文件中。這里白名單是指所有Trap到達后只顯示名單中規(guī)則匹配的Trap;黑名單是指所有Trap到達后不顯示規(guī)則匹配的Trap。
5 測試及部署
最終的測試環(huán)境選用了最為常用的網絡設備——中型路由式數據交換網絡。環(huán)境使用5臺Cisco 7200路由器與7臺Cisco 3640交換機搭建,并配置了相關的路由協議,最后開啟SNMP功能和Trap功能。
系統對“中型路由式數據交換網絡”環(huán)境進行拓撲發(fā)現,測試效果如圖5所示。
![](http://editerupload.eepw.com.cn/fetch/20130926/170546_2_2.jpg)
圖6是在一個真實網絡環(huán)境中進行系統測試得到的網絡拓撲。
![](http://editerupload.eepw.com.cn/fetch/20130926/170546_2_3.jpg)
作為基于SNMP的上層應用軟件系統,軟件除了實現核心的拓撲發(fā)現機制與拓撲布局外,還不斷地完善軟件框架,使其能適應不同的上層開發(fā)。軟件理想的演進路線是做成一個基于SNMP的基礎框架,在此框架之上可以不斷地擴充應用。由于SNMP協議本身的成熟性,這種需求的框架有著很大的潛力。
評論