1. 程式人生 > >Snmp學習總結(一)——Snmp的基本概念

Snmp學習總結(一)——Snmp的基本概念

一、SNMP簡單概述

1.1、什麼是Snmp

  SNMP是英文"Simple Network Management Protocol"的縮寫,中文意思是"簡單網路管理協議"。SNMP是一種簡單網路管理協議,它屬於TCP/IP五層協議中的應用層協議,用於網路管理的協議。SNMP主要用於網路裝置的管理。由於SNMP協議簡單可靠 ,受到了眾多廠商的歡迎,成為了目前最為廣泛的網管協議。

  SNMP協議主要由兩大部分構成:SNMP管理站和SNMP代理。SNMP管理站是一箇中心節點,負責收集維護各個SNMP元素的資訊,並對這些資訊進行處理,最後反饋給網路管理員;而SNMP代理是執行在各個被管理的網路節點之上,負責統計該節點的各項資訊,並且負責與SNMP管理站互動,接收並執行管理站的命令,上傳各種本地的網路資訊。

  SNMP管理站和SNMP代理之間是鬆散耦合。他們之間的通訊是通過UDP協議完成的。一般情況下,SNMP管理站通過UDP協議向SNMP代理髮送各種命令,當SNMP代理收到命令後,返回SNMP管理站需要的引數。但是當SNMP代理檢測到網路元素異常的時候,也可以主動向SNMP管理站傳送訊息,通告當前異常狀況。

  SNMP的基本思想:為不同種類的裝置、不同廠家生產的裝置、不同型號的裝置,定義為一個統一的介面和協議,使得管理員可以是使用統一的外觀面對這些需要管理的網路裝置進行管理。通過網路,管理員可以管理位於不同物理空間的裝置,從而大大提高網路管理的效率,簡化網路管理員的工作。

  SNMP的工作方式:管理員需要向裝置獲取資料,所以SNMP提供了【讀】操作;管理員需要向裝置執行設定操作,所以SNMP提供了【寫】操作;裝置需要在重要狀況改變的時候,向管理員通報事件的發生,所以SNMP提供了【Trap】操作。

1.2、SNMP 和 UDP

  SNMP採用UDP協議在管理端和agent之間傳輸資訊。 SNMP採用UDP 161埠接收和傳送請求,162埠接收trap,執行SNMP的裝置預設都必須採用這些埠。SNMP訊息全部通過UDP埠161接收,只有Trap資訊採用UDP埠162。

1.3、Snmp版本

  SNMP目前共有v1,v2,v3這三個版本: 

  • SNMP v1是SNMP協議的最初版本,不過依然是眾多廠家實現SNMP基本方式。 
  • SNMP v2通常被指是基於community的SNMP V2。Community實質上就是密碼。
  • SNMP v3 是最新版本的SNMP。它對網路管理最大的貢獻在於其安全性。增加了對認證和密文傳輸的支援。

二、Snmp的實現結構

  在具體實現上,SNMP為管理員提供了一個網管平臺(NMS),又稱為【管理站】,負責網管命令的發出、資料儲存、及資料分析。【被】監管的裝置上執行一個SNMP代理(Agent)),代理實現裝置與管理站的SNMP通訊。

  

  管理站與代理端通過MIB進行介面統一,MIB定義了裝置中的被管理物件。管理站和代理都實現了相應的MIB物件,使得雙方可以識別對方的資料,實現通訊。管理站向代理申請MIB中定義的資料,代理識別後,將管理裝置提供的相關狀態或引數等資料轉換為MIB定義的格式,應答給管理站,完成一次管理操作。

三、Snmp有關的基本概念

3.1、代理和管理站的模型

 Snmp分2種角色:SNMP管理站(manager,我們的本機127.0.0.1)和SNMP代理(agent, 我們要操作的機器,比如 192.168.1.144)。管理站指的是運行了可以執行網路管理任務軟體的伺服器,通常被稱作為網路管理工作站(NMS),NMS負責取樣網路中agent的資訊,並接受agent的trap。代理是實際網路裝置中用來實現SNMP功能的部分。代理在UDP的161埠接收NMS的讀寫請求訊息,管理站在UDP的162埠接收代理的事件通告訊息。所以,一旦獲取裝置的訪問許可權(community,預設為public),就可以訪問裝置資訊、改寫和配置裝置引數。由於採用UDP協議,不需要在代理和管理站之間保持連線。

  

3.2、SNMP的操作命令

  SNMP協議之所以易於使用,這是因為它對外提供了三種用於控制MIB物件的基本操作命令。它們是:Get、Set 和 Trap

  1. Get:管理站讀取代理者處物件的值。它是SNMP協議中使用率最高的一個命令,因為該命令是從網路裝置中獲得管理資訊的基本方式。
  2. Set:管理站設定代理者處物件的值。它是一個特權命令,因為可以通過它來改動裝置的配置或控制裝置的運轉狀態。它可以設定裝置的名稱,關掉一個埠或清除一個地址解析表中的項等。
  3. Trap: 代理者主動向管理站通報重要事件。它的功能就是在網路管理系統沒有明確要求的前提下,由管理代理通知網路管理系統有一些特別的情況或問題 發生了。如果發生意外情況,客戶會向伺服器的162埠傳送一個訊息,告知伺服器指定的變數值發生了變化。通常由伺服器請求而獲得的資料由伺服器的161 埠接收。Trap 訊息可以用來通知管理站線路的故障、連線的終端和恢復、認證失敗等訊息。管理站可相應的作出處理。

