學習啦>學習電腦>網(wǎng)絡知識>網(wǎng)絡基礎知識>

簡單網(wǎng)絡管理協(xié)議(SNMP)是什么

時間: 孫勝龍652 分享

  許多學網(wǎng)絡知識的朋友,當你接觸網(wǎng)絡協(xié)議內(nèi)容時,一般來說第一個都會講簡單網(wǎng)絡管理協(xié)議(SNMP),那么簡單網(wǎng)絡管理協(xié)議是什么呢?大家跟著學習啦小編一起來學習吧。

  一、 SNMP概述

  SNMP的前身是簡單網(wǎng)關監(jiān)控協(xié)議(SGMP),用來對通信線路進行管理。隨后,人們對SGMP進行了很大的修改,特別是加入了符合Internet定義的SMI和MIB:體系結構,改進后的協(xié)議就是著名的SNMP。SNMP的目標是管理互聯(lián)網(wǎng)Internet上眾多廠家生產(chǎn)的軟硬件平臺,因此SNMP受Internet標準網(wǎng)絡管理框架的影響也很大?,F(xiàn)在SNMP已經(jīng)出到第三個版本的協(xié)議,其功能較以前已經(jīng)大大地加強和改進了。

  SNMP的體系結構是圍繞著以下四個概念和目標進行設計的:保持管理代理(agent)的軟件成本盡可能低;最大限度地保持遠程管理的功能,以便充分利用Internet的網(wǎng)絡資源;體系結構必須有擴充的余地;保持SNMP的獨立性,不依賴于具體的計算機、網(wǎng)關和網(wǎng)絡傳輸協(xié)議。在最近的改進中,又加入了保證SNMP體系本身安全性的目標。

  另外,SNMP中提供了四類管理操作:get操作用來提取特定的網(wǎng)絡管理信息;get-next操作通過遍歷活動來提供強大的管理信息提取能力;set操作用來對管理信息進行控制(修改、設置);trap操作用來報告重要的事件。

  二、 SNMF管理控制框架與實現(xiàn)

  1.SNMP管理控制框架

  SNMP定義了管理進程(manager)和管理代理(agent)之間的關系,這個關系稱為共同體(community)。描述共同體的語義是非常復雜的,但其句法卻很簡單。位于網(wǎng)絡管理工作站(運行管理進程)上和各網(wǎng)絡元素上利用SNMP相互通信對網(wǎng)絡進行管理的軟件統(tǒng)統(tǒng)稱為SNMP應用實體。若干個應用實體和SNMP組合起來形成一個共同體,不同的共同體之間用名字來區(qū)分,共同體的名字則必須符合Internet的層次結構命名規(guī)則,由無保留意義的字符串組成。此外,一個SNMP應用實體可以加入多個共同體。

  SNMP的應用實體對Internet管理信息庫中的管理對象進行操作。一個SNMP應用實體可操作的管理對象子集稱為SNMP MIB授權范圍。SNMP應用實體對授權范圍內(nèi)管理對象的訪問仍然還有進一步的訪問控制限制,比如只讀、可讀寫等。SNMP體系結構中要求對每個共同體都規(guī)定其授權范圍及其對每個對象的訪問方式。記錄這些定義的文件稱為“共同體定義文件”。

  SNMP的報文總是源自每個應用實體,報文中包括該應用實體所在的共同體的名字。這種報文在SNMP中稱為“有身份標志的報文”,共同體名字是在管理進程和管理代理之間交換管理信息報文時使用的。管理信息報文中包括以下兩部分內(nèi)容:

  (1)共同體名,加上發(fā)送方的一些標識信息(附加信息),用以驗證發(fā)送方確實是共同體中的成員,共同體實際上就是用來實現(xiàn)管理應用實體之間身份鑒別的;

  (2)數(shù)據(jù),這是兩個管理應用實體之間真正需要交換的信息。

  在第三版本前的SNMP中只是實現(xiàn)了簡單的身份鑒別,接收方僅憑共同體名來判定收發(fā)雙方是否在同一個共同體中,而前面提到的附加倍息尚未應用。接收方在驗明發(fā)送報文的管理代理或管理進程的身份后要對其訪問權限進行檢查。訪問權限檢查涉及到以下因素:

  (1)一個共同體內(nèi)各成員可以對哪些對象進行讀寫等管理操作,這些可讀寫對象稱為該共同體的“授權對象”(在授權范圍內(nèi));

  (2)共同體成員對授權范圍內(nèi)每個對象定義了訪問模式:只讀或可讀寫;

  (3)規(guī)定授權范圍內(nèi)每個管理對象(類)可進行的操作(包括get,get-next,set和trap);

  (4)管理信息庫(MIB)對每個對象的訪問方式限制(如MIB中可以規(guī)定哪些對象只能讀而不能寫等)。

  管理代理通過上述預先定義的訪問模式和權限來決定共同體中其他成員要求的管理對象訪問(操作)是否允許。共同體概念同樣適用于轉(zhuǎn)換代理(Proxy agent),只不過轉(zhuǎn)換代理中包含的對象主要是其他設備的內(nèi)容。

  2.SNMP實現(xiàn)方式為了提供遍歷管理信息庫的手段,SNMP在其MIB中采用了樹狀命名方法對每個管理對象實例命名。每個對象實例的名字都由對象類名字加上一個后綴構成。對象類的名字是不會相互重復的,因而不同對象類的對象實例之間也少有重名的危險。

  在共同體的定義中一般要規(guī)定該共同體授權的管理對象范圍,相應地也就規(guī)定了哪些對象實例是該共同體的“管轄范圍”,據(jù)此,共同體的定義可以想象為一個多叉樹,以詞典序提供了遍歷所有管理對象實例的手段。有了這個手段,SNMP就可以使用get-next操作符,順序地從一個對象找到下一個對象。get-next(object-instance)操作返回的結果是一個對象實例標識符及其相關信息,該對象實例在上面的多叉樹中緊排在指定標識符;bject-instance對象的后面。這種手段的優(yōu)點在于,即使不知道管理對象實例的具體名字,管理系統(tǒng)也能逐個地找到它,并提取到它的有關信息。遍歷所有管理對象的過程可以從第一個對象實例開始(這個實例一定要給出),然后逐次使用get-next,直到返回一個差錯(表示不存在的管理對象實例)結束(完成遍歷)。

  由于信息是以表格形式(一種數(shù)據(jù)結構)存放的,在SNMP的管理概念中,把所有表格都視為子樹,其中一張表格(及其名字)是相應子樹的根節(jié)點,每個列是根下面的子節(jié)點,一列中的每個行則是該列節(jié)點下面的子節(jié)點,并且是子樹的葉節(jié)點,如下圖所示。因此,按照前面的子樹遍歷思路,對表格的遍歷是先訪問第一列的所有元素,再訪問第二列的所有元素……,直到最后一個元素。若試圖得到最后一個元素的“下一個”元素,則返回差錯標記。

  SNMP樹形表格結構示意圖

  SNMP中各種管理信息大多以表格形式存在,一個表格對應一個對象類,每個元素對應于該類的一個對象實例。那么,管理信息表對象中單個元素(對象實例)的操作可以用前面提到的get-next方法,也可以用后面將介紹的get/set等操作。下面主要介紹表格內(nèi)一行信息的整體操作。

  (1)增加一行:通過SNMP只用一次set操作就可在一個表格中增加一行。操作中的每個變量都對應于待增加行中的一個列元素,包括對象實例標識符。如果一個表格中有8列,則set操作中必須給出8個操作數(shù),分別對應8個列中的相應元素。

  (2)刪除一行:刪除一行也可以通過SNMP調(diào)用一次set操作完成,并且比增加一行還簡單。刪除一行只需要用set操作將該行中的任意一個元素(對象實例)設置成“非法”即可。但該操作有一個例外:地址翻譯組對象中有一個特殊的表(地址變換表),該表中未定義一個元素的“非法”條件。因此,SNMP中采用的辦法是將該表中的地址設置成空串,而空字符串將被視為非法元素。

  至于刪除一行時,表中的一行元素是否真的在表中消失,則與每個設備(管理代理)的具體實現(xiàn)有關。因此,網(wǎng)絡管理操作中,運行管理進程可能從管理代理中得到“非法”數(shù)據(jù),即已經(jīng)刪除的不再使用的元素的內(nèi)容,因此管理進程必須能通過各數(shù)據(jù)字段的內(nèi)容來判斷數(shù)據(jù)的合法性。

261768