SNMP協議總結

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

SNMP協議總結

SNMP協議總結


      簡單網路管理協議(SNMP:Simple Network Management Protocol)是由互聯網工程任務組(IETF:Internet Engineering Task Force )定義的一套網路管理協議。該協議基於簡單網關監視協議(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一個管理工作站可以遠程管理所有支持這種協議的網路設備,包括監視網路狀態、修改網路設備配置、接收網路事件警告等。雖然SNMP開始是面向基於IP的網路管理,但作為一個工業標準也被成功用於電話網路管理。
1.網路管理

基於TCP/IP的網路管理包含兩個部分:網路管理站(也叫管理進程,manager Station)和被管的網路單元(也叫被管設備 Network Element)。被管設備種類繁多,例如:路由器、X 終端、終端伺服器和印表機等。這些被管設備的共同點就是都運行TCP/IP協議。被管設備端和管理相關的軟體叫做代理程序( agent )或代理進程。管理站一般都是帶有彩色監視器的工作站,可以顯示所有被管設備的狀態(例如連接是否掉線、各種連接上的流量狀況等)。

管理進程和代理進程之間的通信可以有兩種方式。一種是管理進程向代理進程發出請求,詢問一個具體的參數值(例如:你產生了多少個不可達的ICMP埠)。另外一種方式是代理進程主動向管理進程報告有某些重要的事件發生(例如:一個連介面掉線了)。當然,管理進程除了可以向代理進程詢問某些參數值以外,它還可以按要求改變代理進程的參數值(例如:把默認的IP TTL值改為6 4)。

基於T C P/IP的網路管理包含3個組成部分:

1)管理信息庫MIB(Management Information Base)。

管理信息庫包含所有代理進程的所有可被查詢和修改的參數。RFC 1213 定義了第二版的MIB,叫做MIB-II;

2)管理信息結構SMI(Structure of Management Information)

它是關於MIB的一套公用的結構和表示符號,這個在RFC 1155 中定義。例如:SMI定義計數器是一個非負整數,它的計數範圍是0~4 294 967 295,當達到最大值時,又從0開始計數;

3)簡單網路管理協議SNMP

管理進程和代理進程之間的通信協議,叫做簡單網路管理協議SNMP(Simple Network Management Protocol)。在RFC 1157 中定義。S N M P包括數據報交換的格式等。儘管可以在運輸層採用各種各樣的協議,但是在SNMP中,用得最多的協議還是UDP。

2.SNMP體系

SNMP採用了Client/Server模型的特殊形式:代理/管理站模型。對網路的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負責回答SNMP管理工作站(主代理)關於MIB定義信息的各種查詢。圖1是SNMP協議的實現模型。





圖1  SNMP協議的實現模型

3.SNMP報文種類

SNMP代理和管理站通過SNMP協議中的標準消息進行通信,每個消息都是一個單獨的數據報。SNMP使用UDP(用戶數據報協議)作為第四層協議(傳輸協議),進行無連接操作。SNMP規定了5種協議消息(也就是SNMP報文),用來在管理進程和代理之間的交換。

Get-Request:從代理進程處提取一個或多個參數值;

Get-Next-Request:從代理進程處提取緊跟當前參數值的下一個參數值;

Get-Response:返回的一個或多個參數值,這個操作是由代理進程發出的,它是前面三種操作的響應操作。  

SNMP管理站用Get-Request消息從擁有SNMP代理的網路設備中檢索信息,而SNMP代理則用Get-Response消息響應。

Get-Next-Request用於和Get-Request組合起來查詢特定的表對象中的列元素。如:首先通過下面的原語獲得所要查詢的設備的介面數:{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)}然後再通過下面的原語,進行查詢(其中第一次用Get-Request,其後用Get-Next-Request):{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)}

Set-Request :SNMP管理站用Set-Request 可以對網路設備進行遠程配置(包括設備名、設備屬性、刪除設備或使某一個設備屬性有效/無效等)。

Trap:SNMP代理使用Trap向SNMP管理站發送非請求消息,一般用於描述某一事件的發生。前面的Request操作是由管理進程向代理進程發出的,後面的Response和Trap操作是代理進程發給管理進程的,為了簡化起見,前面3個操作今後叫做get、get-next和set操作。,在代理進程端是用熟知埠161接收get或set報文,而在管理進程端是用熟知埠162來接收trap報文。

