SNMP(Simple Network Management Protocol,簡單網絡管理協議)是網絡中管理設備和被管理設備之間的通信規則,它定義了一係列消息、方法和語法,用於實現管理設備對被管理設備的訪問和管理。SNMP具有以下優勢:
l 自動化網絡管理。網絡管理員可以利用SNMP平台在網絡上的節點檢索信息、修改信息、發現故障、完成故障診斷、進行容量規劃和生成報告。
l 屏蔽不同設備的物理差異,實現對不同廠商產品的自動化管理。SNMP隻提供最基本的功能集,使得管理任務分別與被管設備的物理特性和下層的聯網技術相對獨立,從而實現對不同廠商設備的管理,特別適合在小型、快速和低成本的環境中使用。
SNMP網絡元素分為NMS和Agent兩種。
l NMS(Network Management Station,網絡管理站)是運行SNMP客戶端程序的工作站,能夠提供非常友好的人機交互界麵,方便網絡管理員完成絕大多數的網絡管理工作。
l Agent是駐留在設備上的一個進程,負責接收、處理來自NMS的請求報文。在一些緊急情況下,如接口狀態發生改變等,Agent也會主動通知NMS。
NMS是SNMP網絡的管理者,Agent是SNMP網絡的被管理者。NMS和Agent之間通過SNMP協議來交互管理信息。
SNMP提供四種基本操作:
l Get操作:NMS使用該操作查詢Agent的一個或多個對象的值。
l Set操作:NMS使用該操作重新設置Agent數據庫(MIB,Management Information Base)中的一個或多個對象的值。
l Trap操作:Agent使用該操作向NMS發送報警信息。
l Inform操作:NMS使用該操作向其他NMS發送報警信息。
目前,設備的SNMP Agent支持SNMP v3版本,兼容SNMP v1版本和SNMP v2c版本。
l SNMP v1采用團體名(Community Name)認證。團體名用來定義SNMP NMS和SNMP Agent的關係。如果SNMP報文攜帶的團體名沒有得到設備的認可,該報文將被丟棄。團體名起到了類似於密碼的作用,用來限製SNMP NMS對SNMP Agent的訪問。
l SNMP v2c也采用團體名認證。它在兼容SNMP v1的同時又擴充了SNMP v1的功能:它提供了更多的操作類型(GetBulk和InformRequest);它支持更多的數據類型(Counter64等);它提供了更豐富的錯誤代碼,能夠更細致地區分錯誤。
l SNMP v3提供了基於用戶的安全模型(USM,User-Based Security Model)的認證機製。用戶可以設置認證和加密功能,認證用於驗證報文發送方的合法性,避免非法用戶的訪問;加密則是對NMS和Agent之間的傳輸報文進行加密,以免被竊聽。通過有無認證和有無加密等功能組合,可以為SNMP NMS和SNMP Agent之間的通信提供更高的安全性。
NMS和Agent的SNMP版本匹配,是它們之間成功互訪的前提條件。Agent可以同時配置多個版本,與不同的NMS交互采用不同的版本。
任何一個被管理的資源都表示成一個對象,稱為被管理的對象。MIB(Management Information Base,管理信息庫)是被管理對象的集合。它定義了對象之間的層次關係以及對象的一係列屬性,比如對象的名字、訪問權限和數據類型等。每個Agent都有自己的MIB。NMS根據權限可以對MIB中的對象進行讀/寫操作。NMS、Agent和MIB之間的關係如圖 1所示。
圖 1 NMS、Agent和MIB關係圖
MIB是以樹狀結構進行存儲的。樹的節點表示被管理對象,它可以用從根開始的一條路徑唯一地識別(OID)。如圖 2所示,被管理對象B可以用一串數字{1.2.1.1}唯一確定,這串數字是被管理對象的OID(Object Identifier,對象標識符)。
圖 2 MIB樹結構