什麼是 SNMP 和 MIB

2021-04-12 18:41:20 字數 4326 閱讀 5334

snmp(****** network management protocol)即簡單網路管理協議,它為網路管理系統提供了底層網路管理的框架。snmp協議的應用範圍非常廣泛,諸多種類的網路裝置、軟體和系統中都有所採用,主要是因為snmp協議有如下幾個特點:

首先,相對於其它種類的網路管理體系或管理協議而言,snmp易於實現。snmp的管理協議、mib及其它相關的體系框架能夠在各種不同型別的裝置上執行,包括低檔的個人電腦到高檔的大型主機、伺服器、及路由器、交換器等網路裝置。乙個snmp管理**元件在執行時不需要很大的記憶體空間,因此也就不需要太強的計算能力。snmp協議一般可以在目標系統中快速開發出來,所以它很容易在面市的新產品或公升級的老產品中出現。儘管snmp協議缺少其它網路管理協議的某些優點,但它設計簡單、擴充套件靈活、易於使用,這些特點大大彌補了snmp協議應用中的其他不足。

其次,snmp協議是開放的免費產品。只有經過ietf的標準議程批准(ietf是iab下設的乙個組織),才可以改動snmp協議;廠商們也可以私下改動snmp協議,但這樣作的結果很可能得不償失,因為他們必須說服其他廠商和使用者支援他們對snmp協議的非標準改進,而這樣做卻有悖於他們的初衷。

第三,snmp協議有很多詳細的文件資料(例如rfc,以及其它的一些文章、說明書等),網路業界對這個協議也有著較深入的理解,這些都是snmp協議近一步發展和改進的基礎。

最後,snmp協議可用於控制各種裝置。比如說**系統、環境控制裝置,以及其它可接入網路且需要控制的裝置等,這些非傳統裝備都可以使用snmp協議。

正是由於有了上述這些特點,snmp協議已經被認為是網路裝置廠商、應用軟體開發者及終端使用者的首選管理協議。

snmp是一種無連線協議,無連線的意思是它不支援象telnet或ftp這種專門的連線。通過使用請求報文和返回響應的方式,snmp在管理**和管理員之間傳送資訊。這種機制減輕了管理**的負擔,它不必要非得支援其它協議及基於連線模式的處理過程。因此,snmp協議提供了一種獨有的機制來處理可靠性和故障檢測方面的問題。

另外,網路管理系統通常安裝在乙個比較大的網路環境中,其中包括大量的不同種類的網路和網路裝置。因此,為劃分管理職責,應該把整個網路分成若干個使用者分割槽,可以把滿足以下條件的網路裝置歸為同乙個snmp分割槽:它們可以提供用於實現分割槽所需要的安全性方面的分界線。snmp協議支援這種基於分割槽名(community string)資訊的安全模型,可以通過物理方式把它新增到選定的分區內的每個網路裝置上。目前snmp協議中基於分割槽的身份驗證模型被認是為很不牢靠的,它存在乙個嚴重的安全問題。主要原因是snmp協議並不提供加密功能,也不保證在snmp資料報交換過程中不能從網路中直接拷貝分割槽資訊。只需使用乙個資料報捕獲工具就可把整個snmp資料報解密,這樣分割槽名就暴露無遺。因為這個原因,大多數站點禁止管理**裝置的設定操作。但這樣做有乙個***,這樣一來只能監控資料物件的值而不能改動它們,限制了snmp協議的可用性。

snmp的命令和報文

snmp協議定義了資料報的格式,及網路管理員和管理**之間的資訊交換,它還控制著管理**的mib資料物件。因此,可用於處理管理**定義的各種任務。snmp協議之所以易於使用,這是因為它對外提供了三種用於控制mib物件的基本操作命令。它們是:set 、get 和 trap :

set:它是乙個特權命令,因為可以通過它來改動裝置的配置或控制裝置的運轉狀態。

get:它是snmp協議中使用率最高的乙個命令,因為該命令是從網路裝置中獲得管理資訊的基本方式。

trap:它的功能就是在網路管理系統沒有明確要求的前提下,由管理**通知網路管理系統有一些特別的情況或問題發生了。

snmp協議也定義了執行以上三個命令時的報文流, 但它沒有定義其它的裝置管理**命令,可應用於mib資料物件的操作只有set和get命令,這兩個命令的目標是資料物件的值。比如說,snmp協議中沒有定義reboot(重啟)命令;然而,管理**軟體把mib資料物件和裝置的內部命令聯絡起來,這樣就可以實現某些特殊的命令操作。如果現在想要重啟某個裝置,管理系統就把某個與重啟有關的mib資料物件的值設為1(我們的假定)。這樣就會觸發管理**執行重新啟動裝置的命令,同時還把這個mib資料物件重新設定為原來的狀態。

一條snmp報文由三個部分組成:版本域(version field),分區域(community field)和snmp協議資料單元域(snmp protocol data unit field),資料報的長度不是固定的。

版本域:這個域用於說明現在使用的是哪個版本的snmp協議。目前,version 1是使用最廣泛的snmp協議。

分區域:分割槽(community)是基本的安全機制,用於實現snmp網路管理員訪問snmp管理**時的身份驗證。分割槽名(community name)是管理**的口令,管理員被允許訪問資料物件的前提就是網路管理員知道網路**的口令。如果把配置管理**成可以執行trap命令,當網路管理員用乙個錯誤的分割槽名查詢管理**時,系統就傳送乙個autenticationfailure trap報文。