4.SNMP報文格式

SNMP消息報文包含兩個部分:SNMP報頭和協議數據單元PDU。





圖2 SNMP報文格式

圖2是封裝成UDP數據報的5種操作的SNMP報文格式。可見一個SNMP報文共有三個部分組成,即公共SNMP首部、get/set首部trap首部、變數綁定。

版本識別符(version identifier):確保SNMP代理使用相同的協議,每個SNMP代理都直接拋棄與自己協議版本不同的數據報。

團體名(Community Name):用於SNMP從代理對SNMP管理站進行認證;如果網路配置成要求驗證時,SNMP從代理將對團體名和管理站的IP地址進行認證,如果失敗,SNMP從代理將向管理站發送一個認證失敗的Trap消息(見后);

協議數據單元(PDU):其中PDU指明了SNMP的消息類型及其相關參數。

4.1公共SNMP首部

版本寫入版本欄位的是版本號減1,對於SNMP(即SNMPV1)則應寫入0。

共同體(community) 共同體就是一個字元串,作為管理進程和代理進程之間的明文口令,常用的是6個字元「public」。

PDU類型根據PDU的類型,填入0~4中的一個數字,其對應關係如表1所示。

表1 PDU類型PDU

PDU     類型
       0          get-request
       1          get-next-request
       2          get-response
       3          set-request
       4          Trap

4.2get/set首部

請求標識符(request ID) 這是由管理進程設置的一個整數值。代理進程在發送get-response報文時也要返回此請求標識符。管理進程可同時向許多代理髮出get報文,這些報文都使用UDP傳送,先發送的有可能後到達。設置了請求標識符可使管理進程能夠識別返回的響應報文對於哪一個請求報文。

差錯狀態(error status)由代理進程回答時填入0~5中的一個數字,見表2的描述

表2 查錯狀態描述表差錯狀態

差錯狀態 名字 說明
         0 noError 一切正常
         1 tooBig 代理無法將回答裝入一個SNMP報文中
         2 noSuchName 操作指明了一個不存在的變數
         3 badValue 一個set操作指明了一個無效值或無效語法
         4 readOnly 管理進程試圖修改一個只讀變數
         5 genErr 某些其他的查錯

差錯索引(errorl index) 當出現noSuchName、badValue或readOnly的差錯時,由代理進程在回答時設置的一個整數,它指明有差錯的變數在變數列表中的偏移。

4.3trap首部

企業(enterprise)

填入trap報文的網路設備的對象標識符。此對象標識符肯定是在圖3的對象命名樹上的enterprise結點{1.3.6.1.4.1}下面的一棵子樹上。

trap類型 此欄位正式的名稱是generic-trap,共分為表3中的7種。

表3 trap類型說明trap類型

trap類型 名字                        說明
       0            coldStart                   代理進行了初始化
       1            warmStart                 代理進行了重新初始化
       2            linkDown                   一個介面從工作狀態變為故障狀態
       3            linkUp                        一個介面從故障狀態變為工作狀態
       4           authenticationFailure 從SNMP管理進程接收到具有一個無效共同體的報文
       5           egpNeighborLoss       一個EGP相鄰路由器變為故障狀態
       6           enterpriseSpecific       代理自定義的事件,需要用後面的「特定代碼」來指明

當使用上述類型2、3、5時,在報文後面變數部分的第一個變數應標識響應的介面。

特定代碼(specific-code):指明代理自定義的時間(若trap類型為6),否則為0。

時間戳(timestamp):指明自代理進程初始化到trap報告的事件發生所經歷的時間,單位為10ms。例如時間戳為1908表明在代理初始化后1908ms發生了該時間。

4.4變數綁定(variable-bindings)

指明一個或多個變數的名和對應的值。在get或get-next報文中,變數的值應忽略。

5.管理信息庫MIB

管理信息庫MIB指明了網路元素所維持的變數(即能夠被管理進程查詢和設置的信息)。MIB給出了一個網路中所有可能的被管理對象的集合的數據結構。SNMP的管理信息庫採用和域名系統DNS相似的樹型結構,它的根在最上面,根沒有名字。圖3畫的是管理信息庫的一部分,它又稱為對象命名(objectnamingtree)。




圖3 管理信息庫的對象命名舉例

