1. 程式人生 > >什麼是 SNMP 和 MIB什麼是 SNMP 和 MIB

什麼是 SNMP 和 MIB什麼是 SNMP 和 MIB

SNMP(Simple 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等等,不過那也是需要另外撰文敘述的了。

相關推薦

MIB BrowserWireshark 的使用:通過oid獲取裝置資訊時的SNMP報文分析

MIB Browser&  Wireshark Table View 1.   Address  : 172.16.72.134 (將我所在主機的IP新增到172.16.72.134 的SNMP中) 2.   OID:  .1.3.6.1.2.2.1  (或點選i

snmp 協議開發之HiliSoft MIB Browser(輔助開發工具)

為了簡單起見,現在在Windows 7上建立一個SNMP服務環境,windows 7系統也自帶了該服務的支援! 控制面板中開啟新增或刪除程式! 安裝後會在服中看到SNMP服務內容: 然後我們需要安裝一個軟體,這個軟體可以檢視機器的MIB樹: HiliSo

SNMP 開發中必備工具MIB瀏覽器

    在SNMP開發中,如果你想知道一個SNMP中OID,你可能需要費很大的事情,在網上查詢非常麻煩,現在我們可以在網上下載一個MIB瀏覽器使用。 SNMP MIB Browser(MIB瀏覽器),功能強大,簡單易用。 1. 支援SNMP v1, v2c & v3 2. 支援SMI v1 &a

Win7下啟動配置SNMP服務

通過SNMP監控Windows主機需要在被監控的伺服器上安裝簡單網路管理協議(SNMP)的Windows元件,以Windows 7系統為例:首先,在控制面板中找到“解除安裝程式”; 在彈出的視窗中單擊“開啟或關閉Windows功能”; 勾選彈出視窗中的“簡單網路管理協議(SNMP)”項後單擊“確定”並根

什麼是 SNMP MIB什麼是 SNMP MIB

SNMP(Simple Network Management Protocol)即簡單網路管理協議,它為網路管理系統提供了底層網路管理的框架。SNMP協議的應用範圍非常廣泛,諸多種類的網路裝置、軟體和系統中 都有所採用,主要是因為SNMP協議有如下幾個特點: 首先,相對於其

base64加密解碼原理代碼

先來 自動 clas enter 緩沖區 urn rar col his Base64編碼,是我們程序開發中經常使用到的編碼方法。它是一種基於用64個可打印字符來表示二進制數據的表示方法。它通常用作存儲、傳輸一些二進制數據編碼方法!也是MIME(多用途互聯網郵件擴展,主要用

C#委托事件定義使用

語句 signature 委托和事件 不能 函數 數列 方法參數 操作符 成員方法 委托 定義委托的語法和定義方法比較相似,只是比方法多了一個關鍵字delegate ,我們都知道方法就是將類型參數化,所謂的類型參數化就是說該方法接受一個參數,而該參數是某種類型的參數,比

函數屬性方法:lengthprototype

scrip spa ont pan div blog 屬性 col 方法 ECMAScript中的函數是對象,因此函數也有屬性和方法。每個函數都包含兩個屬性:ength和prototype。 其中, length屬性表示函數希望接收的命名參數的個數 . function

小胖說事28------iOS中extern,staticconst差別使用方法

方法 string 文件 only 聲明 sans nbsp ring const 通俗的講: extern字段使用的時候,聲明的變量為全局變量,都能夠調用,也有這樣一種比較狹義的說法:extern能夠擴展一個類中的變量到還有一個類中;

腳本引用中使用deferasync用法區別

兩個 不依賴 doc 體驗 html 中文 htm 停止 其他 是的,就是在頁面腳本引用的時候設置defer或者async,為什麽會有這兩個屬相來輔助腳本加載那,因為瀏覽器在遇到script標簽的時候,文檔的解析會停止,不再構建document,有時打開一個網頁上會出現空

執行這些代碼, Edit1只能輸入數字,小數點負號,負號小數點只能輸入一個,負號必須在最前,粘貼的數字必須完全正確.

eat win method and length use double .text sel 執行這些代碼, Edit1只能輸入數字,小數點和負號,負號和小數點只能輸入一個,負號必須在最前,粘貼的數字必須完全正確. type TForm1 = class(T

多線程異步編程示例實踐-ThreadThreadPool

處理 ads 指定 機制 後臺線程 wait 在線 調用 thread 說到多線程異步編程,總會說起Thread、ThreadPool、Task、TPL這一系列的技術。總結整理了一版編程示例和實踐,分享給大家。 先從Thread和ThreadPool說起: 1. 創建並

js =====以及!= !==的區別

true style cnblogs 基礎類型 family var ber 16px 運算 一、js == 與 === 的區別[轉] 1. 對於string,number等基礎類型,==和===是有區別的   1)不同類型間比較,==之比較“轉化成同一類型後的值”看“

偽類選擇器:first-child:nth-child():first-of-type

head true http doctype 段落 元素 選擇 ont span x:first-child和x:nth-child(1)功能一樣,首先選中的是x元素,並且x元素必須是它父元素的第一個子元素,選擇器才成立,否則不能選中。其中x也可以是選擇器。由此看出nth-

python中編碼解碼decodeencode的使用

python encode decode python 在處理字符串時經常遇到編碼錯誤,導致亂碼,且python 2.x和 python 3.x之間有很大的不同,先在這裏記錄一下,以後整理;轉載 文章一篇:http://www.cnblogs.com/evening/archive/2012/04

day02python中的基本數據類型-列表元祖字典

some error return ack nts rabl element allow leo 列表 創建列表: name_list=[‘leo‘,‘day‘,‘up‘] or name_list=list([‘leo‘,‘day‘,‘up‘]) 基本操作: 索引: 切

king已經穩了,剩下一個應該是m3且不說大帝路婆馬塔

psu 成功 結束 不想 arc ted 說我 plm 的人 蛋帝的交情,就算打ep拿三分肯定沒問題的,就算WE下一輪拿了三分還是要保級,皇族就不說了應之前看了大舅子摔跤的動圖,原諒即使摔的妖嬈,我還是沒忍住笑。後來關於兮夜求婚的圖片,事實是大舅子摔了,兮夜幫看看,為什麽看

可枚舉屬性不可枚舉屬性(for...in循環Objec.keys()Object.getOwnPropertyNames())

bject 區別 names 所有 每一個 原型 () get for for...in循環是 遍歷對象的每一個可枚舉屬性,包括原型鏈上面的可枚舉屬性,而Object.keys()只是遍歷自身的可枚舉屬性,不可以遍歷原型鏈上的可枚舉屬性. 這是for...in和Objec

&&&(|||)區別

用戶登錄 ati 位與 按位或 font 進行 用法 pan 決定 上代碼,引出問題 public class Test { private static int j = 0; private static Boolean methodB(int k)

Compass學習的筆記一些關鍵點難點

cot nbsp after hit scss onf 實現 utf-8 制作 1.當你在compass中編輯xx.scss時,[email protected]/* */ "utf-8";此時註意這段語句中的utf-8一定要加雙引號。 2.在DOM的befor