從結(jié)構(gòu)分析SNMP協(xié)議數(shù)據(jù)單元域
對(duì)于SNMP協(xié)議來說,在它的報(bào)文結(jié)構(gòu)中,SNMP協(xié)議數(shù)據(jù)單元域是我們本文重點(diǎn)為大家強(qiáng)調(diào)的內(nèi)容。首先還是讓我們具體來了解一下它的報(bào)文結(jié)構(gòu)。一條SNMP報(bào)文由三個(gè)部分組成:版本域(version field),分區(qū)域(community field)和SNMP協(xié)議數(shù)據(jù)單元域(SNMP protocol data unit field),數(shù)據(jù)包的長度不是固定的。
SNMP協(xié)議也定義了執(zhí)行以上三個(gè)SNMP命令時(shí)的SNMP報(bào)文流, 但它沒有定義其它的設(shè)備管理代理SNMP命令,可應(yīng)用于MIB數(shù)據(jù)對(duì)象的操作只有Set和Get命令,這兩個(gè)命令的目標(biāo)是數(shù)據(jù)對(duì)象的值。
比如說,SNMP協(xié)議中沒有定義reboot(重啟)SNMP命令;然而,管理代理軟件把MIB數(shù)據(jù)對(duì)象和設(shè)備的內(nèi)部SNMP命令聯(lián)系起來,這樣就可以實(shí)現(xiàn)某些特殊的命令操作。如果現(xiàn)在想要重啟某個(gè)設(shè)備,管理系統(tǒng)就把某個(gè)與重啟有關(guān)的MIB數(shù)據(jù)對(duì)象的值設(shè)為1(我們的假定)。
這樣就會(huì)觸發(fā)管理代理執(zhí)行重新啟動(dòng)設(shè)備的SNMP命令,同時(shí)還把這個(gè)MIB數(shù)據(jù)對(duì)象重新設(shè)置為原來的狀態(tài)。
版本域:這個(gè)域用于說明現(xiàn)在使用的是哪個(gè)版本的SNMP協(xié)議。目前,version 1是使用最廣泛的SNMP協(xié)議。
分區(qū)域:分區(qū)(community)是基本的安全機(jī)制,用于實(shí)現(xiàn)SNMP網(wǎng)絡(luò)管理員訪問SNMP管理代理時(shí)的身份驗(yàn)證。
分區(qū)名(Community name)是管理代理的口令,管理員被允許訪問數(shù)據(jù)對(duì)象的前提就是網(wǎng)絡(luò)管理員知道網(wǎng)絡(luò)代理的口令。如果把配置管理代理成可以執(zhí)行Trap命令,當(dāng)網(wǎng)絡(luò)管理員用一個(gè)錯(cuò)誤的分區(qū)名查詢管理代理時(shí),系統(tǒng)就發(fā)送一個(gè)autenticationFailure trap SNMP報(bào)文。
SNMP協(xié)議數(shù)據(jù)單元域:SNMPv1的PDU有五種類型,有些是SNMP報(bào)文請(qǐng)求(Request),有些則是響應(yīng)(Response)。它們包括:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 。SNMPv2又增加了兩種PDU:GetBulkRequest和InformRequest 。
SNMP管理員使用GetRequest從擁有SNMP代理的網(wǎng)絡(luò)設(shè)備中檢索信息,SNMP代理以GetResponse消息響應(yīng)GetRequest??梢越粨Q的信息很多,如系統(tǒng)的名字,系統(tǒng)自啟動(dòng)后正常運(yùn)行的時(shí)間,系統(tǒng)中的網(wǎng)絡(luò)接口數(shù)等等。GetRequest和GetNextRequest結(jié)合起來使用可以獲得一個(gè)表中的對(duì)象。
GetRequest取回一個(gè)特定對(duì)象;而使用GetNextRequest則是請(qǐng)求表中的下一個(gè)對(duì)象。使用SetRequest可以對(duì)一個(gè)設(shè)備中的參數(shù)進(jìn)行遠(yuǎn)程配置。Set-Request可以設(shè)置設(shè)備的名字,關(guān)掉一個(gè)端口或清除一個(gè)地址解析表中的項(xiàng)。Trap即SNMP陷阱,是SNMP代理發(fā)送給管理站的非請(qǐng)求消息。SNMP協(xié)議數(shù)據(jù)單元域和報(bào)文的知識(shí),我們就講解到這里。