SNMP MIB的初級(jí)操作
在學(xué)習(xí)SNMP協(xié)議的時(shí)候,大家應(yīng)該有所發(fā)現(xiàn)。對于Linux SNMP的使用,是一個(gè)重點(diǎn)。那么其中也包括了SNMP MIB的一些使用。那么今天就此方面,我們來介紹一下。
SNMP協(xié)議(Simple Network Management Protocol)即簡單網(wǎng)絡(luò)管理協(xié)議,它為網(wǎng)絡(luò)管理系統(tǒng)提供了底層網(wǎng)絡(luò)管理的框架。SNMP協(xié)議的應(yīng)用范圍非常廣泛,諸多種類的網(wǎng)絡(luò)設(shè)備、軟件和系統(tǒng)中都有所采用,主要是因?yàn)镾NMP協(xié)議有如下幾個(gè)特點(diǎn):
首先,相對于其它種類的網(wǎng)絡(luò)管理體系或管理協(xié)議而言,SNMP易于實(shí)現(xiàn)。SNMP的管理協(xié)議、SNMP MIB及其它相關(guān)的體系框架能夠在各種不同類型的設(shè)備上運(yùn)行,包括低檔的個(gè)人電腦到高檔的大型主機(jī)、服務(wù)器、及路由器、交換器等網(wǎng)絡(luò)設(shè)備。
Linux SNMP是一系列協(xié)議組和規(guī)范,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。Linux SNMP也為設(shè)備向網(wǎng)絡(luò)管理工作站報(bào)告問題和錯(cuò)誤提供了一種方法。
一個(gè)SNMP管理代理組件在運(yùn)行時(shí)不需要很大的內(nèi)存空間,因此也就不需要太強(qiáng)的計(jì)算能力。SNMP協(xié)議一般可以在目標(biāo)系統(tǒng)中快速開發(fā)出來,所以它很容易在面市的新產(chǎn)品或升級(jí)的老產(chǎn)品中出現(xiàn)。盡管SNMP協(xié)議缺少其它網(wǎng)絡(luò)管理協(xié)議的某些優(yōu)點(diǎn),但它設(shè)計(jì)簡單、擴(kuò)展靈活、易于使用,這些特點(diǎn)大大彌補(bǔ)了SNMP協(xié)議應(yīng)用中的其他不足。
其次,SNMP協(xié)議是開放的免費(fèi)產(chǎn)品。只有經(jīng)過IETF的標(biāo)準(zhǔn)議程批準(zhǔn)(IETF是IAB下設(shè)的一個(gè)組織),才可以改動(dòng)SNMP協(xié)議;廠商們也可以私下改動(dòng)SNMP協(xié)議,但這樣作的結(jié)果很可能得不償失,因?yàn)樗麄儽仨氄f服其他廠商和用戶支持他們對SNMP協(xié)議的非標(biāo)準(zhǔn)改進(jìn),而這樣做卻有悖于他們的初衷。
第三,SNMP協(xié)議有很多詳細(xì)的文檔資料(例如RFC,以及其它的一些文章、說明書等),網(wǎng)絡(luò)業(yè)界對這個(gè)協(xié)議也有著較深入的理解,這些都是SNMP協(xié)議近一步發(fā)展和改進(jìn)的基礎(chǔ)。
最后,SNMP協(xié)議可用于控制各種設(shè)備。比如說電話系統(tǒng)、環(huán)境控制設(shè)備,以及其它可接入網(wǎng)絡(luò)且需要控制的設(shè)備等,這些非傳統(tǒng)裝備都可以使用SNMP協(xié)議。
SNMP MIB樹狀結(jié)構(gòu)
我們懂得SNMP實(shí)現(xiàn)方式為了提供遍歷管理信息庫的手段,SNMP MIB中采用了樹狀命名方法對每個(gè)SNMP管理對象實(shí)例命名。每個(gè)對象實(shí)例的名字都由對象類名字加上一個(gè)后綴構(gòu)成。SNMP對象類的名字是不會(huì)相互重復(fù)的,因而不同對象類的對象實(shí)例之間也少有重名的危險(xiǎn)。
SNMP應(yīng)用實(shí)體對Internet管理信息庫中的管理對象進(jìn)行操作。一個(gè)SNMP應(yīng)用實(shí)體可操作的管理SNMP對象子集稱為SNMP MIB授權(quán)范圍。SNMP應(yīng)用實(shí)體對授權(quán)范圍內(nèi)管理對象的訪問仍然還有進(jìn)一步的訪問控制限制,比如只讀、可讀寫等。
在共同體的定義中一般要規(guī)定該共同體授權(quán)的SNMP管理對象范圍,相應(yīng)地也就規(guī)定了哪些SNMP對象實(shí)例是該共同體的“管轄范圍”,據(jù)此,共同體的定義可以想象為一個(gè)多叉樹,以詞典序提供了遍歷所有SNMP管理對象實(shí)例的手段。有了這個(gè)手段,SNMP就可以使用get-next操作符,順序地從一個(gè)對象找到下一個(gè)對象。
SNMP中各種管理信息大多以表格形式存在,一個(gè)表格對應(yīng)一個(gè)SNMP對象類,每個(gè)元素對應(yīng)于該類的一個(gè)SNMP對象實(shí)例。那么,管理信息表SNMP對象中單個(gè)元素(對象實(shí)例)的操作可以用前面提到的get-next方法,也可以用后面將介紹的get/set等操作。下面主要介紹表格內(nèi)一行信息的整體操作。
(1)增加一行:通過SNMP只用一次set操作就可在一個(gè)表格中增加一行。操作中的每個(gè)變量都對應(yīng)于待增加行中的一個(gè)列元素,包括SNMP對象實(shí)例標(biāo)識(shí)符。如果一個(gè)表格中有8列,則set操作中必須給出8個(gè)操作數(shù),分別對應(yīng)8個(gè)列中的相應(yīng)元素。
(2)刪除一行:刪除一行也可以通過SNMP調(diào)用一次set操作完成,并且比增加一行還簡單。刪除一行只需要用set操作將該行中的任意一個(gè)元素(SNMP對象實(shí)例)設(shè)置成“非法”即可。
但該操作有一個(gè)例外:地址翻譯組SNMP對象中有一個(gè)特殊的表(地址變換表),該表中未定義一個(gè)元素的“非法”條件。因此,SNMP中采用的辦法是將該表中的地址設(shè)置成空串,而空字符串將被視為非法元素。
至于刪除一行時(shí),表中的一行元素是否真的在表中消失,則與每個(gè)設(shè)備(管理代理)的具體實(shí)現(xiàn)有關(guān)。因此,網(wǎng)絡(luò)管理操作中,運(yùn)行管理進(jìn)程可能從管理代理中得到“非法”數(shù)據(jù),即已經(jīng)刪除的不再使用的元素的內(nèi)容,因此管理進(jìn)程必須能通過各數(shù)據(jù)字段的內(nèi)容來判斷數(shù)據(jù)的合法性。
SNMP對象樹形表格結(jié)構(gòu)我們就講解到這里了。