資源描述:
《SNMP PDU報(bào)文格式解析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、SNMP五種協(xié)議數(shù)據(jù)單元SNMP規(guī)定了5種協(xié)議數(shù)據(jù)單元PDU(也就是SNMP報(bào)文),用來(lái)在管理進(jìn)程和代理之間的交換。?lget-request操作:從代理進(jìn)程處提取一個(gè)或多個(gè)參數(shù)值(網(wǎng)管系統(tǒng)發(fā)送)?lget-next-request操作:從代理進(jìn)程處提取緊跟當(dāng)前參數(shù)值的下一個(gè)參數(shù)值(網(wǎng)管系統(tǒng)發(fā)送)?lset-request操作:設(shè)置代理進(jìn)程的一個(gè)或多個(gè)參數(shù)值(網(wǎng)管系統(tǒng)發(fā)送)?lget-response操作:返回的一個(gè)或多個(gè)參數(shù)值。這個(gè)操作是由代理進(jìn)程發(fā)出的,它是前面三種操作的響應(yīng)操作(代理發(fā)送)?ltrap操作:代理進(jìn)程主動(dòng)發(fā)出的報(bào)文,通知管理
2、進(jìn)程有某些事情發(fā)生(代理發(fā)送)前面的3種操作是由管理進(jìn)程向代理進(jìn)程發(fā)出的,后面的2個(gè)操作是代理進(jìn)程發(fā)給管理進(jìn)程的,為了簡(jiǎn)化起見(jiàn),前面3個(gè)操作叫做get、get-next和set操作。下圖描述了SNMP的這5種報(bào)文操作。請(qǐng)注意,在代理進(jìn)程端是用熟知端口161倆接收get或set報(bào)文,而在管理進(jìn)程端是用熟知端口162來(lái)接收trap報(bào)文。SNMP協(xié)議數(shù)據(jù)單元格式解析一個(gè)SNMP報(bào)文共有三個(gè)部分組成,即公共SNMP首部、get/set首部或trap首部、變量綁定。下圖是封裝成UDP數(shù)據(jù)報(bào)文的5種操作的SNMP報(bào)文格式。公共SNMP首部版本寫(xiě)入版本字段的
3、是版本號(hào)減1,對(duì)于SNMP(即SNMPV1)則應(yīng)寫(xiě)入0。公共體共同體就是一個(gè)字符串,作為管理進(jìn)程和代理進(jìn)程之間的明文口令,常用的是6個(gè)字符“public”。PDU類(lèi)型根據(jù)PDU的類(lèi)型,填入0~4中的一個(gè)數(shù)字,其對(duì)應(yīng)關(guān)系下表所示意圖。PDU類(lèi)型PDU類(lèi)型名稱(chēng)0get-request1get-next-request2get-response3set-request4trapget/set首部請(qǐng)求標(biāo)識(shí)符(requestID)這是由管理進(jìn)程設(shè)置的一個(gè)整數(shù)值。代理進(jìn)程在發(fā)送get-response報(bào)文時(shí)也要返回此請(qǐng)求標(biāo)識(shí)符。管理進(jìn)程可同時(shí)向許多代理發(fā)出
4、get報(bào)文,這些報(bào)文都使用UDP傳送,先發(fā)送的有可能后到達(dá)。設(shè)置了請(qǐng)求標(biāo)識(shí)符可使管理進(jìn)程能夠識(shí)別返回的響應(yīng)報(bào)文對(duì)于哪一個(gè)請(qǐng)求報(bào)文。差錯(cuò)狀態(tài)(errorstatus)由代理進(jìn)程回答時(shí)填入0~5中的一個(gè)數(shù)字,見(jiàn)下表的描述。差錯(cuò)狀態(tài)描述差錯(cuò)狀態(tài)名字說(shuō)明0noError一切正常1tooBig代理無(wú)法將回答裝入到一個(gè)SNMP報(bào)文之中2noSuchName操作指明了一個(gè)不存在的變量3badValue一個(gè)set操作指明了一個(gè)無(wú)效值或無(wú)效語(yǔ)法4readOnly管理進(jìn)程試圖修改一個(gè)只讀變量5genErr某些其他的差錯(cuò)差錯(cuò)索引(errorindex)當(dāng)出現(xiàn)noSu
5、chName、badValue或readOnly的差錯(cuò)時(shí),由代理進(jìn)程在回答時(shí)設(shè)置的一個(gè)整數(shù),它指明有差錯(cuò)的變量在變量列表中的偏移。trap首部企業(yè)(enterprise)填入trap報(bào)文的網(wǎng)絡(luò)設(shè)備的對(duì)象標(biāo)識(shí)符。此對(duì)象標(biāo)識(shí)符肯定是在圖3的對(duì)象命名樹(shù)上的enterprise結(jié)點(diǎn){1.3.6.1.4.1}下面的一棵子樹(shù)上。trap類(lèi)型此字段正式的名稱(chēng)是generic-trap,共分為表4中的7種。trap類(lèi)型描述trap類(lèi)型名字說(shuō)明0coldStart代理進(jìn)行了初始化1warmStart代理進(jìn)行了重新初始化2linkDown一個(gè)接口從工作狀態(tài)變?yōu)楣收?/p>
6、狀態(tài)3linkUp一個(gè)接口從故障狀態(tài)變?yōu)楣ぷ鳡顟B(tài)4authenticationFailure從SNMP管理進(jìn)程接收到具有一個(gè)無(wú)效共同體的報(bào)文5egpNeighborLoss一個(gè)EGP相鄰路由器變?yōu)楣收蠣顟B(tài)6enterpriseSpecific代理自定義的事件,需要用后面的“特定代碼”來(lái)指明當(dāng)使用上述類(lèi)型2、3、5時(shí),在報(bào)文后面變量部分的第一個(gè)變量應(yīng)標(biāo)識(shí)響應(yīng)的接口。特定代碼(specific-code)指明代理自定義的時(shí)間(若trap類(lèi)型為6),否則為0。時(shí)間戳(timestamp)指明自代理進(jìn)程初始化到trap報(bào)告的事件發(fā)生所經(jīng)歷的時(shí)間,單位為
7、10ms。例如時(shí)間戳為1908表明在代理初始化后1908ms發(fā)生了該時(shí)間。變量綁定(variable-bindings)指明一個(gè)或多個(gè)變量的名和對(duì)應(yīng)的值。在get或get-next報(bào)文中,變量的值應(yīng)忽略。