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