日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

輕松學習SNMP協議之入門篇( 二 )


3.SNMP的運行過程
駐留在被管設備上的AGENT從UDP端口161接受來自網管站的串行化報文 , 經解碼、團體名驗證、分析得到治理變量在MIB樹中對應的節(jié)點 , 從相應的模塊中得到治理變量的值 , 再形成響應報文 , 編碼發(fā)送回網管站 。網管站得到響應報文后 , 再經同樣的處理 , 最終顯示結果 。
下面根據RFC1157具體介紹Agent接受到報文后采取的動作:
首先解碼生成用內部數據結構表示的報文 , 解碼依據ASN.1的基本編碼規(guī)則 , 假如在此過程中出現錯誤導致解碼失敗則丟棄該報文 , 不做進一步處理 。
第二步:將報文中的版本號取出 , 假如與本Agent支持的SNMP版本不一致 , 則丟棄該報文 , 不做進一步處理 。當前北研的數據通信產品只支持SNMP版本1 。
第三步:將報文中的團體名取出 , 此團體名由發(fā)出請求的網管站填寫 。如與本設備認可的團體名不符 , 則丟棄該報文 , 不做進一步處理 , 同時產生一個陷阱報文 。SNMPv1只提供了較弱的安全措施 , 在版本3中這一功能將大大加強 。
第四步:從通過驗證的ASN.1對象中提出協議數據單元PDU , 假如失敗 , 丟棄報文 , 不做進一不處理 。否則處理PDU , 結果將產生一個報文 , 該報文的發(fā)送目的地址應同收到報文的源地址一致 。
根據不同的PDU , SNMP協議實體將做不同的處理:
1.6. GetRequest PDU:
第一種情況:假如PDU中的變量名在本地維護的MIB樹中不存在,則接受到這個PDU的協議實體將向發(fā)出者發(fā)送一個GetResponse報文 , 其中的PDU與源PDU只有一點不同:將ERROR-STATUS置為noSuchName,并在ERROR-INDEX中指出產生該變量在變量LIST中的位置 。
第二種情況:假如本地協議實體將產生的響應報文的長度大于本地長度限制 , 將向該PDU的發(fā)出者發(fā)送一個GetResponse報文 , 該PDU除了ERROR-STATUS置為tooBig , ERROR-INDEX置為0以外 , 與源PDU相同 。
第三種情況:假如本地協議實體因為其他原因不能產生正確的響應報文 , 將向該PDU的發(fā)出者發(fā)送一個GetResponse報文 , 該PDU除了ERROR-STATUS置為genErr , ERROR-INDEX置為出錯變量在變量LIST中的位置 , 其余與源PDU相同 。
第四中情況:假如上面的情況都沒有發(fā)生 , 則本地協議實體向該PDU的發(fā)出者發(fā)送一個GetResponse報文 , 該PDU中將包含變量名和相應值的對偶表 , ERROR-STATUS為noError,ERROR-INDEX為0 , request-id域的值應與收到PDU的request-id相同 。
1.7. GetNextRequest PDU
GetNextRequest PDU的最重要的功能是表的遍歷 , 這種操作受到了前面所說的治理變量的表示方法的支持 , 從而可以訪問一組相關的變量 , 就好象他們在一個表內 。
下面通過一個例子解釋表遍歷的過程:
被管設備維護如下路由表:
Destination NextHop Metric
10.0.0.9989.1.1.425
9.1.2.3 99.0.0.33
10.0.0.5189.1.1.425
假設網管站欲取得這張路由表的信息 , 該表的索引是目的網絡地址 。
網管站向被管設備發(fā)送一個GetNextRequest PDU,其中的受管對象的標識如下
GetNextRequest(ipRouteDest, ipRouteNextHop, ipRouteMetric1)
SNMP agent響應如下GetResponse PDU:
GetResponse (( ipRouteDest.9.1.2.3 = "9.1.2.3" ),
( ipRouteNextHop.9.1.2.3 = "99.0.0.3" ),( ipRouteMetric1.9.1.2.3 = 3 ))
網管站繼續(xù):
GetNextRequest ( ipRouteDest.9.1.2.3,ipRouteNextHop.9.1.2.3,ipRouteMetric1.9.1.2.3 )
agent響應:
GetResponse((ipRouteDest.10.0.0.51="10.0.0.51"),(ipRouteNextHop.10.0.0.51="89.1.1.42"),( ipRouteMetric1.10.0.0.51 = 5 ))
值得注重的是agent必須能夠確定下一個治理變量名 , 以保證所有變量能被取到且只被取到一次 。
網管站繼續(xù):

推薦閱讀