一、什么是SNMP
簡單網絡管理協議(SNMP),由一組網絡管理的標準組成,包含一個應用層協議(application layer protocol)、數據庫模型(database schema)和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關注的情況。
該協議是互聯網工程工作小組(IETF,Internet Engineering Task Force)定義的internet協議簇的一部分。SNMP的目標是管理互聯網Internet上眾多廠家生產的軟硬件平臺,因此SNMP受Internet標準網絡管理框架的影響也很大。SNMP已經出到第三個版本的協議,其功能較以前已經大大地加強和改進了。
SNMP的作用
SNMP是1990年之后最常用的網絡管理協議。SNMP被設計成與協議無關,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協議上被使用。SNMP是一系列協議組和規范(見下表),它們提供了一種從網絡上的設備中收集網絡管理信息的方法。SNMP也為設備向網絡管理工作站報告問題和錯誤提供了一種方法。
現在,幾乎所有的網絡設備生產廠家都實現了對SNMP的支持。領導潮流的SNMP是一個從網絡上的設備收集管理信息的公用通信協議。設備的管理者收集這些信息并記錄在管理信息庫(MIB)中。這些信息報告設備的特性、數據吞吐量、通信超載和錯誤等。MIB有公共的格式,所以來自多個廠商的SNMP管理工具可以收集MIB信息,在管理控制臺上呈現給系統管理員。
通過將SNMP嵌入數據通信設備,如路由器、交換機或集線器中,就可以從一個中心站管理這些設備,并以圖形方式查看信息。現在可獲取的很多管理應用程序通常可在大多數當前使用的操作系統下運行,如Windows95、Windows98、WindowsNT和不同版本UNIX的等。
一個被管理的設備有一個管理代理,它負責向管理站請求信息和動作,代理還可以借助于陷阱為管理站主動提供信息,因此,一些關鍵的網絡設備(如集線器、路由器、交換機等)提供這一管理代理,又稱SNMP代理,以便通過SNMP管理站進行管理。
二、SNMP背景
SNMP的基本思想:為不同種類的設備、不同廠家生產的設備、不同型號的設備,定義為一個統一的接口和協議,使得管理員可以是使用統一的外觀面對這些需要管理的網絡設備進行管理。通過網絡,管理員可以管理位于不同物理空間的設備,從而大大提高網絡管理的效率,簡化網絡管理員的工作。
三、SNMP結構概述
SNMP被設計為工作在TCP/IP協議族上。SNMP基于TCP/IP協議工作,對網絡中支持SNMP協議的設備進行管理。所有支持SNMP協議的設備都提供SNMP這個統一界面,使得管理員可以使用統一的操作進行管理,而不必理會設備是什么類型、是哪個廠家生產的。如下圖,
四、SNMP支持的網管操作
對于網絡管理,我們面對的數據是設備的配置、參數、狀態等信息,面對的操作是讀取和設置;同時,因為網絡設備眾多,為了能及時得到設備的重要狀態,還要求設備能主動地匯報重要狀態,這就是報警功能。如下圖,
1)Get:讀取網絡設備的狀態信息。
2)Set:遠程配置設備參數。
3)Trap:管理站及時獲取設備的重要信息。
五、SNMP的實現結構
在具體實現上,SNMP為管理員提供了一個網管平臺(NMS),又稱為管理站,負責網管命令的發出、數據存儲、及數據分析。被監管的設備上運行一個SNMP代理(Agent)),代理實現設備與管理站的SNMP通信。如下圖,
管理站與代理端通過MIB進行接口統一,MIB定義了設備中的被管理對象。管理站和代理都實現了相應的MIB對象,使得雙方可以識別對方的數據,實現通信。管理站向代理申請MIB中定義的數據,代理識別后,將管理設備提供的相關狀態或參數等數據轉換為MIB定義的格式,應答給管理站,完成一次管理操作。
已有的設備,只要新加一個SNMP模塊就可以實現網絡支持。舊的帶擴展槽的設備,只要插入SNMP模塊插卡即可支持網絡管理。網絡上的許多設備,路由器、交換機等,都可以通過添加一個SNMP網管模塊而增加網管功能。服務器可以通過運行一個網管進程實現。其他服務級的產品也可以通過網管模塊實現網絡管理,如Oracle、WebLogic都有SNMP進程,運行后就可以通過管理站對這些系統級服務進行管理。
根據管理者和被管理的設備在網絡管理操作中的不同職責,SNMP定義了3種角色。如下圖,
網絡管理系統:又稱管理站、NMS。是系統的控制臺,向管理員提供界面以獲取與改變設備的配置、信息、狀態、操作等信息。管理站與Agent進行通信,執行相應的Set和Get操作,并接收代理發過來的警報(Trap)。
代理:Agent是網絡管理的代理人,負責管理站和設備SNMP操作的傳遞。介于管理站和設備之間,與管理站通信并相應管理站的請求,從設備獲取相應的數據,或對設備進行相應的設置,來響應管理站的請求。代理也需要具有根據設備的相應狀態使用MIB中定義的Trap向管理站發送報告的能力。
代理服務器:Proxy是一種特殊的代理,在不能直接使用SNMP協議的地方,如:異種網絡、不同版本的SNMP代理等情況,Proxy代替相關設備向管理站提供一種外觀,為設備代理SNMP協議的實現。Proxy做了異種網絡或不同版本代理和相應SNMP數據請求的轉換工作。如下圖,
附:管理信息庫MIB:定義了設備上可以使用的管理信息。代理和管理站使用MIB作為統一的數據接口通信。
六、SNMP的技術內容
如下圖,
七、SNMP的發展歷史
1989年------ SNMPv1
1991年------ RMON(Remote Network Monitoring 遠程網絡監視),它擴充了SNMP的功能,包括對LAN的管理及對依附于這些網絡的設備的管理。RMON 沒有修改和增加SNMPv1,只是增加了SNMP監視子網的能力。
1993年------ SNMPv2(SNMPv1的升級版)
1995年------ SNMPv2正式版,其中規定了如何在基于OSI的網絡中使用SNMP
1995年------ RMON擴展為RMON2
1998年------ SNMPv3,一系列文檔定義了SNMP的安全性,并定義了將來改進的總體結構,SNMPv3可以和SNMPv2、SNMPv1一起使用。
八、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的操作請求和應答編碼后進行傳輸,并用于接收端進行解碼。
九、綜合上述(總結)
1、SNMP現有幾個版本
SNMP共有v1,v2,v3這三個版本:
v1和v2都具有基本的讀、寫MIB功能。
v2增加了警報、批量數據獲取、管理站和管理站通信能力。
v3在v2的基礎上增加了USM,使用加密的數據和用戶驗證技術,提高了安全性。
另外,RMON是SNMP的一個重要擴展,為SNMP增加了子網流量、統計、分析能力?,F有兩個版本: Rmon:提供了OSI七層網絡結構中網絡層和數據鏈路層監視能力。Rmon2:提供了OSI七層網絡結構中網絡層之上各層的監視能力。
2、ASN.1、BER、SMI、MIB、PDU的關系
ASN.1:高級的數據描述語言。描述數據的類型、結構、組織、及編碼方法。包括符號和語法兩部分。SNMP使用ASN.1描述PDU和管理學對象信息庫MIB。
BER:ASN.1的基本編碼規則。描述具體的ASN.1對象如何編碼為比特流在網絡上傳輸。SNMP使用BER作為編碼方案,數據首先先經過BER編碼,再經由傳輸層協議(一邊是UDP)發往接收方。接收方在SNMP端口上收到PDU后,經過BER解碼后,得到具體的SNMP操作數據。
SMI:是SNMP的描述方法。規定了使用ASN.1子類型、符號。ASN.1功能強大,但SNMP只用到了其中很小一部分,對于這一部分內容的描述,限定了范圍,即為SMI。SMI規定了使用到的ASN.1類型、宏、符號等。SMI是ASN.1的一個子集和超集。
MIB:是SNMP中使用到的管理信息庫。定義了數據格式、類型、順序、意義等,使用SMI中定義的類型和ASN.1中的基本類型對對象進行描述,是一個使用SMI描述的管理信息庫。每一類關心的事件都有一組MIB,比如網絡接口有一顆MIB樹,TCP有一顆MIB樹,UDP也有一顆MIB樹。
PDU:是SNMP的協議數據單元。PDU是基本的通信格式,使用ASN.1描述,使用BER編碼,通過傳輸層協議傳送。
3、比較規范的SNMP背景
SNMP作為一種過渡技術以其簡單易用的特性被廣泛使用,使用的網絡產品提供對SNMP的支持。SNMP還擴展了具有遠程管理功能的RMON,使得管理人員可以對整個子網進行管理,而不是對整個子網內的設備進行管理。
評論
查看更多