(沈陽理工大學(xué) 遼寧 沈陽 110159)
簡單網(wǎng)絡(luò)管理協(xié)議SNMP(Simple Network Management Protocol)是由互聯(lián)網(wǎng)工程任務(wù)組為進行網(wǎng)絡(luò)管理制定的一組協(xié)議。具有簡單容易實現(xiàn)等優(yōu)點。目前它以其自身的優(yōu)越性已經(jīng)成為網(wǎng)絡(luò)管理的協(xié)議標(biāo)準(zhǔn)。SNMP協(xié)議主要由管理站和代理組成,其中代理的實現(xiàn)相比管理站較為復(fù)雜。通過使用SNMP協(xié)議,管理站可以使用遠程的方式來管理所有支持SNMP的網(wǎng)絡(luò)設(shè)施,例如監(jiān)聽網(wǎng)絡(luò)的變化、修改交換機和路由器的配置、接收網(wǎng)絡(luò)發(fā)出的警告等一系列功能,由于其自身的眾多優(yōu)點,該協(xié)議取得了很大的發(fā)展。
SNMP的代理使用的對象標(biāo)識符(OID)來對被管理對象進行唯一標(biāo)識。一個OID是一個key-value型數(shù)據(jù),SNMP就是通過操作OID來操作網(wǎng)絡(luò)管理的數(shù)據(jù)。SNMP的OID是可以進行讀寫操作的。雖然不經(jīng)常發(fā)生把信息寫入SNMP設(shè)備的情況,但是它可以管理應(yīng)用程序來控制設(shè)備,例如可以用于交換機的可管理圖形用戶界面。SNMP通過一個獨特的認(rèn)證來允許管理員通過公共名來對OID進行讀寫操作。大部分的網(wǎng)絡(luò)設(shè)施使用“public”來作為自己的公共名。SNMP協(xié)議使用UDP協(xié)議來進行通信,大部分情況使用端口號使用161來進行通信,少數(shù)情況下也使用161作為通信端口。
網(wǎng)絡(luò)管理信息庫,簡稱MIB庫(Management Information Base)是進行網(wǎng)絡(luò)管理的重要組成之一。為了將不同產(chǎn)品、不同平臺的網(wǎng)絡(luò)設(shè)施進行更加有效的管理,MIB庫是非常使用的方式。MIB庫是網(wǎng)絡(luò)管理數(shù)據(jù)的標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)包括很多項目,例如定義了了網(wǎng)絡(luò)代理設(shè)備需要的數(shù)據(jù)信息,數(shù)據(jù)類型,和允許在每個數(shù)據(jù)信息中的很多操作。通過對這些數(shù)據(jù)信息進行讀取,寫入,保存和訪問,這樣就會獲得網(wǎng)關(guān)中包含的所有信息。之后通過對這些得到的信息來進行整理和分析就可以實現(xiàn)基本的網(wǎng)絡(luò)管理功能。正因為如此,進行MIB庫的訪問成為實現(xiàn)網(wǎng)絡(luò)管理的重中之重。
整個MIB庫擴展實現(xiàn)是基于優(yōu)麒麟的Linux平臺。
(1)安裝snmp客戶端以及服務(wù)器端和mib庫依賴,修改snmpd.conf文件配置主代理屬性。
(2)擴展一個子代理,讓snmpd以主代理的模式運行,對于snmpd我們只要讓它啟動就可以,不需要任何的更改和配置,把子代理編譯生成的程序運行起來就可以擴展自定義的MIB庫。
/*
——私有MIB庫配置格式:
——開始
TEST-MIB DEFINITIONS::= BEGIN
——引入部分
IMPORTS
enterprises
FROM RFC1155-SMI
Integer32,OBJECT-TYPE
FROM SNMPv2-SMI
DisplayString
FROM SNMPv2-TC
TEXTUAL-CONVENTION
FROM SNMPv2-TC;——引用結(jié)束,用分號
TESTMIB OBJECT IDENTIFIER::= {enterprises 17322} ——OID
Test1 OBJECT IDENTIFIER::= {TESTMIB 1}
Test2 OBJECT IDENTIFIER::= {TESTMIB 2}
Test3 OBJECT IDENTIFIER::= {TESTMIB 3}
Test1 OBJECT-TYPE ——對象名稱
SYNTAX DisplayString ——類型
MAX-ACCESS read-only ——訪問方式
STATUS current ——狀態(tài)
DESCRIPTION “this is the testMib1” ——備注
::= {TESTMIB 1} ——父節(jié)點
Test2 OBJECT-TYPE ——對象名稱
SYNTAX DisplayString ——類型
MAX-ACCESS read-only ——訪問方式
STATUS current ——狀態(tài)
DESCRIPTION “this is the testMib2” ——備注
::= {TESTMIB 2} ——父節(jié)點
Test3 OBJECT-TYPE ——對象名稱
SYNTAX DisplayString ——類型
MAX-ACCESS read-only ——訪問方式
STATUS current ——狀態(tài)
DESCRIPTION “this is the testMib3” ——備注
::={TESTMIB 3} ——父節(jié)點
——結(jié)束定義
END
*/
(3)修改snmp.conf文件配置環(huán)境變量,然后測試是否生成了樹和葉子節(jié)點,將私有mib庫編譯成C語言的頭文件和源文件,配置源文件的語法結(jié)構(gòu)并自定義其中的內(nèi)容,將其編譯為subagent程序
(4)最后使用snmpget命令來測試節(jié)點的值。
經(jīng)過測試,運行后會成功出現(xiàn)數(shù)據(jù)樹形結(jié)構(gòu),SNMP本身具有很好的擴展性能,采用本文中的MIB庫擴展方法可以更好的提高網(wǎng)絡(luò)管理的效率。