SNMP MIB完整手冊
SNMP MIB是SNMP協議軟件中主要的一個模塊。那么MIB的主要功能就是管理信息庫。那么一些常用的代碼編輯,我們在前面的文章也有一些涉及。但是不少朋友還是對于SNMP MIB不理解。為此,我們整理了下面的文章幫助大家來學習這部分內容。
最近要做一些服務器和設備的監控, 自帶的cacti模板已不能滿足需求, 經過一天調試, 目前已實現了bind9 mysql bind等數據流量的分析(其實也就是用腳本取數據,***用rrdtool畫圖出來), 但學習的過程中, 發現不大了解SNMP MIB概念, google了一下,下面的文章應該能解答一部分與我有同樣問題的朋友們(我簡單進行了排版整理)
SNMP協議詳解
簡單網絡管理協議(SNMP:Simple Network Management Protocol)是由互聯網工程任務組(IETF:Internet Engineering Task Force )定義的一套網絡管理協議。該協議基于簡單網關監視協議(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一個管理工作站可以遠程管理所有支持這種協議的網絡設備,包括監視網絡狀態、修改網絡設備配置、接收網絡事件警告等。雖然SNMP開始是面向基于IP的網絡管理,但作為一個工業標準也被成功用于電話網絡管理。
1. SNMP基本原理
SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。對網絡的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負責回答SNMP管理工作站(主代理)關于SNMP MIB定義信息的各種查詢。下圖是NMS公司網絡產品中SNMP協議的實現模型。
SNMP協議的實現模型
SNMP代理和管理站通過SNMP協議中的標準消息進行通信,每個消息都是一個單獨的數據報。SNMP使用UDP(用戶數據報協議)作為第四層協議(傳輸協議),進行無連接操作。SNMP消息報文包含兩個部分:SNMP報頭和協議數據單元PDU。數據報結構如下圖:
數據報結構
版本識別符(version identifier):確保SNMP代理使用相同的協議,每個SNMP代理都直接拋棄與自己協議版本不同的數據報。團體名(Community Name):用于SNMP從代理對SNMP管理站進行認證;如果網絡配置成要求驗證時,SNMP從代理將對團體名和管理站的IP地址進行認證,如果失敗,SNMP從代理將向管理站發送一個認證失敗的Trap消息。協議數據單元(PDU):其中PDU指明了SNMP的消息類型及其相關參數。#p#
2. 管理信息庫MIB
IETF規定的管理信息庫MIB(由中定義了可訪問的網絡設備及其屬性,由對象識別符(OID:Object Identifier)唯一指定。MIB是一個樹形結構,SNMP協議消息通過遍歷SNMP MIB樹形目錄中的節點來訪問網絡中的設備。下圖給出了NMS系統中SNMP可訪問網絡設備的對象識別樹(OID:Object Identifier)結構。給出了對一個DS1線路狀態進行查詢的OID設置例子。
SNMP可訪問網絡設備的對象識別樹(OID:Object Identifier)結構
3. SNMP的五種消息類型
SNMP中定義了五種消息類型:Get-Request、Get-Response、Get-Next-Request、Set-Request、Trap
(1)Get-Request 、Get-Next-Request與Get-Response
SNMP管理站用Get-Request消息從擁有SNMP代理的網絡設備中檢索信息,而SNMP代理則用Get-Response消息響應。Get-Next-Request用于和Get-Request組合起來查詢特定的表對象中的列元素。如:首先通過下面的原語獲得所要查詢的設備的接口數:
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)}
后再通過下面的原語,進行查詢(其中***次用Get-Request,其后用Get-Next-Request):
{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)}
(2)Set-Request
SNMP管理站用Set-Request 可以對網絡設備進行遠程配置(包括設備名、設備屬性、刪除設備或使某一個設備屬性有效/無效等)。
(3)Trap
SNMP代理使用Trap向SNMP管理站發送非請求消息,一般用于描述某一事件的發生。
SNMP管理信息庫MIB
管理信息庫SNMP MIB指明了網絡元素所維持的變量(即能夠被管理進程查詢和設置的信息)。MIB給出了一個網絡中所有可能的被管理對象的集合的數據結構。SNMP的管理信息庫采用和域名系統DNS相似的樹型結構,它的根在最上面,根沒有名字。下圖畫的是管理信息庫的一部分,它又稱為對象命名(objectnamingtree)。
對象命名(objectnamingtree)#p#
SNMP MIB管理信息庫的對象命名舉例
對象命名樹的***對象有三個,即ISO、ITU-T和這兩個組織的聯合體。在ISO的下面有4個結點,其中的餓一個(標號3)是被標識的組織。在其下面有一個美國國防部(Department of Defense)的子樹(標號是6),再下面就是Internet(標號是1)。在只討論Internet中的對象時,可只畫出Internet以下的子樹(圖中帶陰影的虛線方框),并在Internet結點旁邊標注上{1.3.6.1}即可。 在Internet結點下面的第二個結點是mgmt(管理),標號是2。再下面是管理信息庫,原先的結點名是mib。1991年定義了新的版本MIB-II,故結點名現改為mib-2,其標識為{1.3.6.1.2.1},或{Internet(1) .2.1}。這種標識為對象標識符。
最初的結點mib將其所管理的信息分為8個類別,見表1。現在de mib-2所包含的信息類別已超過40個。
表1 最初的結點mib管理的信息類別
應當指出,SNMP MIB的定義與具體的網絡管理協議無關,這對于廠商和用戶都有利。廠商可以在產品(如路由器)中包含SNMP代理軟件,并保證在定義新的MIB項目后該軟件仍遵守標準。用戶可以使用同一網絡管理客戶軟件來管理具有不同版本的MIB的多個路由器。當然,一個沒有新的MIB項目的路由器不能提供這些項目的信息。
這里要提一下SNMP MIB中的對象{1.3.6.1.4.1},即enterprises(企業),其所屬結點數已超過3000。例如IBM為11.3.6.1.4.1.2},Cisco為{1.3.6.1.4.1.9},Novell為{1.3.6.1.4.1.23}等。世界上任何一個公司、學校只要用電子郵件發往iana-mib@isi.edu進行申請即可獲得一個結點名。這樣各廠家就可以定義自己的產品的被管理對象名,使它能用SNMP進行管理。