簡單網絡管理協議SNMP

簡單網絡管理協議( SNMP )

在目前日益複雜、分散、多元化的網絡環境中充斥着各式各樣網絡設備,這使得網絡的管理、除錯變得困難,簡單網絡管理協議(SNMP) 是使用UDP 協議對網絡設備進行管理的一個框架,屬於應用級協議,它提供一組簡單標準的操作去收集、修改及交換網絡設備之間的網絡管理資訊,以便於監察和維護網絡設備,透過標準的SNMP,網管人員便可以更容易地管理複雜網絡,找出問題所在。

由於網絡管理資訊的急切性通常都不會很高,爲了避免網絡管理資訊的傳輸對網絡造成負擔,SNMP採用可靠性較?的UDP協議,UDP並不能擔保資料包傳到目的地,但對網絡管理來說,間中掉包問題不大,通常我們會爲管理軟件定下時間,如在一段時間來收不到回覆,便自動重發。

網管資訊庫(MIB)
SNMP被設計成適用於各類型的網絡設備,故它所管理的資訊亦隨着設備的不同而千差萬別,每種網絡或設備對其資料的表達方式亦存在差異,爲將這些資訊納入同一套管理系統,就須採用一套抽象的語法來描述所有類型的資訊,爲此,SNMP定義了網管資訊庫(MIB) ,階層性描述所有受管理資訊的屬性,並稱這些受管理的資訊爲SNMP物件(object)。 MIB可分爲標準(Standard) MIB及私人(Private) MIB兩大類,標準MIB適用於所有網絡設備,而Private MIB則由廠家自行定義,以反映設備的獨特變量值,合法的Private MIB需要向有關機構申請,務求令每一個Private MIB都是世上獨一無二的。

SNMP物件可能只是個純量,也可能是內含數個純量的表,SNMP採用OSI的抽象語法標註法(ASN.1)定義物件資料格式,SNMP物件由物件型別(type)、存取(access) 及語法(syntax) 所構成,'型別'是組易於人類辨識的字串代碼,它附有編號,'存取'可控制對該物件的讀寫,'語法'是該物件的資料結構,由ASN.1 語法所定義。符合ASN.1定義的MIB都能被彙編到有名的SNMP管理軟件,如HP OpenView, IBM Netview, Tivoli TME或CA Unicenter TNG,匯入不同網絡設備的MIB,再經過一些簡單程式控制,用戶便可以製作出一套能管理所有網絡設備的系統。

MIB 採用樹狀結構,爲一種階層式分類,每個節點皆有它特定的類型,以易於人類辨識的單字標記,並附有物件身份編號(OID),樹狀末端的所有葉片爲SNMP 定義的物件,而實際上在網絡之間傳遞的MID 爲OID。右圖爲MIB 樹狀基本結構


標準MIB 的基本OID開頭爲1.3.6.1.2.1 ,而Private MIB 的基本OID開頭爲1.3.6.1.4.1

以下爲Access Point - Orinoco AP2000 Private MIB 的其中一個物件資料結構:
================================================== ========
Definition of ORiNOCO MIB OID Tree used in the ORiNOCO Wireless Product Line
============================= =============================
lucent OBJECT IDENTIFIER ::= { enterprises 1751 }
mibs OBJECT IDENTIFIER ::= { lucent 2 }
orinocomibs OBJECT IDENTIFIER ::= { mibs 4 }
orinocoSys OBJECT IDENTIFIER ::= { orinocomibs 1 }

“iso(1).org(3).dod(6).internet(1).private(4).enterprise(1). lucent(1751).mibs(2).orinocomibs(4). orinocoSys(1) ”

oriSystemContactPhoneNumber OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The phone number for the contact person.
This object is supported by the following ORiNOCO Devices:
- Access Point 2000"
::= { orinocoSys 6 }

以上這個物件oriSystemContactPhoneNumber的OID爲1.3.6.1.4.1.1751.2.4.1.6.0 ,只要你把這個OID以標準的SNMP格式傳到AP2000 ,AP2000便會以準的SNMP格式回傳oriSystemContactPhoneNumber數值

SNMP的架構
SNMP是目前最普遍用於各式網際網絡(不特指Internet )的網管協定,SNMP如同其名、是個頗單純的協定,但其特點卻足以應付各種網絡的網管需求。

一個SNMP 網管系統,由代理器( AGENT ) 及網管系統(NMS) 組成,SNMP 代理器是附在網絡設備內的程式模塊,它可取得所依附裝置的網絡資訊,並透過網絡將這些資訊採用SNMP 協定提供予網管系統。

SNMP 代理器所依附裝置可以是任何形態的網絡設備,包括電腦主機、終端機、網絡印表機、路由器、 橋接器等等,這些裝置的規模有大有小,其計算能力、儲存空間等亦有限制,爲令SNMP 代理器能普遍安裝於各種網絡裝置,在定義時即考慮各裝置在網管需求的交集,並令代理器的存在不會對原裝置造成太大負擔。

網管系統(NMS) 通常是部專職的主機,它負責收集由各代理器傳來的網絡資訊,並提供網絡整體的分析、統計等圖表及數據,由於各裝置上的代理器被設計的很小巧,它們只負責迴應裝置的資訊,所以主要的計算負擔即落在NMS,故NMS 通常是配備有高速的CPU、大量記憶體、磁碟機空間的工作站級電腦,並且也配備良好的圖形操作介面以方便管理操作及圖表的輸出。

SNMP指令
SNMP v2定義了五種基本操作供網管系統(NMS)存取各SNMP代理器維護的變量,代理器也可不定時向NMS回覆異常情況(Trap)資訊,這些操作是

GetRequest (讀取請求),由NMS發送給代理器,用來讀取一個變量值。

GetNextRequest (讀取下一個請求),由NMS發送給代理器,用來讀取一個變量值,主要是用來讀取一個表中的項目值。

GetResponse (讀取回應) ,由代理器發送給NMS,以迴應GetRequest及GetNextRequest,包含NMS所請求的變量值。

SetRequest (設置請求),由NMS 發送給代理器,用來設置一個變量值。

Trap (異常情況),由代理器單向發送給NMS,用來報告一個異常情況,例如設備重新啓動,NMS 不會對Trap 作任何迴應。

不是所有網絡設備都有SNMP功能,廠家需要花額外人手去編寫代理器,對於一些廉價設備,這種投入不化算,用戶亦沒有這種要求,但對於一些中大型網絡中的設備,SNMP則是必需的。
發佈了44 篇原創文章 · 獲贊 2 · 訪問量 7673
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章