【資料圖】

隨著網絡技術的飛速發展,在網絡不斷普及的同時也給網絡管理帶來了一些問題:

網絡設備數量成幾何級數增加,使得網絡管理員對設備的管理變得越來越困難。網絡設備種類多種多樣,不同設備廠商提供的管理接口各不相同,這使得網絡管理變得愈發復雜。

在這種背景下,SNMP應運而生。通過“利用網絡管理網絡”的方式,SNMP實現了對網絡設備的高效和批量的管理;同時,SNMP協議也屏蔽了不同產品之間的差異,實現了不同種類和廠商的網絡設備之間的統一管理。

SNMP簡介

SNMP(Simple Network Management Protocol) 簡單網絡管理協議,從字面意思可以看出它是用于網絡管理的協議。不同種類不同型號的設備(如交換機、路由器、服務器、打印機等)只要遵循這個SNMP協議,那么管理員就可以通過一些網絡管理系統NMS(Network Management System)來對設備進行管控了。默認SNMP是通過UDP161和162端口進行通信的。目前SNMP共有v1、v2、v3三個版本,其中SNMPv1,v2采用的是明文進行傳送的,SNMPv3是通過加密進行傳送的。如果對安全要求比較高就選用SNMPv3版本。

SNMP組成

SNMP系統是由網絡管理系統NMS、SNMP Agent、被管對象Management object和管理信息庫MIB(Management Information Base)四部分組成。NMS作為整個網絡的網管中心,對設備進行管理。每個被管理設備中都包含駐留在設備上的SNMP Agent進程、MIB和多個被管對象。NMS通過與運行在被管理設備上的SNMP Agent交互,由SNMP Agent通過對設備端的MIB進行操作,完成NMS的指令。

NMS:網絡中的管理者,是一個采用SNMP協議對網絡設備進行管理監視的系統,運行在NMS服務器上。NMS可以向設備上的SNMP Agent發出請求,查詢或修改一個或多個具體的參數值。NMS也可以接收設備上的SNMP Agent主動發送的SNMP Traps,以獲知被管理設備當前的一些狀態信息。SNMP Agent:被管理設備中的一個代理進程,用于維護被管理設備的信息數據并響應來自NMS的請求,把管理數據匯報給發送請求的NMS。SNMP Agent接收到NMS的請求信息后,通過MIB表完成相應指令后,并把操作結果響應給NMS。當設備發生故障或者其它事件時,設備會通過SNMP Agent主動發送SNMP Traps給NMS,向NMS報告設備當前的狀態變化。Managed Object:被管理對象。每一個設備可能包含多個被管理對象,被管理對象可以是設備中的某個硬件如cpu、內存等,也可以是在硬件、軟件如路由選擇協議上配置的參數集合。MIB:一個數據庫,指明了被管理設備所維護的變量。MIB在數據庫中定義了被管理設備的一系列屬性,如對象的名稱、對象的狀態、對象的訪問權限和對象的數據類型等。MIB也可以看作是NMS和SNMP Agent之間的一個接口,通過這個接口,NMS對被管理設備所維護的變量進行查詢設置操作。

MIB是以樹狀結構進行存儲的。樹的節點表示被管理對象,它可以用從根開始的一條路徑唯一地識別,這條路徑就稱為OID對象標識符(Obiect Identifier),如system的OID為1.3.6.1.2.1.1,interfaces的OID為1.3.6.1.2.1.2。

SNMP操作

管理員需要向設備獲取數據,所以 SNMP 提供了“讀”操作;管理員需要向設備執行設置操作,所以 SNMP 提供了“寫”操作;設備需要在重要狀況改變的時候,向管理員通報事件的發生,所以 SNMP 提供了“Trap”操作。SNMP協議主要提供了三種用于控制MIB對象的基本操作命令。它們是:Get、Set 和 Trap。

1.Get:網絡管理系統NMS主動向SNMP Agent發送查詢請求。NMS讀取Agent處對象的值如內存使用率,接口流量等。SNMP Agent接收到查詢請求后,通過MIB表完成相應指令,并將結果反饋給NMS。

2.Set:NMS主動向SNMP Agent發送對設備進行Set設置操作的請求管理端??梢酝ㄟ^它來改動設備的配置或控制設備的運行狀態。比如可以設置設備的名稱,關掉一個端口等。SNMP Agent接收到Set請求后,通過MIB表完成相應指令,并將結果反饋給NMS。

3.Trap:SNMP Agent主動將設備產生的告警或事件上報給NMS,以便網絡管理員及時了解設備當前運行的狀態。如果發生意外情況,Agent會向NMS的UDP162端口發送一個消息,告知NMS指定的變量值發生了變化。Trap 消息可以用來通知NMS如線路的故障、硬件故障、認證失敗等消息。這樣管理員可相應的作出處理。

SNMP報文

SNMP報文主要由版本、團體名、SNMP PDU組成。

版本:版本標識符用于說明現在使用的是哪個版本的 SNMP。如果是SNMPv1報文則對應字段值為0,SNMPv2c則為1。團體名:用于在SNMP Agent與NMS之間完成認證,字符串形式,類似于密碼,默認值為 public,可自行定義。團體名包括“read”和“write”兩種,執行SNMP查詢Get操作時,采用“read”團體名進行認證;執行SNMP設置Set操作時,則采用“write”團體名進行認證。SNMP PDU:協議數據單元PDU是 SNMP 消息中的數據區,即 Snmp 通信時報文數據的載體。PDU 指明了 SNMP 的消息類型及其相關參數。各類SNMP操作如Get、Set、Trap的報文封裝在SNMP PDU中。

關鍵詞: