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