上篇文章提到一套完整的SNMP系統(tǒng)主要包括管理信息庫(MIB),、管理信息結(jié)構(gòu)(SMI)及SNMP報(bào)文協(xié)議。 本篇我們來學(xué)習(xí)管理信息庫(MIB) 一,、管理信息庫MIB 任何一個(gè)被管理的資源都表示成一個(gè)對(duì)象,,稱為被管理的對(duì)象。MIB是被管理對(duì)象的集合,。它定義了被管理對(duì)象的一系列屬性:對(duì)象的名稱,、對(duì)象的訪問權(quán)限和對(duì)象的數(shù)據(jù)類型等。每個(gè)SNMP設(shè)備(Agent)都有自己的MIB,。MIB也可以看作是NMS(網(wǎng)管系統(tǒng))和Agent之間的溝通橋梁,。它們之間的關(guān)系如圖所示: MIB文件中的變量使用的名字取自ISO和ITU管理的對(duì)象標(biāo)識(shí)符(object identifier)名字空間。它是一種分級(jí)樹的結(jié)構(gòu),。 如下圖所示,,第一級(jí)有三個(gè)節(jié)點(diǎn):ccitt,、iso,、iso-ccitt,。低級(jí)的對(duì)象ID分別由相關(guān)組織分配。一個(gè)特定對(duì)象的標(biāo)識(shí)符可通過由根到該對(duì)象的路徑獲得,。一般網(wǎng)絡(luò)設(shè)備取iso節(jié)點(diǎn)下的對(duì)象內(nèi)容,。如名字空間ip結(jié)點(diǎn)下一個(gè)名字為ipInReceives的MIB變量被指派數(shù)字值3,因而該變量的名字為: iso.org.dod.internet.mgmt.mib.ip.ipInReceives 相應(yīng)的數(shù)字表示(對(duì)象標(biāo)識(shí)符OID,,唯一標(biāo)識(shí)一個(gè)MIB對(duì)象)為: 1.3.6.1.2.1.4.3
當(dāng)網(wǎng)絡(luò)管理協(xié)議在報(bào)文中使用MIB變量時(shí),,每個(gè)變量名后還要加一個(gè)后綴,以作為該變量的一個(gè)實(shí)例,。如ipInReceives的實(shí)例數(shù)字表示為:1.3.6.1.2.1.4.3.0. 需要注意的是,,MIB中的管理對(duì)象的OID有些需要?jiǎng)討B(tài)確定,如IP路由表,,為了指明地址202.120.86.71的下一站路由(next hop),,我們可以引用這樣的實(shí)例: iso.org.dod.internet.mgmt.mib.ip. ipRouteTable.ipRouteEntry.ipRouteNextHop.202.120.86.71, 相應(yīng)的數(shù)字表示為:1.3.6.1.2.1.4.21.1.7.202.120.86.71 對(duì)于這種動(dòng)態(tài)對(duì)象標(biāo)識(shí)的實(shí)例,由于無法轉(zhuǎn)換為預(yù)先指定的Readkey名稱,,與飛鄰的產(chǎn)品架構(gòu)沖突(需要?jiǎng)討B(tài)生成可變Readkey),,暫不考慮支持。 二,、管理信息庫mib-2 在Internet結(jié)點(diǎn)下面的第二個(gè)結(jié)點(diǎn)是mgmt(管理),,標(biāo)號(hào)是2。再下面是管理信息庫,,原先的結(jié)點(diǎn)名是mib,。1991年定義了新的版本MIB-II,故結(jié)點(diǎn)名現(xiàn)改為mib-2,,其標(biāo)識(shí)為{1.3.6.1.2.1},,或{Internet(1) .2.1},。這種標(biāo)識(shí)為對(duì)象標(biāo)識(shí)符。 最初的結(jié)點(diǎn)mib將其所管理的信息分為8個(gè)類別(上圖展示了7個(gè))。現(xiàn)在de mib-2所包含的信息類別已超過40個(gè) 應(yīng)當(dāng)指出,,MIB的定義與具體的網(wǎng)絡(luò)管理協(xié)議無關(guān),這對(duì)于廠商和用戶都有利,。廠商可以在產(chǎn)品(如路由器)中包含SNMP代理軟件,,并保證在定義新的MIB項(xiàng)目后該軟件仍遵守標(biāo)準(zhǔn)。用戶可以使用同一網(wǎng)絡(luò)管理客戶軟件來管理具有不同版本的MIB的多個(gè)路由器,。當(dāng)然,,一個(gè)沒有新的MIB項(xiàng)目的路由器不能提供這些項(xiàng)目的信息。 這里要提一下MIB中的對(duì)象{1.3.6.1.4.1},,即enterprises(企業(yè)),,其所屬結(jié)點(diǎn)數(shù)已超過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},,Huawei為{1.3.6.1.4.1.2011}。世界上任何一個(gè)公司,、學(xué)校只要用電子郵件發(fā)往[email protected]進(jìn)行申請(qǐng)即可獲得一個(gè)結(jié)點(diǎn)名,。這樣各廠家就可以定義自己的產(chǎn)品的被管理對(duì)象名,使它能用SNMP進(jìn)行管理,。 三,、OID OID(對(duì)象標(biāo)識(shí)符),是SNMP代理提供的具有唯一標(biāo)識(shí)的鍵值,。MIB(管理信息基)提供數(shù)字化OID到可讀文本的映射,。 1、OID OID的編寫規(guī)則和習(xí)慣 SNMP OID是用一種按照層次化格式組織的,、樹狀結(jié)構(gòu)中的唯一地址來表示的,,它與DNS層次相似。與其他格式的尋址方式類型,,OID以兩種格式加以應(yīng)用:全名和先對(duì)名(有時(shí)稱為“相關(guān)”) 完全驗(yàn)證格式從root根開始,,并且向外移到某個(gè)設(shè)備的獨(dú)立的質(zhì)上。例如一個(gè)完整驗(yàn)證的地址為: 該OID可用人們可讀的方式重寫為: 所有完全驗(yàn)證OID都有 .iso.org.dod.internet.private 開始,,數(shù)字表達(dá)為: .1.3.6.4. ,。幾乎所有的OID都會(huì)跟上企業(yè)(.1)和由IANA(互聯(lián)網(wǎng)編號(hào)分配中心分配的)唯一的廠商標(biāo)號(hào)。例如OID 789表示Network Appliance格式的廠商編號(hào)( NetApp ),。廠商編號(hào)后面的是基于廠商實(shí)現(xiàn)的功能,,并且各不相同。請(qǐng)注意,,在iso.前面的 . ` ,,與DNS中的后點(diǎn)相似,正確驗(yàn)證的OID是有一個(gè)表示根的前綴 `. 開始的,。 OID的相對(duì)格式,,從企業(yè)值開始,略過所有的隱含地址,。因此,,我們可以用相對(duì)地址 enterprises.netapp.netappl.raid.diskSUmmary.diskSpaceCount.0 來表示上述的OID,或者用數(shù)字格式 .1.789.6.4.8.0 . 寫OID的常用格式是用MIB名稱和在MIB中定義的唯一鍵值,。例如,,我們可以用簡寫的格式重寫上述OID NETWORK-APPLIANCE-MIB::diskSpareCount.0 MIB中OID的書寫格式規(guī)則為::MIB Name::唯一鍵值.instance. 某些唯一鍵值,可用多個(gè)實(shí)例表示,,這樣所有的OID都以實(shí)例值結(jié)尾,。這就是為什么你得注意到大多數(shù)OID都是以一個(gè) .0 結(jié)尾的。 四、MIB內(nèi)部結(jié)構(gòu) MIB的內(nèi)部結(jié)構(gòu)剛開始時(shí)會(huì)讓人感覺有些奇怪和不好理解,,不過它的結(jié)構(gòu)非常好,,你可以在不懂的情況下一個(gè)一個(gè)看進(jìn)去。MIB的結(jié)構(gòu)來源于IETF RFC1155和2578定義的管理信息結(jié)構(gòu),。如果你想要修改或編寫自己的MIB,在動(dòng)手前理解SMI非常有幫助,。 為了更好地理解他們是怎樣工作的,,我們先來看看MIB的頭:
可以用行開頭為 -- 的方法在MIB中加入注釋。 在頭部用 BEGIN`聲明來開始MIB的定義,。 `Imports 可用來從其他MIB中提取信息,通常用它來提取MIB-II規(guī)范要求的內(nèi)容,。 MIB放置從enterprise值開始的OID地址的結(jié)構(gòu)。 在此,,enterprise值是318, 對(duì)應(yīng) "apc" (相對(duì)地址為 .1.318),。 通常之后會(huì)定義幾個(gè)類別。注意在花括號(hào)間定義的兩個(gè)值,其父地址后面跟一個(gè)它自己的地址,。因此產(chǎn)品標(biāo)識(shí)符有apc標(biāo)識(shí)符表示,,其父為enterprise標(biāo)識(shí)符,以此類推,。類別和自類別的類型通常跟在MIB頭的后面,,并且把有用的鍵值分割為子組。通過分段,,各種值分別被列出,,這樣可用的值更容易瀏覽。 MIB的真正好處在于對(duì)象類型的描述,。以下是一個(gè)整形鍵值的例子:
因此,,在這里真正需要注意的是,MIB其實(shí)只是提供給我們一張我們想從某個(gè)SNMP代理中獲得的可用OID的各種值的地圖,。一個(gè)MIB描述了在哪里找某個(gè)值,、以及返回結(jié)果是什么。我們可以不用MIB與設(shè)備進(jìn)行交互,,只不過在理獲得'Up'的返回值,,要比'1’的返回值要簡單的多。通過利用Net-SNMP命令行工具,,你可以決定你希望返回結(jié)果的輸出樣式(這種方式下使用“Up"這樣的格式更好),,或者你用腳本調(diào)用工具時(shí)(這種方式下使用”1“的格式就更好)。 |
|