管理信息庫MIB,就是所有代理進程包含的,能夠被管理進程進行查詢和設置的信息的結構。IETF規定的管理信息庫MIB(其中定義了可訪問的網路設備及其屬性,由對象標識符――OID:Object Identifier唯一指定)的一套公用的結構與表示符號稱之為SMI。MIB是一個樹形結構,SNMP協議消息通過遍歷MIB樹形目錄中的節點來訪問網路中的設備。

對象命名是一種數據類型,它指明一種「授權」命名的對象。「授權」的意思就是這些標識不是隨便分配的,它是由一些權威機構進行管理和分配的。對象標識是一個整數序列,以點(「.」)分隔。這些整數構成一個樹型結構,對象標識從樹的頂部開始,頂部沒有標識,以root表示。圖3顯示了在S N M P中用到的這種樹型結構。所有的M I B變數都從1.3 .6 .1 .2 .1這個標識開始。樹上的每個結點同時還有一個文字名。例如標識1.3.6.1.2.1就和iso.org.dod.internet.memt.mib對應。這主要是為了人們閱讀方便。在實際應用中,也就是說在管理進程和代理進程進行數據報交互時,MIB變數名是以對象標識來標識的,當然都是以1.3.6.1.2.1開頭的。

對象命名樹的頂級對象有三個,即ISO、ITU-T和這兩個組織的聯合體。在ISO的下面有4個結點,其中的一個(標號3)是被標識的組織。在其下面有一個美國國防部(Department of Defense)的子樹(標號是6),再下面就是Internet(標號是1)。在只討論Internet中的對象時,可只畫出Internet以下的子樹(圖中帶陰影的虛線方框),並在Internet結點旁邊標註上{1.3.6.1}即可。

在Internet結點下面的第二個結點是mgmt(管理),標號是2。再下面是管理信息庫,原先的結點名是mib。1991年定義了新的版本MIB-II,故結點名現改為mib-2,其標識為{1.3.6.1.2.1},或{Internet(1) .2.1}。這種標識為對象標識符。

最初的結點mib將其所管理的信息分為8個類別,見表4。現在的mib-2所包含的信息類別已超過40個。

表4最初的結點mib管理的信息類別類別

類別                       標號 所包含的信息
       system                   (1) 主機或路由器的操作系統
       interfaces               (2) 各種網路介面及它們的測定通信量
       address translation (3) 地址轉換(例如ARP映射)
       ip                           (4) Internet軟體(IP分組統計)
       icmp                      (5) ICMP軟體(已收到ICMP消息的統計)
       tcp                        (6) TCP軟體(演算法、參數和統計)
       udp                       (7) UDP軟體(UDP通信量統計)
       egp                       (8) EGP軟體(外部網關協議通信量統計)

應當指出,MIB的定義與具體的網路管理協議無關,這對於廠商和用戶都有利。廠商可以在產品(如路由器)中包含SNMP代理軟體,並保證在定義新的MIB項目后該軟體仍遵守標準。用戶可以使用同一網路管理客戶軟體來管理具有不同版本的MIB的多個路由器。當然,一個沒有新的MIB項目的路由器不能提供這些項目的信息。

這裡要提一下MIB中的對象{1.3.6.1.4.1},即enterprises(企業),其所屬結點數已超過3000。例如IBM為11.3.6.1.4.1.2},Cisco為{1.3.6.1.4.1.9},Novell為{1.3.6.1.4.1.23}等。世界上任何一個公司、學校只要用電子郵件發往iana-mib@isi.edu進行申請即可獲得一個結點名。這樣各廠家就可以定義自己的產品的被管理對象名,使它能用SNMP進行管理。

6.管理信息結構SMI

SNMP中,數據類型並不多。這裡我們就討論這些數據類型,而不關心這些數據類型在實際中是如何編碼的。

INTEGER

一個變數雖然定義為整型,但也有多種形式。有些整型變數沒有範圍限制,有些整型變數定義為特定的數值(例如,IP的轉發標誌就只有允許轉發時的或者不允許轉發時的這兩種),有些整型變數定義一個特定的範圍(例如,UDP和TCP的埠號就從0到65535);

OCTERSTRING

0或多個8bit位元組,每個位元組值在0~255之間。對於這種數據類型和下一種數據類型的BER編碼,字元串的位元組個數要超過字元串本身的長度。這些字元串不是以NULL結尾的字元串;

DisplayString

0或多個8bit位元組,但是每個位元組必須是ASCII碼。在MIB-II中,所有該類型的變數不能超過255個字元(0個字元是可以的);

OBJECTIDENTIFIER

NULL代表相關的變數沒有值。例如,在get或get-next操作中,變數的值就是NULL,因為這些值還有待到代理進程處去取;

IpAddress

4位元組長度的OCTERSTRING,以網路序表示的IP地址。每個位元組代表IP地址的一個欄位;

PhysAddress

OCTERSTRING類型,代表物理地址(例如乙太網物理地址為6個位元組長度);

Counter

非負的整數,可從0遞增到232—1(4294976295)。達到最大值后歸0;

Gauge

非負的整數,取值範圍為從0到4294976295(或增或減)。達到最大值后鎖定直到複位。例如,MIB中的tcpCurrEstab就是這種類型的變數的一個例子,它代表目前在ESTABLISHED或CLOSE_WAIT狀態的TCP連接數;

TimeTicks

時間計數器,以0.01秒為單位遞增,但是不同的變數可以有不同的遞增幅度。所以在定義這種類型的變數的時候,必須指定遞增幅度。例如,MIB中的sysUpTime變數就是這種類型的變數,代表代理進程從啟動開始的時間長度,以多少個百分之一秒的數目來表示;

SEQUENCE

這一數據類型與C程序設計語言中的「structure」類似。一個SEQUENCE包括0個或多個元素,每一個元素又是另一個ASN.1數據類型。例如,MIB中的UdpEntry就是這種類型的變數。它代表在代理進程側目前「激活」的UDP數量(「激活」表示目前被應用程序所用)。在這個變數中包含兩個元素:

IpAddress類型中的udpLocalAddress,表示IP地址。

INTEGER類型中的udpLocalPort,從0到65535,表示埠號。

SEQUENDEOF

這是一個向量的定義,其所有元素具有相同的類型。如果每一個元素都具有簡單的數據類型,例如是整數類型,那麼我們就得到一個簡單的向量(一個一維向量)。但是我們將看到,SNMP在使用這個數據類型時,其向量中的每一個元素是一個SEQUENCE(結構)。因而可以將它看成為一個二維數組或表。

7.SNMPv2協議

簡單性是SNMP標準取得成功的主要原因。因為在大型的、多廠商產品構成的複雜網路中,管理協議的明晰是至關重要的,但同時這又是SNMP的缺陷所在——為了使協議簡單易行,SNMP簡化了不少功能,如:

沒有提供成批存取機制,對大塊數據進行存取效率很低;

沒有提供足夠的安全機制,安全性很差;

只在TCP/IP協議上運行,不支持別的網路協議;

沒有提供manager與manager之間通信的機制,只適合集中式管理,而不利於進行分散式管理;

只適於監測網路設備,不適於監測網路本身。

針對這些問題,對它的改進工作一直在進行。如1991年11月,推出了RMON(RemoteNetworkMonitoring)MIB,加強SNMP對網路本身的管理能力。它使得SNMP不僅可管理網路設備,還能收集區域網和互聯網上的數據流量等信息。1992年7月,針對SNMP缺乏安全性的弱點,又公布了S-SNMP(SecureSNMP)草案。

到1993年初,又推出了SNMPVersion2即SNMPv2(推出了SNMPv2以後,SNMP就被稱為SNMPv1)。SNM-Pv2包容了以前對SNMP所做的各項改進工作,並在保持了SNMP清晰性和易於實現的特點以外,功能更強,安全性更好,具體表現為:

提供了驗證機制、加密機制、時間同步機制等,安全性大大提高,

提供了一次取回大量數據的能力,效率大大提高;

增加了manager和manager之間的信息交換機制,從而支持分散式管理結構。由中間(intermediate)manager來分擔主manager的任務,增加了遠地站點的局部自主性。

可在多種網路協議上運行,如OSI、Appletalk和IPX等,適用多協議網路環境(但它的預設網路協議仍是UDP)。

根據Carnegie-Mellin大學(SNMPv2標準的制定者之一)的StevenWaldbusser測試結果,SNMPv2的處理能力明顯強於SNMPv1,大約是SNMPv1的15倍。

SNMPv2一共由12份協議文本組成(RFC1441-RFC1452),已被作為Internet的推薦標準予以公布。可看出它支持分散式管理。一些站點可以既充當manager又充當agent,同時扮演兩個角色。作為agent,它們接受更高一級管理站的請求命令,這些請求命令中一部分與agent本地的數據有關,這時直接應答即可;另一部分則與遠地agent上的數據有關。這時agent就以manager的身份向遠地agent請求數據,再將應答傳給更高一級的管理站。在後一種情況下,它們起的是proxy(代理)的作用。

下面將SNMPv2標準加以詳細介紹,包括SNMPv2標準的中的安全機制,SNMPv2標準中的Party實體,以及如何從通信協議操作、SMI、MIB三方面來看SNMPv2標準

7.1 SNMPv2標準中的安全機制

SNMPv2對SNMPv1的一個大的改進,就是增強了安全機制。對管理系統安全的威脅主要有下面幾種

(1)信息篡改(modification)

SNMPv2標準中,允許管理站(manager)修改agent上的一些被管理對象的值。破壞者可能會將傳輸中的報文加以改變,改成非法值,進行破壞。因此,協議應該能夠驗證收到的報文是否在傳輸過程中被修改過;

(2)冒充(masquerade)

SNMPv2標準中雖然有訪問控制能力,但這主要是從報文的發送者來判斷的。那些沒有訪問權的用戶可能會冒充別的合法用戶進行破壞活動。因此,協議應該能夠驗證報文發送者的真實性,判斷是否有人冒充;

(3)報文流的改變(messagestreammodification)

由於SNMPv2標準是基於無連接傳輸服務的,報文的延遲、重發以及報文流順序的改變都是可能發生的。某些破壞者可能會故意將報文延遲、重發,或改變報文流的順序,以達到破壞的目的。因此,協議應該能夠防止報文的傳輸時間過長,以給破壞者留下機會;

(4)報文內容的竊取(disclosure)

破壞者可能會截獲傳輸中的報文,竊取它的內容。特別在創建新的SNMPv2Party時,必須保證它的內容不被竊取,因為以後關於這個Party的所有操作都依賴於它。因此,協議應該能夠對報文的內容進行加密,保證它不被竊聽者獲取。

針對上述安全性問題,SNMPv2中增加了驗證(Authentication)機制、加密(Privacy)機制,以及時間同步機制來保證通信的安全。

7.2 SNMPv2 Party

SNMPv2標準中增加了一種叫做Party的實體。Party是具有網路管理功能的最小實體,它的功能是一個SNMPv2entity(管理實體)所能完成的全部功能的一個子集。每個manager和agent上都分別有多個Par-ty,每個站點上的各個Party彼此是平等的關係,各自完成自己的功能。實際的信息交換都發生在Party與Party之間(在每個發送的報文里,都要指定發送方和接收方的Par-ty)。每個Party都有一個唯一的標識符(partyidentity)、一個驗證演算法和參數以及一個加密演算法和參數。Party的引入增加了系統的靈活性和安全性,可以賦予不同的人員以不同的管理許可權。SNMPv2中有三種安全性機制:驗證(authentication)機制、加密(privacy)機制和訪問控制(accesscontrol)機制。這些機制都工作在Party一級,而不是manager/agent一級。

7.3 SNMPv2協議操作

SNMPv2標準的核心就是通信協議——它是一個請求/應答式的協議。這個協議提供了在manager與agent、manager與manager之間交換管理信息的直觀、基本的方法。每條SNMPv2的報文都由一些域構成.

如果發送方、接收方的兩個Party都採用了驗證(authentication)機制,它就包含與驗證有關的信息;否則它為空(取NULL)。驗證的過程如下:發送方和接收方的Party都分別有一個驗證用的密鑰(secretkey)和一個驗證用的演算法。報文發送前,發送方先將密鑰值填入圖中digest域,作為報文的前綴。然後根據驗證演算法,對報文中digest域以後(包括digest域)的報文數據進行計算,計算出一個摘要值(digest),再用摘要值取代密鑰,填入報文中的digest域。接收方收到報文後,先將報文中的摘要值取出來,暫存在一個位置,然後用發送方的密鑰放入報文中的digest。將這兩個摘要值進行比較,如果一樣,就證明發送方確實是srcParty域中所指明的那個Party,報文是合法的;如果不一樣,接收方斷定發送方非法。驗證機制可以防止非法用戶"冒充"某個合法Party來進行破壞。

