1. 程式人生 > >網絡協議之SNMP(一)

網絡協議之SNMP(一)

SNMP

之前剛到公司的時候學習了一些基礎的網絡協議。最近測試存儲平臺產品的時候,又遇到一個特性就是存儲平臺這邊與第三方網管平臺的SNMP連接功能,存儲集群收集告警信息,一方面可以通過集群這邊自己的郵件告警到對應的管理員郵箱,另外一個方面就是通過SNMP協議來trap告警信息到網管管理平臺或者相應網管管理平臺的get請求(這裏的網管平臺有h3c的imc,cas和之前介紹的splunk工具)。所以感覺得系統的再學習一遍SNMP協議了。

1、協議簡介
網絡設備的增加,管理員需要一個好的管理辦法。這樣就應運而生了SNMP(simple network management protocol)。
SNMP協議架構裏面包含3個部分:NMS,Agent,MIB

NMS:NMS是網絡中的管理者,是一個利用SNMP協議對網絡設備進行管理和監視的系統。NMS既可以指一臺專門用來進行網絡管理的服務器,也可以指某個設備中執行管理功能的一個應用程序。NMS可以向Agent發出請求,查詢或修改一個或多個具體的參數值。同時,NMS可以接收Agent主動發送的Trap信息,以獲知被管理設備當前的狀態。
Agent:Agent是網絡設備中的一個應用模塊,用於維護被管理設備的信息數據並響應NMS的請求,把管理數據匯報給發送請求的NMS。Agent接收到NMS的請求信息後,完成查詢或修改操作,並把操作結果發送給NMS,完成響應。同時,當設備發生故障或者其他事件的時候,Agent會主動發送Trap信息給NMS,通知設備當前的狀態變化。
MIB(Management Infomation Base):任何一個被管理的資源都表示成一個對象,稱為被管理的對象。MIB是被管理對象的集合。它定義了被管理對象的一系列屬性:對象的名稱、對象的訪問權限和對象的數據類型等。每個Agent都有自己的MIB。MIB也可以看作是NMS和Agent之間的一個接口,通過這個接口,NMS可以對Agent中的每一個被管理對象進行讀/寫操作,從而達到管理和監控設備的目的。談到MIB就還要講講oid,MIB是以樹狀結構進行存儲的。樹的節點表示被管理對象,它可以用從根開始的一條路徑唯一地識別,這條路徑就稱為OID。

2、版本簡介
SNMP常見的就3個版本v1,v2c,v3

版本 簡介
SNMPv1 SNMPv1是SNMP協議的最初版本,提供最小限度的網絡管理功能。SNMPv1的SMI和MIB都比較簡單,且存在較多安全缺陷。SNMPv1采用團體名認證。團體名的作用類似於密碼,用來限制NMS對Agent的訪問。如果SNMP報文攜帶的團體名沒有得到NMS/Agent的認可,該報文將被丟棄。
SNMPv2c SNMPv2c也采用團體名認證。在兼容SNMPv1的同時又擴充了SNMPv1的功能:它提供了更多的操作類型(GetBulk操作等);支持更多的數據類型(Counter32等);提供了更豐富的錯誤代碼,能夠更細致地區分錯誤。
SNMPv3 SNMPv3主要在安全性方面進行了增強,它采用了USM和VACM技術。USM提供了認證和加密功能,VACM確定用戶是否允許訪問特定的MIB對象以及訪問方式。

3、其他
SNMP協議一般是依靠UDP傳輸,可靠性一般。
支持以下幾種操作:
Get操作:NMS使用該操作從Agent獲取一個或多個參數值。
GetNext操作:NMS使用該操作從Agent獲取一個或多個參數的下一個參數值。
Set操作:NMS使用該操作設置Agent一個或多個參數值。
Response操作:Agent返回一個或多個參數值。該操作是前面三種操作的響應。
Trap操作:Agent主動發出的操作,通知NMS有某些事情發生。
inform操作:可以看作是需要NMS確認的trap信息
因為網絡環境中各個廠商的設備都有,所以要有統一的mib庫,這樣才能正確對接,mib是是一種資源是需要申請的,去IANA,主要是申請確認SMI Network Management Private Enterprise Codes,不同的企業有不同的碼。可以去如下網址查看分配情況。
https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers
技術分享圖片

3、最新應用
SNMPv3也是存在很久了,在那之後,有RMON和Event mib這兩個依托於SNMP的新網絡協議技術,有興趣的童鞋可以了解一下。
我的了解就是RMON使用後,我們可以監控管理設備的一些參數狀態值,如果超過閾值則會產生告警;而Event mib則是在RMON的基礎上如果觸發了有些閾值,那麽可以執行我們預配置的一些操作,而不是單單產生告警。

網絡協議之SNMP(一)