基于SNMP的網(wǎng)絡(luò )監控系統研究與設計
4 系統實(shí)現
4.1 環(huán)狀權值分布
拓撲圖的排序算法被叫“環(huán)狀權值分布”,主要是因為引入了設備在網(wǎng)絡(luò )中 “權重”的概念。由于布局的主要目的是讓主要設備能夠分布且合理定位在屏幕上,所以拓撲布局的算法首先是找出那些“權重”最高的設備,并依此排序進(jìn)行設備定位。算法主要的步驟有:
(1)設備按“權重”排序。系統主要面向的是路由及交換設備,所以對拓撲圖最為敏感的信息就是“路由”信息。如果一個(gè)設備核心的路由數量高于其他的設備,則該設備就是所謂的“核心設備”。
(2)最高權重優(yōu)先定位。步驟(1)已經(jīng)確定了最為核心的設備以及按“權值”排序后的設備分組。最為核心的設備是第一組,它們將以屏幕正中央為圓心,均勻分布在某個(gè)半徑的圓圈上。半徑的確定取決于要定位的設備數量,數量越多半徑值越大。當這些設備定位結束時(shí),也就確定了此設備在屏幕中心點(diǎn)的角度(∠θ),此角度將作為下個(gè)步驟定位的依據。
(3)“衛星”設備布局。與核心設備相聯(lián)接的設備都歸類(lèi)為該核心設備的衛星設備, “衛星”設備的具體分布算法如下:
假定有n個(gè)核心設備,那么每個(gè)核心設備的衛星設備只可以分布在360/n的扇形范圍內,如圖3所示。

圖3中有3個(gè)核心設備,被分為A、B、C三個(gè)扇形區域,以R2為例,它的3個(gè)衛星設備就分布在B區域,且在B扇形內根據∠θ均勻分布,半徑會(huì )以衛星設備的數量作相應的修正。
(4)繪制鏈路連線(xiàn)。核心設備區域的連線(xiàn)允許交錯,因為這部分的連線(xiàn)幾乎不太可能做到不交叉。由于分布是基于環(huán)的,所以連線(xiàn)即便有交錯,問(wèn)題也不會(huì )很?chē)乐?。衛星設備的連線(xiàn)主要是對上一個(gè)設備的,這種情況下可以直連,如果衛星設備之間有連線(xiàn),則可對衛星設備的布局會(huì )做一些小調整,盡量不出現連線(xiàn)的過(guò)度交叉。
此時(shí)如果發(fā)現x設備與z設備間有連線(xiàn),就會(huì )根據屏幕上的空間對x或z的位置做一些小的調整,以讓x與z的連線(xiàn)分布得更為合理。
4.2 MIB模塊的實(shí)現
為命名方便,基于簡(jiǎn)單網(wǎng)絡(luò )管理協(xié)議的網(wǎng)絡(luò )監控系統簡(jiǎn)稱(chēng)為SNMS。根據MIB的命名方式,在1.3.6.1.4.1節點(diǎn)下自定義了一個(gè)名為T(mén)ute(888)的節點(diǎn),在該節點(diǎn)下定義SNMS(1)節點(diǎn)。
定義了MIB中的對象標識符以后,就需要對軟件只能夠涉及到的、需要管理的對象進(jìn)行劃分,在此,將SNMS這個(gè)系統分為system、user和file三部分,分別定義為system(1)、user(2)和file(3),如圖4所示。

4.3 Trap模塊的實(shí)現
為了使軟件在設備出現事件時(shí)能得到通知,在SNMP這個(gè)背景下就意味著(zhù)需要一種能夠接收Trap的機制。設備在自己所能夠支持的事件范圍內,通過(guò)定義不同含義的Trap報文,按照設備自身所配置的接收對象將Trap發(fā)送出去。
4.3.1 統一偵聽(tīng)Trap版本
SNMP協(xié)議不同的版本對應著(zhù)不同的Trap格式。然而對SNMS自身來(lái)說(shuō),這些Trap的版本并沒(méi)有什么意義,軟件所需要的僅僅是必要的標識和對應標識的意義。所以需要一種機制將這些版本的Trap進(jìn)行統一。
軟件采用的方式是使用中間層來(lái)代理。使用TrapMonitor來(lái)偵聽(tīng)所有版本的Trap,通過(guò)不同的處理最終觸
發(fā)TrapComing事件,并將處理之后生成的TrapInfoEventArgs傳入,供訂閱者使用。
4.3.2 Trap信息翻譯
Trap包含的信息成百上千,若都由軟件來(lái)解析其信息將是一件非常耗時(shí)且龐大的工程。況且由于SNMP自身的可擴展性,軟件無(wú)法預測其后出現的新Trap定義,所以考慮這樣一種機制:對Trap進(jìn)行建模,將其核心抽象為一種可擴展可配置的模式。
這種機制使得軟件可以輕松適應不同的場(chǎng)景,而且部署起來(lái)也很方便。軟件自身也集成了Trap信息的配置功能,可以避免手動(dòng)接觸XML文件。
4.3.3 Trap過(guò)濾
如何過(guò)濾出有用的Trap信息非常關(guān)鍵,這是由系統的“管理”性質(zhì)決定的。系統決定采用一種類(lèi)似于網(wǎng)絡(luò )ACL的做法,提出了白名單和黑名單的過(guò)濾模式。類(lèi)似于Trap信息翻譯,系統也采用了基于XML的做法,將過(guò)濾規則保存在更加靈活部署的XML文件中。這里白名單是指所有Trap到達后只顯示名單中規則匹配的Trap;黑名單是指所有Trap到達后不顯示規則匹配的Trap。
5 測試及部署
最終的測試環(huán)境選用了最為常用的網(wǎng)絡(luò )設備——中型路由式數據交換網(wǎng)絡(luò )。環(huán)境使用5臺Cisco 7200路由器與7臺Cisco 3640交換機搭建,并配置了相關(guān)的路由協(xié)議,最后開(kāi)啟SNMP功能和Trap功能。
系統對“中型路由式數據交換網(wǎng)絡(luò )”環(huán)境進(jìn)行拓撲發(fā)現,測試效果如圖5所示。

圖6是在一個(gè)真實(shí)網(wǎng)絡(luò )環(huán)境中進(jìn)行系統測試得到的網(wǎng)絡(luò )拓撲。

作為基于SNMP的上層應用軟件系統,軟件除了實(shí)現核心的拓撲發(fā)現機制與拓撲布局外,還不斷地完善軟件框架,使其能適應不同的上層開(kāi)發(fā)。軟件理想的演進(jìn)路線(xiàn)是做成一個(gè)基于SNMP的基礎框架,在此框架之上可以不斷地擴充應用。由于SNMP協(xié)議本身的成熟性,這種需求的框架有著(zhù)很大的潛力。
評論