authInfo域中還包含兩個時間戳(timestamp),用於發送方與接收方之間的同步,以防止報文被截獲和重發。

SNMPv2的另一大改進是可以對通信報文進行加密,以防止監聽者竊取報文內容。除了privDst域外,報文的其餘部分可以被加密。發送方與接收方採用同樣的加密演算法(如DES)。通信報文可以不加任何安全保護,或只進行驗證,也可以二者都進行。

8.SNMPv3的體系結構

RFC 2271定義的SNMPv3體系結構,體現了模塊化的設計思想,可以簡單地實現功能的增加和修改。其特點:

適應性強:適用於多種操作環境,既可以管理最簡單的網路,實現基本的管理功能,又能夠提供強大的網路管理功能,滿足複雜網路的管理需求;

擴充性好:可以根據需要增加模塊;

安全性好:具有多種安全處理模塊。SNMPv3主要有三個模塊:信息處理和控制模塊、本地處理模塊和用戶安全模塊

(1)信息處理和控制模塊  

信息處理和控制模塊(Message Processing And Control Model)在RFC 2272中定義,它負責信息的產生和分析,並判斷信息在傳輸過程中是否要經過代理伺服器等。在信息產生過程中,該模塊接收來自調度器(Dispatcher)的PDU,然後由用戶安全模塊在信息頭中加入安全參數。在分析接收的信息時,先由用戶安全模塊處理信息頭中的安全參數,然後將解包后的PDU送給調度器處理。

(2)本地處理模塊  

本地處理模塊(Local Processing Model)的功能主要是進行訪問控制,處理打包的數據和中斷。訪問控制是指通過設置代理的有關信息使不同的管理站的管理進程在訪問代理時具有不同的許可權,它在PDU這一級完成。常用的控制策略有兩種:限定管理站可以向代理髮出的命令或確定管理站可以訪問代理的MIB的具體部分。訪問控制的策略必須預先設定。SNMPv3通過使用帶有不同參數的原語使用來靈活地確定訪問控制方式。  

(3)用戶安全模塊  

與SNMPv1和SNMPv2相比,SNMPv3增加了三個新的安全機制:身份驗證,加密和訪問控制。其中,本地處理模塊完成訪問控制功能,而用戶安全模塊(User Security Model)則提供身份驗證和數據保密服務。身份驗證是指代理(管理站)接到信息時首先必須確認信息是否來自有權的管理站(代理)並且信息在傳輸過程中未被改變的過程。實現這個功能要求管理站和代理必須共享同一密鑰。管理站使用密鑰計算驗證碼(它是信息的函數),然後將其加入信息中,而代理則使用同一密鑰從接收的信息中提取出驗證碼,從而得到信息。加密的過程與身份驗證類似,也需要管理站和代理共享同一密鑰來實現信息的加密和解密。  

下面簡要介紹身份驗證和加密的數學工具。SNMPv3使用私鑰(privKey)和驗證密鑰(authKey)來實現這兩種功能。  

身份驗證:RFC2104中定義了HMAC,這是一種使用安全哈希函數和密鑰來產生信息驗證碼的有效工具,在互聯網中得到了廣泛的應用。SNMP使用的HMAC可以分為兩種:HMAC-MD5-96和HMAC-SHA-96。前者的哈希函數是MD5,使用128位authKey作為輸入。後者的哈希函數是SHA-1,使用160位authKey作為輸入。  

加密:採用數據加密標準(DES)的密碼組鏈接(CBC)碼,使用128位的privKey 作為輸入。
《解決方案》

9.公共管理信息CMIP

CMIP協議是在OSI制訂的網路管理框架中提出的網路管理協議。與其說它是一個網路管理協議,不如說它是一個網路管理體系。這個體系包含以下組成部分:一套用於描述協議的模型,一組用於描述被管對象的註冊、標識和定義的管理信息結構,被管對象的詳細說明以及用於遠程管理的原語和服務。CMIP與SNMP一樣,也是由被管代理和管理者、管理協議與管理信息庫組成。在CMIP中,被管代理和管理者沒有明確的指定,任何一個網路設備既可以是被管代理,也可以是管理者。

