SNMP概念

一、什麼是SNMP

  • SNMP即"簡單網絡管理協議"(Simple Network Management Protocol")用於網絡管理的協議,它屬於Tcp/Ip五層協議的應用層協議。用於網絡管理的協議,主要用於網絡設備的管理包括但不限於路由器、服務器、交換機、打印機、工作站、網關等網絡設備。由於SNMP協議簡單可靠 ,受到了衆多廠商的歡迎,成爲了目前最爲廣泛的網管協議。
  • 協議主要由兩大部分構成:SNMP管理站和SNMP代理。SNMP管理站是一箇中心節點,負責收集維護各個SNMP元素的信息,並對這些信息進行處理,最後反饋給網絡管理員;而SNMP代理是運行在各個被管理的網絡節點之上,負責統計該節點的各項信息,並且負責與SNMP管理站交互,接收並執行管理站的命令,上傳各種本地的網絡信息。
  • SNMP的工作方式:管理員需要向設備獲取數據,所以SNMP提供了“讀”(get)操作;管理員需要向設備執行設置操作,所以SNMP提供了“寫”(set)操作;設備需要在重要狀況改變的時候,向管理員通報事件的發生,所以SNMP提供了“警報”(Trap)操作。
  • SNMP採用UDP協議在管理端和agent之間傳輸信息。 SNMP採用UDP 161端口接收和發送請求,162端口接收trap,執行SNMP的設備缺省都必須採用這些端口。SNMP消息全部通過UDP端口161接收,只有Trap信息採用UDP端口162。

二、SNMP結構及實現原理

在具體實現上,SNMP爲管理員提供了一個網管平臺(NMS),又稱爲管理站,負責網管命令的發出、數據存儲、及數據分析。被監管的設備上運行一個SNMP代理(Agent)),代理實現設備與管理站的SNMP通信。如下圖,

s3

管理站與代理端通過MIB(管理信息庫)進行接口統一,MIB定義了設備中的被管理對象。管理站和代理都實現了相應的MIB對象,使得雙方可以識別對方的數據,實現通信。管理站向代理申請MIB中定義的數據,代理識別後,將管理設備提供的相關狀態或參數等數據轉換爲MIB定義的格式,應答給管理站,完成一次管理操作。

已有的設備,只要新加一個SNMP模塊就可以實現網絡支持。舊的帶擴展槽的設備,只要插入SNMP模塊插卡即可支持網絡管理。網絡上的許多設備,路由器、交換機等,都可以通過添加一個SNMP網管模塊而增加網管功能。服務器可以通過運行一個網管進程實現。其他服務級的產品也可以通過網管模塊實現網絡管理,如Oracle、WebLogic都有SNMP進程,運行後就可以通過管理站對這些系統級服務進行管理。

根據管理者和被管理的設備在網絡管理操作中的不同職責,SNMP定義了3種角色。如下圖,

s4

網絡管理系統:又稱管理站、NMS。是系統的控制檯,向管理員提供界面以獲取與改變設備的配置、信息、狀態、操作等信息。管理站與Agent進行通信,執行相應的Set和Get操作,並接收代理發過來的警報(Trap)。

代理:Agent是網絡管理的代理人,負責管理站和設備SNMP操作的傳遞。介於管理站和設備之間,與管理站通信並相應管理站的請求,從設備獲取相應的數據,或對設備進行相應的設置,來響應管理站的請求。代理也需要具有根據設備的相應狀態使用MIB中定義的Trap向管理站發送報告的能力。

代理服務器:Proxy是一種特殊的代理,在不能直接使用SNMP協議的地方,如:異種網絡、不同版本的SNMP代理等情況,Proxy代替相關設備向管理站提供一種外觀,爲設備代理SNMP協議的實現。Proxy做了異種網絡或不同版本代理和相應SNMP數據請求的轉換工作。如下圖,

s5

附:管理信息庫MIB:定義了設備上可以使用的管理信息。代理和管理站使用MIB作爲統一的數據接口通信。

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

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

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的消息類型及其相關參數

三、SNMP的技術術語

  • SNMP:Simple Network Management Protocol(簡單網絡管理協議),是一個標準的用於管理基於IP網絡上設備的協議。

  • MIB:Management Information Base(管理信息庫),定義代理進程中所有可被查詢和修改的參數。

  • SMI:Structure of Management Information(管理信息結構),SMI定義了SNMP中使用到的ASN.1類型、語法,並定義了SNMP中使用到的類型、宏、符號等。SMI用於後續協議的描述和MIB的定義。每個版本的SNMP都可能定義自己的SMI。

  • ASN.1:Abstract Syntax Notation One(抽象語法定義)。用於定義語法的正式語言,在SNMP中定義SNMP的協議數據單元PDU和管理對象MIB的格式。SNMP只使用了ASN.1中的一部分,而且使用ASN.1的語言特性定義了一些自定義類型和類型宏 ,這些組成了SMI。

  • PDU: Protocol Data Unit(協議數據單元),它是網絡中傳送的數據包。每一種SNMP操作,物理上都對應一個PDU。

  • NMS: Network Management System,網絡管理系統,又名網絡管理站,簡稱“管理站”。它是SNMP的總控機,提供統一的用戶界面訪問支持SNMP的設備,一般提供UI界面,並有統計、分析等功能,是網管系統的總控制檯。NMS是網絡管理操作的發起者。

  • Agent: 是SNMP的訪問代理,簡稱“代理”,爲設備提供SNMP能力,負責設備與NMS的通信。

  • Proxy: 代理服務器,對實現不同協議的設備進行協議轉換,使非IP協議的設備也能被管理。

  • Trap: 是由設備主動發出的報警數據,用於提示重要的狀態的改變。

  • BER: Basic Encoding Rule,基本編碼規格。描述如何將ASN.1類型的值編碼爲字符串的方法。它是ASN.1標準的一部分。BER編碼將數據分成TLV三部分,T爲Tag的縮寫,是類型標識;L爲Length的縮寫,標識類型的長度;V爲Value的縮寫,標識數據內容。按照TLV的順序對數據進行編碼,生成字節流。SNMP使用BER將SNMP的操作請求和應答編碼後進行傳輸,並用於接收端進行解碼。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章