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