CMIP管理模型可以用三種模型進行描述:組織模型用於描述管理任務如何分配;功能模型描述了各種網路管理功能和它們之間的關係;信息模型提供了描述被管對象和相關管理信息的準則。從組織模型來說,所有CMIP的管理者和被管代理者存在於一個或多個域中,域是網路管理的基本單元。從功能模型來說,CMIP主要實現失效管理、配置管理、性能管理、記帳管理和安全性管理。每種管理均由一個特殊管理功能領域(SMFA,SpecialManagementFunctionalArea)負責完成。從信息模型來說,CMIP的MIB庫是面向對象的數據存儲結構,每一個功能領域以對象為MIB庫的存儲單元。

CMIP是一個完全獨立於下層平台的應用層協議,它的五個特殊管理功能領域由多個系統管理功能(SMF)加以支持。相對來說,CMIP是一個相當複雜和詳細的網路管理協議。它的設計宗旨與SNMP相同,但用於監視網路的協議數據報文要相對多一些。CMIP共定義了11類PDU。在CMIP中,變數以非常複雜和高級的對象形式出現,每一個變數包含變數屬性、變數行為和通知。CMIP中的變數體現了CMIPMIB庫的特徵,並且這種特徵表現了CMIP的管理思想,即基於事件而不是基於輪詢。每個代理獨立完成一定的管理工作。CMIP的優點在於:

它的每個變數不僅傳遞信息,而且還完成一定的網路管理任務。這是CMIP協議的最大特點,在SNMP中是不可能的。這樣可減少管理者的負擔並減少網路負載;

完全安全性。它擁有驗證、訪問控制和安全日誌等一整套安全管理方法;

但是,CMIP的缺點也同樣明顯:

它是一個大而全的協議,所以使用時,其資源佔用量是SNMP的數十倍。它對硬體設備的要求比人們所能提供的要高得多;

由於它在網路代理上要運行相當數量的進程,所以大大增加了網路代理的負擔;

它的MIB庫過分複雜,難於實現。迄今為止,還沒有任何一個符合CMIP的網路管理系統。

10.SNMP與CMIP的比較

SNMP與CMIP是網路界最主要的兩種網路管理協議。在未來的網路管理中,究竟哪一種將佔據優勢,一直是業界爭論的話題。

總的來說,SNMP和CMIP兩種協議是同大於異。兩者的管理目標、基本組成部分都基本相同。在MIB庫的結構方面,很多廠商將SNMP的MIB擴展成與CMIP的MIB結構相類似,而且兩種協議的定義都採用相同的抽象語法符號(ASN.1)。

不同之處,首先,SNMP面向單項信息檢索,而CMIP則面向組合項信息檢索。其次,在信息獲得方面,SNMP主要基於輪詢方式,而CMIP主要採用報告方式。再次,在傳送層支持方面,SNMP基於無連接的UDP,而CMIP傾向於有連接的數據傳送。此外,兩者在功能、協議規模、性能、標準化、產品化方面還有相當多的不同點。

11.網路管理協議的前景

在網路界,除SNMP、SNMPv2、CMIP以外,現在正興起一些新的網路管理協議和環境。其中,以分散式計算環境(DME,Distributed Management Environment)最為著名。DME是由OSF(開放軟體基金會)提出的。OSF是一個非盈利的研究和開發組織,其目標是提供一個軟體解決方案,使來自不同廠家的計算機可以協同工作於一個真正的開放系統計算環境下。其文檔以RFT(RequestforTechnology)的形式提供。

DME代表了一種結構。在此結構下,管理系統和網路可以很好地結合。它可以構成分散式系統管理的基礎,並保持與現有網路管理方案的結合。它獨立於操作系統,並支持事實上的和正式的網路與系統管理標準。DME的結構有許多新穎之處。以前,無論是網路管理還是系統管理,管理員通過修改與一個資源或服務相關的數據、通過對一些服務和數據進行操作來進行管理。而在DME環境下,信息和操作都被劃分為對象。DME以對象為單位對系統進行管理。所有DME管理操作有一個一致的界面和風格:通過與對象通信。這種設計的很大好處是模塊性很強,完全是一種面向對象的管理方式,系統易於管理和開發。ISV們可以建立自己的某些特定管理功能的對象庫或被管對象庫,然後將其加入到已有的管理應用程序中。這一切由於DME面向對象的管理方式而變得簡單。

