SNMP網絡管理

網絡管理的歷史

美國國防部設計了世界上頭幾個包交換網之一的ARPANET,在70年代,TCP/IP協議族正式被定爲軍方通信標準,隨着此協議的廣泛使用,網絡管理成了一件大事。在80年代未和90年代初,網絡迅速發展,許多子網數目的增多使監視網絡活動成爲一種必須。

在網絡管理的初期,對網絡的管理停留在使用ICMP和PING的基礎上,但是隨着網絡內主機數據的不斷增多,這種簡單的工具已經不可能完成網絡管理的工作了。

SNMP歷史

隨着網絡數目與網絡內主機數目的日益增多,單純依靠一些網絡專業進行網絡管理已經不可能了,必須有一種通行的網絡管理標準以及相應的管理工具使普通人也能夠管理網絡。第一個相關的協議是SGMP,它提供了一種直接監視網關的方法,也因此成了一種通用的網絡管理工具。下來,有三種可供選擇的管理工具:HEMS,SNMP和建立在TCP/IP基礎上的CMIP(CMOT),因爲需要使用ISO/OSI模型進行網絡管理,SNMP首選CMOT作爲管理工具。基本的SNMP已經被廣泛使用了,所有的網絡產品都提供對SNMP的支持,新開發的具有遠程管理能力的SNMP是RMON,它使管理人員可以將整個子網進行管理,而不是對整個子網內的設備進行管理。

一些定義

SNMP,Simple Network Management Protocol:簡單網絡管理協議
它是一個標準的用於管理IP網絡上結點的協議。此協議包括了監視和控制變量集以及用於監視設備的兩個數據格式:SMI和MIB。
MIB,Management Information Base:管理信息庫
由網絡管理協議訪問的管理對象數據庫,它包括SNMP可以通過網絡設備的SNMP管理代理進行設置的變量。
SMI,Structure of Management Information:管理信息結構
用於定義通過網絡管理協議可訪問的對象的規則。SMI定義在MIB中使用的數據類型及網絡資源在MIB中的名稱或表示。
ASN.1,Abstract Syntax Notation One:抽象語法定義
用於定義語法的正式語言,在SNMP中它用於定義SNMP協議數據單元和對象的格式。
PDU,Protocol Data Unit:協議數據單元
在網絡中傳送的數據包。
BER,basic encoding rules:基本編碼規則
由CCITT (X.209)和ISO (ISO 8825)指定的編碼規則,它描述瞭如何將ASN.1類型表示爲字符串。

SNMP介紹

使用SNMP進行網絡管理需要下面幾個重要部分:管理基站,管理代理,管理信息庫和網絡管理工具。管理基站通常是一個獨立的設備,它用作網絡管理者進行網絡管理的用戶接口。基站上必須裝備有管理軟件,管理員可以使用的用戶接口和從MIB取得信息的數據庫,同時爲了進行網絡管理它應該具備將管理命令發出基站的能力。

管理代理是一種網絡設備,如主機,網橋,路由器和集線器等,這些設備都必須能夠接收管理基站發來的信息,它們的狀態也必須可以由管理基站監視。管理代理響應基站的請求進行相應的操作,也可以在沒有請求的情況下向基站發送信息。

MIB是對象的集合,它代表網絡中可以管理的資源和設備。每個對象基本上是一個數據變量,它代表被管理的對象的一方面的信息。

最後一個方面是管理協議,也就是SNMP,SNMP的基本功能是:取得,設置和接收代理髮送的意外信息。取得指的是基站發送請求,代理根據這個請求回送相應的數據,設置是基站設置管理對象(也就是代理)的值,接收收代理髮送的意外信息是指代理可以在基站未請求的狀態下向基站報告發生的意外情況。

MIB和對象

MIB包括了對象列表,這些對象與指示對象類型的OBJECT IDENTIFIER相關。MIB的結構是樹形結構,有兩種方式可以訪問MIB中對象的值,一種是快速訪問,另一種慢速訪問,快速訪問時只用輸入一些數據,慢速訪問時要加上其它信息。

SNMP MIB是對象的定義是十分嚴格的,定義指定了對象的數據類型,允許的形式,取值範圍和與其它MIB對象的關係。ASN.1定義方法用來定義每個對象,同時也定義整個MIB結構。