3.3、SNMP的訊息構成

SNMP協議定義了資料包的格式,及網路管理員和管理代理之間的資訊交換,它還控制著管理代理的MIB資料物件。因此,可用於處理管理代理定義的各種任務。     一條SNMP訊息由"版本號"、"SNMP共同體名"和"協議資料單元(PDU)"構成,資料包的長度不是固定的。

  

  • 版本識別符(version identifier):用於說明現在使用的是哪個版本的SNMP協議,確保SNMP代理使用相同的協議,每個SNMP代理都直接拋棄與自己協議版本不同的資料報。
  • 團體名(Community Name)團體(community)是基本的安全機制,用於實現SNMP網路管理員訪問SNMP管理代理時的身份驗證。類似於密碼,預設值為 public。團體名(Community name)是管理代理的口令,管理員被允許訪問資料物件的前提就是網路管理員知道網路代理的口令。如果把配置管理代理成可以執行Trap命令,當網路管理 員用一個錯誤的分割槽名查詢管理代理時,系統就傳送一個autenticationFailure trap報文。
  • 協議資料單元(PDU)PDU (協議資料單元)是SNMP訊息中的資料區, 即Snmp通訊時報文資料的載體。PDU指明瞭SNMP的訊息型別及其相關引數

3.4、PDU(協議資料單元)

PDU (協議資料單元)是SNMP訊息中的資料區, 即Snmp通訊時報文資料的載體。

3.5、MIB(管理資訊庫)

  管理資訊(MIB)庫可以理解成為agent維護的管理物件資料庫,MIB中定義的大部分管理物件的狀態和統計資訊都可以被NMS訪問。MIB是一個按照層次結構組織的樹狀結構,每個被管物件對應樹形結構的一個葉子節點,稱為一個object,擁有唯一的數字識別符號

  MIB資料物件以一種樹狀分層結構進行組織,這個樹狀結構中的每個分枝都有一個專用的名字和一個數字形式的識別符號。結構樹的分枝實際表示的是資料物件的邏 輯分組。而樹葉,有時候也叫節點(node),代表了各個資料物件。在結構樹中使用子樹表示增加的中間分枝和增加的樹葉。      使用這個樹狀分層結構,MIB瀏覽器能夠以一種方便而且簡潔的方式訪問整個MIB資料庫。MIB瀏覽器是這樣一種工具,它可以遍歷整棵MIB結構樹,通常 以圖形顯示的形式來表示各個分枝和樹葉物件。可以通過其數字識別符號來查詢MIB中的資料物件,這個數字識別符號號從結構樹的頂部(或根部)開始,直到各個葉 子節點(即資料物件)為止。這種訪問方式和檔案系統的組織方式一致。兩者的主要區別在於檔案系統中的路徑名可以以絕對也可以以相對方式表示,而MIB資料 物件只能以絕對方式表示,不能使用相對方式。     每一個節點都有一個物件識別符號(OID)來唯一的標識,每個節點用數字和字元兩種方式顯示,其中物件識別符號OID是由句點隔開的一組整數,也就是從根節點 通向它的路徑。一個帶標號節點可以擁有包含其它帶標號節點為它的子樹,如果沒有子樹它就是葉子節點,它包含一個值並被稱為物件。比如網路裝置名的oid 是.1.3.6.1.2.1.1.5.0,其值為裝置名稱的字串。     網路資源被抽象為物件進行管理。但SNMP中的物件是表示被管資源某一方面的資料變數。物件被標準化為跨系統的類,物件的集合被組織為管理資訊庫 (MIB)。MIB作為設在代理者處的管理站訪問點的集合,管理站通過讀取MIB中物件的值來進行網路監控。管理站可以在代理者處產生動作,也可以通過修改變數值改變代理者處的配置。

3.6、OID(Object Identifier)

  每個管理物件都有自己的OID(Object Identifier),管理物件通過樹狀結構進行組織,OID由樹上的一系列整陣列成,整數之間用點( . )分隔開,樹的葉子節點才是真正能夠被管理的物件。

四、Snmp的初步體驗

  我們來做一個最簡單的Snmp操作:獲取一臺IP為192.168.1.144的電腦的名稱。      首先要給為192.168.1.144的電腦安裝Snmp環境。Window元件的管理監視工具裡包含Snmp,只需要安裝一下就可以了。具體的安裝步驟後面的博文會有詳細的介紹,Snmp預設的通訊埠是161/162

  將下載下來的【snmputil.zip】壓縮包解壓後就可以得到如下圖所示的兩個工具了,其中snmputil是我們要用來進行Snmp通訊的工具。

     snmputil工具的命令規則是snmputil [get|getnext|walk] agent community oid [oid ...]  [get|getnext|walk]:為訊息型別,我們此次進行的操作是get  agent:指Snmp代理即你想進行操作的網路裝置的ip或名稱,即192.168.1.144  community:分割槽域,即密碼,預設是public  oid:想要操作的MIB資料物件號,裝置名稱對應的MIB物件號是.1.3.6.1.2.1.1.5.0

  開啟命令列視窗,進入snmputil所在路徑,鍵入:snmputil get 192.168.1.144 public .1.3.6.1.2.1.1.5.0   如果引數都正確,控制檯就會顯示出192.168.1.144的機器名。如下圖所示:

  

  以上就是一些Snmp基本概念介紹和SNMP的初步體驗,從下一篇博文開始,將重點介紹Window和Linux下Snmp協議的安裝