DME有兩個關鍵概念:應用程序服務和框架(Framework)。應用程序服務提供一些最重要的系統管理功能,而框架則提供開發系統管理應用程序所用的構造模塊(buildingblock)。這種設計提供了與現有解決方案的一致性,並可在多廠商分散式網路環境中進行互操作。DME應用程序服務包括軟體管理(SoftwareManagement)、許可權管理(LicenseManagement)、列印服務(PrintingServices)和事件管理(EventManagement)。它們以一組模塊和API的形式提供,有一個一致的用戶界面。DME還提供機制,使開發商可以很容易地加入新的服務。DME框架由一組功能全面的構造模塊組成,使新網管應用程序的開發變得簡單。這些組成是:

管理請求代理(MRB,ManagementRequestBrokers)MRB是DME框架的核心組成。在DME下,所有對對象的請求都被MRB接收。MRB負責找到這個對象在網路中的位置,然後轉發請求。MRB支持現有的網路管理協議SNMP、CMIP,用它們收集網路中的設備信息。MRB還支持基於RPC(RemoteProcedureCall)的管理協議。

對象伺服器對象伺服器用來管理和維護網路中的對象。DME提供兩種類型的對象伺服器,一個用於短期任務(如更換口令等),另一個用於長期任務(如監視一個網路)。

事件管理服務當網路中出現問題或發生變化時,需要通知管理應用程序。DME的事件管理服務提供了轉發、登錄和過濾這類通知的功能,可以對過濾器進行編程來分析一個事件通告的屬性,並將此事件與某個特定的動作聯繫起來。另外,為了使此服務易於使用,DME還提供了用於定義事件的高級模板語言。

數據管理服務DME提供了一個管理資料庫,用來存放網路被管對象的有關數據信息。此管理資料庫存放在磁碟上。目前,DME的主要問題是缺乏支持,尚未得到進一步的實踐檢驗。

12.SNMP安裝配置

(1)Linux下的安裝參考Net-SNMP安裝

(2)Windows 2000上配置SNMP服務

在Windows2000下安裝SNMP

1)打開Windows 2000控制面板

2)雙擊「添加與刪除程序」圖標

3)選擇添加與刪除Windows組件,組件面板顯現。

4)勾上管理和監控工具箱

5)單擊「詳細」

6)勾上簡單網管協議並單擊確定

7)單擊下一步繼續直到完成。

配置Windows2000的SNMP服務

1)打開Windows 2000控制面板

2)雙擊管理工具圖標

3)雙擊服務圖標

4)選擇SNMP Service

5)編輯屬性,選擇代理標籤

6)確認Contact和location被選中

7)選擇陷井標籤

8)敲入Community Name:public

9)單擊加入到列表

10)在陷井目的地,單擊Add,並填入Ip address.

11)單擊確定

12)選擇安全標籤

13)高亮public並單擊編輯,將Community Rightes改為Read Create

14)單擊確定

15)停止SNMP 服務,並重起

16)雙擊SNMP Trap Service,選擇起動方式「自動」

17)單擊確定

18)停止SNMP Trap Service並重啟

13.NET-SNMP使用

見文檔《net-snmp安裝配置手冊.pdf》  net-snmp安裝配置手冊.pdf (508.21 KB, 下載次數: 43)

2011-1-25 11:36 上傳下載次數: 43

14.參考URL

http://net-snmp.cn/snmp/SNMP-study.html
       http://net-snmp.cn/snmp/snmp2.html
       http://www.cnpaf.net/Class/SNMP/200510/5038.html
       http://www.cnpaf.net/Class/SNMP/200408/43.html
       http://www.cnpaf.net/Class/SNMP/200408/44.html
       http://www.cnpaf.net/Class/SNMP/200408/42.html
       http://www.cnpaf.net/Class/SNMP/200510/5037.html
       http://www.cnpaf.net/Class/SNMP/200408/41.html
       http://www.cnpaf.net/Class/SNMP/200408/40.html
       http://www.cnpaf.net/Class/SNMP/200408/39.html
       http://www.cnpaf.net/Class/SNMP/200408/37.html
       http://www.cnpaf.net/Class/SNMP/200408/36.html
       http://www.cnpaf.net/Class/SNMP/200408/35.html
       相關站點
       SNMP協議開發樂園 http://net-snmp.cn/
       中國協議網 http://www.cnpaf.net




[火星人 ] SNMP協議總結已經有507次圍觀

http://coctec.com/docs/service/show-post-2365.html