有兩種不同對象數據結構:通用類型的專用類型,通用類型指的是整數,字符串,空值,對象標識,序列和序列號;專用類型是指網絡地址,IP地址,記數器,標準等。

若要定義對象自身,必須使用ASN.1。下面是一個基本的定義結構:

        <模塊名> DEFINITIONS ::=
                BEGIN
                        EXPORTS
                        IMPORTS
                        AssignmentList
                End

軟件

應用程序可以顯示SNMP數據,NAS公司開發的應用程序HNMS就是這方面的一個比較好的工具。詳細情況請參閱:http://www.nas.nasa.gov/Groups/LAN/Trouble/HNMS.html

如果不想花錢可以在下面一些地方取得免費的管理軟件

  • ftp://ftp.ida.liu.se/pub/isode-snmpV2/isode-8.tar.gz
  • ftp://allspice.lcs.mit.edu/pub/snmp/
  • ftp://ftp.net.cmu.edu/pub/snmp-dist/cmu-snmp2.1.2.tar
  • ftp://ftp.cs.utwente.nl:/pub/src/snmp
  • ftp://ftp.ece.ucdavis.edu/pub/snmp/ucd-snmp.tar.gz
  • http://www.cs.tu-bs.de/ibr/projects/nm/tkined/
  • http://www.cs.tu-bs.de/ibr/projects/nm/scotty/

體系結構

  • 所有在應用層下的TCP/IP層都有它自己的SNMP結構
  • 硬件製造商可以在它的產品中實現了相應的管理結構
  • 從圖上可以看到有許多MIB,但服務器只有一臺

簡單網絡管理體系結構

服務器處理過程

  • 基站發送的請求僅有兩種類型,取值和賦值
  • 一個請求可以進行多個操作

SNMP數據處理流程圖


ASN.1

  • ASN.1是用於定義MIB對象的高層計算機語言
  • SNMP使用ASN.1子集的基本類型:整數,字符串,對象標識符,序列和空值
  • BER用於將ASN.1編譯爲SNMP可以傳送的字符串,在SNMP代理間傳送。對於變量ASN.1使用詞典順序進行有序排列,並定義了層次狀態的名字空間
  • 詞典式排序可以使服務器不需要知道被請求的變量的大小而直接響應請求。
  • 所有的變量都有後後綴iso.org.dod.internet.mgmt.mib1.3.6.1.2.1

MIB樹結構

PDU

  • 客戶可以發送以下三個基本命令:設置,讀取和取下一個
  • 設置和讀取指令使服務器進行直接變量映射
  • 取下一個指令指定要取的變量名,服務器根據變量當前所排的字典序返回指定變量名下一個變量的值,在不知道表大小的時候這條指令十分有用
  • 在層次的樹狀結構中可以一定前進一個結點,當然這樣會因爲要多次發送請求和相應於請求的數據而對網絡造成不必要的壓力,也可以在樹狀結構中一次取得多個點的數據
  • 如果發生意外情況,客戶會向服務器的162端口發送一個消息,告知服務器指定的變量值發生了變化。通常由服務器請求而獲得的數據由服務器的161端口接收。

Hash表設計

  • Hash表用於快速查找變量,Hash表是一個指針數組,每個數組指向一組具有相同Hash值的結點。
  • 如果需要查找MIB變量的值,服務器根據變量名的數字表示經過Hash函數計算後得到數組索引值,通過查找數組相應元素指向的結點可以找到需要的數據
  • 而在MIB中的每個元素除了使用字典序進行排序之外,還擁有一個指向下一個元素的指針,這個指針在執行取下一個指令時特別有用,在其中還包括了ASN.1名稱,和能夠作於此變量的所有函數的地址以及內部變量地址
  • 在服務器啓動時初始化這些變量的值

SNMP總結

SNMP是一種易於實現的基本的網絡管理工具,它能夠滿足短期的管理要求。因爲基於OSI的管理協議現在進展緩慢,所以它起到了一個重要的補充作用。

SNMP協議提供了用於定義網絡信息和框架和用於交換信息的協議標準。SNMP模型引入了管理器和代理的概念,管理器指的是以人類管理員身份負責所有網絡(或部分網絡)的軟件。代理指的被管理設備中的軟件,它用以完成管理器所需要進行的局部管理和應急通知管理器的功能。

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