肖坤峨
摘要:SNMP 在基于 TCP/IP 的網(wǎng)絡(luò)中具有重要的地位,然而傳統(tǒng)的 SNMP 管理軟件大多是基于 C/S 結(jié)構(gòu)的,并且是集中式的管理,這必然為網(wǎng)絡(luò)設(shè)備管理帶來(lái)了不便。隨著網(wǎng)絡(luò)的不斷發(fā)展,網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,網(wǎng)絡(luò)的復(fù)雜程度也在不斷的增加,這迫切的需要一種新型的可以滿足各種網(wǎng)絡(luò)設(shè)備管理功能的管理系統(tǒng)。Web 技術(shù)的出現(xiàn)解決了這一難題,將 Web 技術(shù)與 SNMP 相結(jié)合的網(wǎng)絡(luò)設(shè)備管理能夠允許管理人員通過(guò) WWW 的方式去監(jiān)測(cè)他們的網(wǎng)絡(luò),使用任何一種 Web 瀏覽器,在網(wǎng)絡(luò)任何節(jié)點(diǎn)上方便迅速地配置、控制以及存取網(wǎng)絡(luò)的各個(gè)部分。
關(guān)鍵詞:SNMP;WEB;網(wǎng)絡(luò)設(shè)備管理
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2014)08-1678-03
1 網(wǎng)絡(luò)設(shè)備管理的現(xiàn)狀
在網(wǎng)絡(luò)設(shè)備管理系統(tǒng)方面,國(guó)外已經(jīng)有眾多成熟的產(chǎn)品,早期的有pcAnywhere,目前較為流行的有HP公司的OpenView,而我國(guó)的網(wǎng)絡(luò)管理水平還比較低,目前僅有少數(shù)公司能開(kāi)發(fā)出通用的網(wǎng)管平臺(tái),如華為的iManager N2000數(shù)據(jù)通信網(wǎng)絡(luò)管理系統(tǒng)、H3C公司的iMC智能網(wǎng)絡(luò)管理平臺(tái)。早期的網(wǎng)管設(shè)備管理系統(tǒng)中大多都是采用基于C/S單一主機(jī)模式,如3COM的Transcend系列,SUN公司的SunNetManager、D-Link公司的D-View、安耐特公司的SNMPc、華為公司的iManager N2000、H3C公司的Quidview等,采用的是高度集中的網(wǎng)管模式。這種基于C/S結(jié)構(gòu)網(wǎng)管系統(tǒng)在技術(shù)上雖然很成熟,但該結(jié)構(gòu)存在靈活性差、升級(jí)困難、維護(hù)工作量大等缺陷,不再符合現(xiàn)代網(wǎng)絡(luò)管理技術(shù)的發(fā)展趨勢(shì)。隨著Web技術(shù)的成熟,可以將Web技術(shù)引入到網(wǎng)絡(luò)管理中,使得管理更加靈活自如,管理人員可以在任何地方通過(guò)Web瀏覽器實(shí)施網(wǎng)絡(luò)設(shè)備管理,故障管理,配置網(wǎng)絡(luò)管理參數(shù),并且可以通過(guò)將Applet技術(shù)、JSP技術(shù)、RMON技術(shù)和JAVA語(yǔ)言編程相結(jié)合形成新的網(wǎng)絡(luò)管理應(yīng)用。
2 基于C/S和基于WEB的網(wǎng)絡(luò)設(shè)備管理模型的比較
SNMP是由 Internet 體系結(jié)構(gòu)委員會(huì) IAB 所制定的,目前大多數(shù)廠商的網(wǎng)絡(luò)產(chǎn)品如交換機(jī)、路由器、MODEM 等都支持 SNMP 協(xié)議,SNMP 已經(jīng)成為網(wǎng)絡(luò)管理領(lǐng)域中的工業(yè)標(biāo)準(zhǔn)。
2.1SNMP在基于TCP/IP的網(wǎng)絡(luò)中具有重要的管理地位
在整個(gè)SNMP管理體系中包含三類主要的角色:管理站(Manager),代理(Agent)和管理對(duì)象,如圖1所示:
2.2 傳統(tǒng)的基于SNMP的網(wǎng)絡(luò)管理模型中,管理站在整個(gè)網(wǎng)絡(luò)中一旦確定下來(lái),其位置也就固定,很難隨著管理員當(dāng)前的位置在網(wǎng)上移動(dòng)
基于 Web 服務(wù)的網(wǎng)絡(luò)管理模型具有分布性、易擴(kuò)展和易集成等特性,有效地克服了傳統(tǒng)的集中式網(wǎng)絡(luò)管理模式的主要缺陷。為了解決該問(wèn)題,提高網(wǎng)絡(luò)管理效率,該文將 SNMP 與 Web 技術(shù)結(jié)合,構(gòu)造了一種基于 B/S 結(jié)構(gòu)的SNMP 網(wǎng)絡(luò)管理框架 , 如圖2所示。
3 系統(tǒng)功能分析
1) 設(shè)備面板瀏覽,包括:交換機(jī)、路由器、語(yǔ)音產(chǎn)品、安全產(chǎn)品等。
2) 端口瀏覽及配置功能,主要包含端口up/down及端口基本信息。
3) 支持從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)和從設(shè)備讀取兩種類型來(lái)顯示設(shè)備面板。
4) 支持從設(shè)備面板的右鍵菜單調(diào)用其它功能模塊。
4 系統(tǒng)設(shè)計(jì)
4.1 在總體設(shè)計(jì)階段,分為前臺(tái)ClientFrame界面的設(shè)計(jì)及后臺(tái)Server端(數(shù)據(jù)的讀取及設(shè)置)的設(shè)計(jì),數(shù)據(jù)讀取可以從數(shù)據(jù)數(shù)據(jù)庫(kù)讀取,也可以從物理設(shè)備的mib中讀取
如圖3所示。
前臺(tái)刷新器每個(gè)幾秒自動(dòng)刷新設(shè)備,通過(guò)HTTP隧道獲取后臺(tái)數(shù)據(jù),session層用于取得協(xié)議棧對(duì)象。
4.2 系統(tǒng)UML類圖設(shè)計(jì)
DisplayUI實(shí)現(xiàn)Refreshable接口,基本上所有不需要配置的類(包括面板類)都是繼承此類;Refresher用于刷新設(shè)備面板,即發(fā)送數(shù)據(jù)對(duì)象到Server端,設(shè)備設(shè)備廠商、MIB空間,加載MIB,加載功能列表,發(fā)送數(shù)據(jù)到Client端;AppletScheduler類用于Applet視圖的調(diào)度管理;Device用于設(shè)置或獲取ifTable表數(shù)據(jù);Func類用于啟東相應(yīng)設(shè)備的功能。
5 系統(tǒng)功能實(shí)現(xiàn)
1)設(shè)備管理功能的實(shí)現(xiàn)。通過(guò)全仿真的設(shè)備面板對(duì)設(shè)備、網(wǎng)絡(luò)系統(tǒng)進(jìn)行管理,從設(shè)備面板上獲知設(shè)備的廠商、類型,單板、子卡、端口狀態(tài)、指示燈運(yùn)行狀況等。設(shè)備面板每隔5分鐘自動(dòng)刷新一次面板,如果出現(xiàn)異常則產(chǎn)生告警,設(shè)備面板上的元素狀態(tài)發(fā)生變化。設(shè)備類Device.java用于構(gòu)造設(shè)備面板視圖已經(jīng)對(duì)設(shè)備進(jìn)行初始化工作。
Public class Device{
Public Device{init();}
Public Device(int opened){init(); this.opened=opened;}
Private void init(){ //對(duì)設(shè)備進(jìn)行初始化
Opened=0; //設(shè)置設(shè)備的狀態(tài)
Type=””;//設(shè)置設(shè)備的類型
Devname=””;//設(shè)置設(shè)備的名稱
Description=”” //設(shè)置設(shè)備的描述
So=(snmpOption)SnmpOption.getSnmpOpiton.Clone();//獲取//協(xié)議棧參數(shù)}
Start(){ //啟動(dòng)常駐功能模塊
if(opened!=1)return;
Func f=null;
for(int i=0;i f=(Func)func.elementAt(i); if(f.needStop==false){f.start();} }} 刷新面板部分方法: Public void refreshCurUI(); //刷新當(dāng)前功能模塊 Public void refreshCurUI(Func f); //刷新指定功能模塊 Public void setrefreshInterval(Func f,int t, Boolean restart) //設(shè)置刷新間隔 Public void setRefreshDirection(Func f,int d)//設(shè)置刷新方向 2)端口管理功能的實(shí)現(xiàn)。通過(guò)選定某個(gè)端口,可以查詢?cè)摱丝诘默F(xiàn)在的運(yùn)行狀況、可以獲知該端口的速率、端口的類型、端口別名、端口的管理狀態(tài)、端口的運(yùn)行狀態(tài)、端口描述及端口的最后改變時(shí)間。通過(guò)選定某個(gè)端口可以對(duì)真實(shí)設(shè)備的端口進(jìn)行配置,可以配置端口的別名、端口的管理狀態(tài),配置端口管理狀態(tài)成功則刷新設(shè)備面板,反映當(dāng)前設(shè)備的狀態(tài)。前臺(tái)架構(gòu)主類MainFrame.java代碼如下: Class MainFrame{ Device dev=new Device(); PropertyResourceBundle res; Void loadResourebundle();//加載資源 Device createDevice(); //構(gòu)造設(shè)備對(duì)象 Void refreshDevice() ;//刷新設(shè)備對(duì)象,構(gòu)造設(shè)備功能列表 Void startDevicePanelMonitor() ; //啟動(dòng)設(shè)備面板監(jiān)視功能 Void onMenuAction() ; //右鍵功能菜單響應(yīng)函數(shù) Public void openDevice (String ip,SnmpOptionEx so){ //打開(kāi)設(shè)備 Startfrom();//設(shè)置線程 QvOpion option=Qvoption.getOption(); Dev.peername=IpTools.getTrim(ip); Dev.so=new SnmpOption(so); Opendevice(dev); }} 3)從mib庫(kù)中讀取數(shù)據(jù)用于顯示面板信息。Session.java類用于取得協(xié)議棧對(duì)象。 public class session{ public session(){this.sisnmpIf=QvSnmpToolkit.getSnmpIf();} //初始化會(huì)話對(duì)象,通過(guò)協(xié)議棧連接設(shè)備 Public void initSession(Device dev){ siSnmpIf.setPeername(dev.peername); siSnmpIf.createConnection(dev.getSnmpOption()); this.dev=dev; }} 6發(fā)展趨勢(shì) 未來(lái)的網(wǎng)絡(luò)管理的發(fā)展方向是進(jìn)一步實(shí)現(xiàn)智能化,從而大幅度降低網(wǎng)管人員的工作壓力,提高工作效率,真正體現(xiàn)網(wǎng)管軟件的作用。智能化的網(wǎng)管軟件應(yīng)該能夠自動(dòng)獲得網(wǎng)絡(luò)中各種設(shè)備的技術(shù)參數(shù),進(jìn)而智能分析、診斷,以至預(yù)警。智能化的網(wǎng)絡(luò)管理系統(tǒng)具有強(qiáng)大的預(yù)故障處理功能,并且能夠自動(dòng)進(jìn)行故障恢復(fù),盡一切的可能把故障發(fā)生的可能性降至了最低。 參考文獻(xiàn): [1] 岑賢道,安常青.網(wǎng)絡(luò)管理協(xié)議及應(yīng)用開(kāi)發(fā)[M].北京:清華大學(xué)出版社,1998. [2] 雷震甲.網(wǎng)絡(luò)工程師教程 [M]. 2版.北京:清華大學(xué)出版社,2006. [3] 吳娜,魯東明,潘云鶴.網(wǎng)絡(luò)管理技術(shù)的研究與發(fā)展[J].計(jì)算機(jī)應(yīng)用研究,2000(4). [4] 張忱.SNMPvl與SNMPv2.SNMPv3 的比較研究[J].計(jì)算機(jī)工程與應(yīng)用,2000(4).