SNMP協(xié)議概要和運行過程
網(wǎng)絡協(xié)議的構架,是為了能夠有效地支持正常的網(wǎng)絡工作,而且,也是為了便于對龐大地網(wǎng)絡進行管理。在網(wǎng)絡管理方面,我們應該是比較熟悉SNMP協(xié)議的。這個SNMP協(xié)議的英文是“Simple Network Management Protocol",中文意思是“簡單網(wǎng)絡管理協(xié)議"。SNMP首先是由Internet工程任務組織(Internet Engineering Task Force)(IETF)的研究小組為了解決Internet上的路由器管理問題而提出的。
SNMP是目前最常用的環(huán)境管理協(xié)議。SNMP被設計成與協(xié)議無關,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。它們提供了一種從網(wǎng)絡上的設備中收集網(wǎng)絡管理信息的方法。SNMP也為設備向網(wǎng)絡管理工作站報告問題和錯誤提供了一種方法。
目前,幾乎所有的網(wǎng)絡設備生產(chǎn)廠家都實現(xiàn)了對SNMP的支持。領導潮流的SNMP是一個從網(wǎng)絡上的設備收集管理信息的公用通信協(xié)議。設備的管理者收集這些信息并記錄在管理信息庫(MIB)中。這些信息報告設備的特性、數(shù)據(jù)吞吐量、通信超載和錯誤等。MIB有公共的格式,所以來自多個廠商的SNMP管理工具可以收集MIB信息,在管理控制臺上呈現(xiàn)給系統(tǒng)管理員。
通過將SNMP嵌入數(shù)據(jù)通信設備,如路由器、交換機或集線器中,就可以從一個中心站管理這些設備,并以圖形方式查看信息。目前可獲取的很多管理應用程序通??稍诖蠖鄶?shù)當前使用的操作系統(tǒng)下運行,如Windows95、Windows98、Windows NT和不同版本UNIX的等。
一個被管理的設備有一個管理代理,它負責向管理站請求信息和動作,代理還可以借助于陷阱為管理站提供站動提供的信息,因此,一些關鍵的網(wǎng)絡設備(如集線器、路由器、交換機等)提供這一管理代理,又稱SNMP協(xié)議的代理,以便通過SNMP管理站進行管理。
SNMP的運行過程
駐留在被管設備上的AGENT從UDP端口161接受來自網(wǎng)管站的串行化報文,經(jīng)解碼、團體名驗證、分析得到管理變量在MIB樹中對應的節(jié)點,從相應的模塊中得到管理變量的值,再形成響應報文,編碼發(fā)送回網(wǎng)管站。網(wǎng)管站得到響應報文后,再經(jīng)同樣的處理,最終顯示結果。
下面根據(jù)RFC1157詳細介紹Agent接受到報文后采取的動作:
首先解碼生成用內(nèi)部數(shù)據(jù)結構表示的報文,解碼依據(jù)ASN.1的基本編碼規(guī)則,如果在此過程中出現(xiàn)錯誤導致解碼失敗則丟棄該報文,不做進一步處理。
第二步:將報文中的版本號取出,如果與本Agent支持的SNMP協(xié)議版本不一致,則丟棄該報文,不做進一步處理。當前北研的數(shù)據(jù)通信產(chǎn)品只支持SNMP版本1。
第三步:將報文中的團體名取出,此團體名由發(fā)出請求的網(wǎng)管站填寫。如與本設備認可的團體名不符,則丟棄該報文,不做進一步處理,同時產(chǎn)生一個陷阱報文。SNMPv1只提供了較弱的安全措施,在版本3中這一功能將大大加強。
第四步:從通過驗證的ASN.1對象中提出協(xié)議數(shù)據(jù)單元PDU,如果失敗,丟棄報文,不做進一步處理。否則處理PDU,結果將產(chǎn)生一個報文,該報文的發(fā)送目的地址應同收到報文的源地址一致。
SNMP協(xié)議的常用程序開發(fā)
Agent:NetSNMP 、Agent++ 、 MG-soft、solarwind
管理端: winsnmp—windows自帶的SNMP庫;
snmp4j— JAVA版本的SNMP協(xié)議棧;
ObjectSNMP—面向?qū)ο蟮膉ava snmp開發(fā)包;O/M Mapping技術。Linux/Unix下的SNMP協(xié)議工具包:net-snmp。