SNMP協議詳解
上一篇文章講解了SNMP的基本架構,本篇文章將重點分析SNMP報文,並對不同版本(SNMPv1、v2c、v3)進行區別!
四、SNMP協議資料單元
在SNMP管理中,管理站(NMS)和代理(Agent)之間交換的管理資訊構成了SNMP報文,報文的基本格式如下圖1:
圖 1
SNMP主要有SNMPv1、SNMPV2c、SNMPv3幾種最常用的版本。
1、SNMPv1
SNMPv1是SNMP協議的最初版本,提供最小限度的網路管理功能。SNMPv1的SMI和MIB都比較簡單,且存在較多安全缺陷。
SNMPv1採用團體名認證。團體名的作用類似於密碼,用來限制NMS對Agent的訪問。如果SNMP報文攜帶的團體名沒有得到NMS/Agent的認可,該報文將被丟棄。
報文格式如下圖2:
圖 2
從上圖可以看出,SNMP訊息主要由Version、Community、SNMP PDU幾部分構成。其中,報文中的主要欄位定義如下:
Version:SNMP版本
Community:團體名,用於Agent與NMS之間的認證。團體名有可讀和可寫兩種,如果是執行Get、GetNext操作,則採用可讀團體名進行認證;如果是執行Set操作,則採用可寫團體名進行認證。
Request ID:用於匹配請求和響應,SNMP給每個請求分配全域性唯一的ID。
Error status:用於表示在處理請求時出現的狀況,包括noError、tooBig、noSuchName、badValue、readOnly、genErr。
Error index:差錯索引。當出現異常情況時,提供變數繫結列表(Variable bindings)中導致異常的變數的資訊。
Variable bindings:變數繫結列表,由變數名和變數值對組成。
enterprise:Trap源(生成Trap資訊的裝置)的型別。
Agent addr:Trap源的地址。
Generic trap:通用Trap型別,包括coldStart、warmStart、linkDown、linkUp、authenticationFailure、egpNeighborLoss、enterpriseSpecific。
Specific trap:企業私有Trap資訊。
Time stamp:上次重新初始化網路實體和產生Trap之間所持續的時間,即sysUpTime物件的取值。
用Wireshark抓取的SNMPv1版本的報文格式如下圖3:
圖 3
192.168.2.1是Agent的ip地址,192.168.2.110是NMS的ip地址
從上圖可以看到,SNMPv1版本的安全性不太好,可以抓取到community也即是團體名;tarp操作只有傳送報文沒有響應報文。
2、SNMPv2c
SNMPv2c也採用團體名認證。在相容SNMPv1的同時又擴充了SNMPv1的功能:它提供了更多的操作型別(GetBulk和inform操作);支援更多的資料型別(Counter32等);提供了更豐富的錯誤程式碼,能夠更細緻地區分錯誤。
在v1版本中只有資料型別的錯誤碼,而v2c版本中增加了不少,如下圖4:
圖 4
SNMPv2報文格式如下圖5:
圖 5
比較SNMPv1而言,SNMPv2c新增了GetBulk操作報文和inform操作報文。GetBulk操作所對應的基本操作型別是GetNext操作,通過對Non repeaters和Max repetitions引數的設定,高效率地從Agent獲取大量管理物件資料。而inform操作也就是相當於Trap的升級操作,但是二者又有什麼不同之處呢?Trap報文發出去之後不會收到響應報文,而inform報文在發出報文之後能收到響應報文。
抓取的報文格式如下:
(1)GetBulk操作,批量獲取資料,如下圖6:
圖 6
(2)inform操作,可以看到它與trap操作的區別,有個響應報文,如下圖7:
圖 7
SNMPv2c修改了Trap報文格式。SNMPv2c Trap PUD採用SNMPv1 Get/GetNext/Set PDU的格式,並將sysUpTime和snmpTrapOID作為Variable bindings中的變數來構造報文(可參照上圖3的get-next的response和下圖9SNMPv2的trap進行對比),報文格式如下:
(1)SNMPv1版本的tarp報文格式如下圖8:
圖 8
(2)SNMPv2的trap報文格式如下圖9:
圖 9
3、SNMPv3
SNMPv3主要在安全性方面進行了增強,它採用了USM和VACM技術。USM提供了認證和加密功能,VACM確定使用者是否允許訪問特定的MIB物件以及訪問方式。
USM(基於使用者的安全模型)
USM引入了使用者名稱和組的概念,可以設定認證和加密功能。認證用於驗證報文傳送方的合法性,避免非法使用者的訪問;加密則是對NMS和Agent之間傳輸的報文進行加密,以免被竊聽。通過有無認證和有無加密等功能組合,可以為NMS和Agent之間的通訊提供更高的安全性。
VACM(基於檢視的訪問控制模型)
VACM技術定義了組、安全等級、上下文、MIB檢視、訪問策略五個元素,這些元素同時決定使用者是否具有訪問的許可權,只有具有了訪問許可權的使用者才能管理操作物件。在同一個SNMP實體上可以定義不同的組,組與MIB檢視繫結,組內又可以定義多個使用者。當使用某個使用者名稱進行訪問的時候,只能訪問對應的MIB檢視定義的物件。
由於v3版本的增加了不少內容,所以決定在下一篇文章中再詳細的講解SNMPv3。
相關文章
- SNMP協議協議
- SNMP 協議協議
- Gossip 協議詳解Go協議
- VxLAN協議詳解協議
- WebSocket 協議詳解Web協議
- UDP協議詳解UDP協議
- TCP協議詳解TCP協議
- raft協議詳解Raft協議
- FTP協議詳解FTP協議
- USB協議詳解協議
- QUIC協議詳解UI協議
- SMB協議詳解協議
- Redis協議詳解Redis協議
- HTTP 協議詳解HTTP協議
- HTTP協議詳解HTTP協議
- Kraft協議詳解Raft協議
- SPI協議詳解協議
- http協議/cookie詳解/session詳解HTTP協議CookieSession
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- http協議學習系列(協議詳解篇)HTTP協議
- HTTPS協議詳解HTTP協議
- HTTP 3協議詳解HTTP協議
- TCP/IP協議詳解TCP協議
- SSL/TLS協議詳解TLS協議
- 組播協議詳解協議
- 簡單網路管理協議SNMP(史上最全)協議
- tcp/ip協議和opc協議對比詳解TCP協議
- Swift Protocol 詳解 - 協議&面向協議程式設計SwiftProtocol協議程式設計
- TCP傳輸協議詳解TCP協議
- IMAP協議之BODYSTRUCTURE詳解協議Struct
- OSPF 路由協議詳解(一)路由協議
- Http協議報文詳解HTTP協議
- http協議報頭詳解HTTP協議
- HTTP協議頭詳解 (2)HTTP協議
- RabbitMQ與AMQP協議詳解MQ協議