協議資料單元域:snmpv1的pdu有五種型別,有些是報文請求(request),有些則是響應(response)。它們包括:getrequest、getnextrequest、setrequest、getresponse、trap 。snmpv2又增加了兩種pdu:getbulkrequest和informrequest 。

snmp管理員使用getrequest從擁有snmp**的網路裝置中檢索資訊,snmp**以getresponse訊息響應getrequest。可以交換的資訊很多,如系統的名字,系統自啟動後正常執行的時間,系統中的網路介面數等等。getrequest和getnextrequest結合起來使用可以獲得乙個表中的物件。getrequest取回乙個特定物件;而使用getnextrequest則是請求表中的下乙個物件。使用setrequest可以對乙個裝置中的引數進行遠端配置。set-request可以設定裝置的名字,關掉乙個埠或清除乙個位址解析表中的項。trap即snmp陷阱,是snmp**傳送給管理站的非請求訊息。這些訊息告知管理站本裝置發生了乙個特定事件,如埠失敗,掉電重起等,管理站可相應的作出處理。

mib概述

管理資訊資料庫(mib)是乙個資訊儲存庫,它包含了管理**中的有關配置和效能的資料,有乙個組織體系和公共結構,其中包含分屬不同組的許多個資料物件。如下圖所示。

mib資料物件以一種樹狀分層結構進行組織,這個樹狀結構中的每個分枝都有乙個專用的名字和乙個數字形式的識別符號。上圖表示的是標準mib的組織體系,列出了從mib結構樹的樹根到各層樹枝的全部內容。結構樹的分枝實際表示的是資料物件的邏輯分組。而樹葉,有時候也叫節點(node),代表了各個資料物件。在結構樹中使用子樹表示增加的中間分枝和增加的樹葉。

使用這個樹狀分層結構,mib瀏覽器能夠以一種方便而且簡潔的方式訪問整個mib資料庫。mib瀏覽器是這樣一種工具,它可以遍歷整棵mib結構樹,通常以圖形顯示的形式來表示各個分枝和樹葉物件。可以通過其數字識別符號來查詢mib中的資料物件,這個數字識別符號號從結構樹的頂部(或根部)開始,直到各個葉子節點(即資料物件)為止。這種訪問方式和檔案系統的組織方式一致。兩者的主要區別在於檔案系統中的路徑名可以以絕對也可以以相對方式表示,而mib資料物件只能以絕對方式表示,不能使用相對方式。例如,在圖中,iso(1)位於結構樹的最上方,而sysdescr(1)處在葉子節點的位置。現在看不到樹根root(.),其餘所有的分枝都是從這裡擴充套件而來的。通常用帶點的符號來表示資料物件的識別符號。要訪問資料物件sysdescr(1),其完整的識別符號應該是這樣的:iso.org.dod.internet.mgmt.mib-2.system.sysdescr(這個識別符號應該從左向右讀)。資料物件也可以以另一種更短的格式表示,即用數字形式識別符號代替分枝名形式的表示形式。這樣,上面的那種形式的識別符號iso.org.dod.internet.mgmt.mib-2.system.sysdescr 還可以用 1.3.6.1.2.1.1.1 來表示。這兩種表達格式的作用是一致的,都表示同乙個mib資料物件。儘管數字形式的識別符號看起來更簡潔,選擇何種表達格式仍然是個人偏好問題。幸運的是,許多mib瀏覽器可以以兩者中任何一種格式來表示資料物件,這使得兩種格式間的相互轉化非常容易。

mib的訪問方式

在定義mib資料物件時,訪問控制資訊確定了可作用於該資料物件的操作種類。snmp協議有如下的mib資料物件訪問方式:

唯讀方式(read-only)

可讀可寫(read-write)

禁止訪問(not-accessible)

網路管理系統無法改動唯讀方式的mib資料物件,但可以通過get或trap命令讀取資料物件的值。在一件產品的使用期內,某些mib的資訊從不會改變。例如,mib資料物件sysdescr,它代表system description,包含了管理**軟體所需要的廠商資訊。確定某些資料物件為唯讀還有另乙個原因,即確保有關效能的資訊及其它統計資料正確,不至於因誤操作而改動它們。

snmp作為資料傳輸方法,和資料的組織形式mib結合,為網路管理系統提供了底層的保障。乙個真正的網路管理系統可以建立在snmp之上,也可以建立在其他的網路管理協議上,如cmip等等,不過那也是需要另外撰文敘述的了。 

使用Snmp 獲取MIB表

snmp 是一套強大的網路管理應用開發包。它提供了 snmp 網管協議所描述的所有命令,並且提供 i資料型別的解析。mib資料報含普通資料和表資料。在提取表資料時,由於表項的數量和 oid都不確定,所以不能通過某個特定的 oid直接獲得取值。通常,關於 snmp 的書上都會介紹使用 getnext ...

SNMP管理資訊庫MIB

snmp管理資訊庫mib 管理資訊庫mib指明了網路元素所維持的變數 即能夠被管理程序查詢和設定的資訊 mib給出了乙個網路中所有可能的被管理物件的集合的資料結構。snmp的管理資訊庫採用和網域名稱系統dns相似的樹型結構,它的根在最上面,根沒有名字。圖3畫的是管理資訊庫的一部分,它又稱為物件命名 ...

SNMP管理資訊庫MIB

管理資訊庫mib指明了網路元素所維持的變數 即能夠被管理程序查詢和設定的資訊 mib給出了乙個網路中所有可能的被管理物件的集合的資料結 構。snmp的管理資訊庫採用和網域名稱系統dns相似的樹型結構,它的根在最上面,根沒有名字。圖3畫的是管理資訊庫的一部分,它又稱為物件命名 objectnaming...