07.07 SNMP的一些基本原理和具體的報文構造

1、SNMP的工作原理

基於TCP/IP互聯網的標準協議,傳輸層協議一般採用UDP,SNMP採用特殊的客戶機/服務器模式,即代理/管理站模型。對網絡的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負責回答SNMP管理工作站(主代理)關於MIB定義信息的各種查詢。如下圖1所示:

SNMP的一些基本原理和具體的報文構造

2、SNMP的常用操作

SNMP規定了5種協議數據單元PDU(也就是SNMP報文),用來在管理進程和代理之間的交換。

get-request操作:從代理進程處提取一個或多個參數值。

get-next-request操作:從代理進程處提取緊跟當前參數值的下一個參數值。

set-request操作:設置代理進程的一個或多個參數值。

get-response操作:返回的一個或多個參數值。這個操作是由代理進程發出的,它是前面三種操作的響應操作。

trap操作:代理進程主動發出的報文,通知管理進程有某些事情發生。

前面的3種操作是由管理進程向代理進程發出的,後面的2個操作是代理進程發給管理進程的,為了簡化起見,前面3個操作今後叫做get、get-next和set操作

3、SNMP的報文格式

SNMP的一些基本原理和具體的報文構造

4、SNMP常見數據類型

INTEGER:一個整數

OCTER STRING: 0或多個8bit字節,每個字節在0~255之間取值

DisplayString:0或多個8bit字節,每個字節必須是ASCII碼。在MIB-II中,所有該類型變量不能超過255個字符(0個字符可以)

NULL:代表相關的變量沒有值

IpAddress:4字節長的OCTER STRING,以網絡字節序表示IP地址

PhyAddress:6字節長的OCTER STRING,代表物理地址

Counter:非負整數,可以從0遞增到232-1()。達到最大值後歸0

TimeTicks:時間計數器,以0.01秒為單位遞增,不同的變量可以有不同的遞增幅度。所以在定義這種類型的變量時需要制定遞增幅度

SEQUENCE:與C語言中的結構體類似

SEQUENCE OF:一個向量

5.讀取設備信息的簡單報文交互過程

SNMP的一些基本原理和具體的報文構造

6.SNMP報文處理過程

Agent通過UDP端口161接收來自NMS的Request報文。

Agent接收到報文後,其基本處理過程如下:

1. 解碼:依據ASN.1基本編碼規則,生成用內部數據結構表示的報文。如果此過程出現錯誤導致解碼失敗,則丟棄該報文,不做進一步處理。

2. 比較SNMP版本號:將報文中的版本號取出,與本Agent支持的SNMP版本號比較。如果不一致,則丟棄該報文,不做進一步處理。

3. 團體名驗證:將報文中的團體名取出,此團體名由發出請求的網管站填寫。如與Agent所在設備認可的團體名不符,則丟棄該報文,不做進一步處理,同時產生一個Trap報文。SNMPv1提供較弱的安全措施,在版本3中這一功能被加強。

4. 提取PDU:從通過驗證的ASN.1對象中提出協議數據單元PDU。如果失敗,丟棄報文,不做進一步處理。

5. 處理PDU:根據不同的PDU,SNMP協議實體進行不同的處理。得到管理變量在MIB樹中對應的節點,從相應的模塊中得到管理變量的值,形成Response報文,編碼發回網管站。

6. 網管站得到響應報文後,經過同樣的處理,最終顯示結果。


分享到:


相關文章: