[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 網絡管理 > 局域網技術 > 正文
網絡管理和SNMP協議
http://www.ccw.com.cn 季風 (2001-04-19 15:38:00)
網絡管理概述 
目前網絡技術日新月異,網絡的復雜性在不斷增長,對網絡管理的要求也日益增加。 
傳統的系統管理員關心的問題是諸多問題,如安裝配置、備份恢復、資源共享、系統安全和性能優化等等,都是當今網絡管理的重要方面。不僅如此,網絡的復雜性使得被管理的對象在系統中不是集中的,而是分散的。分布式的管理必然要求網絡管理員在網絡的協議層次結構上對系統管理做出重新的認識,即從物理層、鏈路層、網絡層、傳輸層和應用層的角度重新考慮系統管理的涵蓋內容。綜合了這諸多方面,加上面向應用(或業務)的管理能力,是當今網絡管理軟件的主攻方向。 
有關網絡管理的內涵和網絡管理軟件的分類是需要另外撰文敘述的,本文只是簡單地介紹網絡管理軟件的基本要素和網絡管理協議的例子SNMP。 
 
網絡管理系統的要素 
一個典型的網絡管理系統包括四個要素:管理員、管理代理、管理信息數據庫、代理服務設備。一般說來,前三個要素是必需的,第四個只是可選項。 
1.管理員(Manager) 
網絡管理軟件的重要功能之一,就是協助網絡管理員完成管理整個網絡的工作。網絡管理軟件要求管理代理定期收集重要的設備信息,收集到的信息將用確定獨立的網絡設備、部分網絡、或整個網絡運行的狀態是否正常。管理員應該定期查詢管理代理收集到的有關主機運轉狀態、配置及性能等的信息。 
2.管理代理(Agent) 
網絡管理代理是駐留在網絡設備中的軟件模塊,這裡的設備可以是UNIX工作站、網絡打印機,也可以是其它的網絡設備。管理代理軟件可以獲得本地設備的運轉狀態、設備特性、系統配置等相關信息。管理代理軟件就象是每個被管理設備的信息經紀人,它們完成網絡管理員布置的採集信息的任務。管理代理軟件所起的作用是,充當管理系統與管理代理軟件駐留設備之間的中介,通過控制設備的管理信息數據庫(MIB)中的信息來管理該設備。管理代理軟件可以把網絡管理員發出的命令按照標準的網絡格式進行轉化,收集所需的信息,之返回正確的響應。在某些情況下,管理員也可以通過設置某個MIB對象來命令系統進行某種操作。 
路由器、交換器、集線器等許多網絡設備的管理代理軟件一般是由原網絡設備制造商提供的,它可以作為底層系統的一部分、也可以作為可選的升級模塊。設備廠商決定他們的管理代理軟件可以控制哪些MIB對象,哪些對象可以反映管理代理軟件開發者感興趣的問題。 
3.管理信息數據庫(MIB) 
管理信息數據庫(MIB)定義了一種數據對象,它可以被網絡管理系統控制。MIB是一個信息存儲庫,這裡包括了數千個數據對象,網絡管理員可以通過直接控制這些數據對象去控制、配置或監控網絡設備。網絡管理系統可以通過網絡管理代理軟件來控制MIB數據對象。不管到底有多少個MIB數據對象,管理代理都需要維持它們的一致性,這也是管理代理軟件的任務之一。現在已經定義的有幾種通用的標準管理信息數據庫,這些數據庫中包括了必須在網絡設備中支持的特殊對象,所以這幾種MIB可以支持簡單網絡管理協議(SNMP)。使用最廣泛、最通用的MIB是MIB-II。為了利用不同的網絡組件和技術,又開發了一些其它種類的MIB,它們在RFC(Request for Comments)中有所記錄。 
4.代理設備(Proxy) 
代理設備在標準網絡管理員軟件和不直接支持該標準協議的系統之間起橋樑作用。利用代理設備,不需要升級整個網絡就可以實現從舊協議到新版本的過渡。 
 
對網絡管理系統來說,重要的是管理員和代理之間所使用的協議,如SNMP,和它們共同遵循的MIB庫。下面,我們就分別介紹。 
 
SNMP協議概述 
SNMP(Simple Network Management Protocol)即簡單網絡管理協議,它為網絡管理系統提供了底層網絡管理的框架。SNMP協議的應用范圍非常廣泛,諸多種類的網絡設備、軟件和系統中都有所採用,主要是因為SNMP協議有如下幾個特點: 
首先,相對其它種類的網絡管理體系或管理協議而言,SNMP易實現。SNMP的管理協議、MIB及其它相關的體系框架能夠在各種不同類型的設備上運行,包括低檔的個人電腦到高檔的大型主機、服務器、及路由器、交換器等網絡設備。一個SNMP管理代理組件在運行時不需要很大的內存空間,因此也就不需要太強的計算能力。SNMP協議一般可以在目標系統中快速開發出來,所以它很容易在面市的新產品或升級的老產品中出現。盡管SNMP協議缺少其它網絡管理協議的某些優點,但它設計簡單、擴展靈活、易使用,這些特點大大彌補了SNMP協議應用中的其他不足。 
 
其次,SNMP協議是開放的免費產品。只有經過IETF的標準議程批準(IETF是IAB下設的一個組織),才可以改動SNMP協議;廠商們也可以私下改動SNMP協議,但這樣作的結果很可能得不償失,因為他們必須說服其他廠商和用戶支持他們對SNMP協議的非標準改進,而這樣做卻有悖他們的初衷。 
 
第三,SNMP協議有很多詳細的文檔資料(例如RFC,以及其它的一些文章、說明書等),網絡業界對這個協議也有著較深入的理解,這些都是SNMP協議近一步發展和改進的基礎。 
 
最,SNMP協議可用控制各種設備。比如說電話系統、環境控制設備,以及其它可接入網絡且需要控制的設備等,這些非傳統裝備都可以使用SNMP協議。 
 
正是由有了上述這些特點,SNMP協議已經被認為是網絡設備廠商、應用軟件開發者及終端用戶的首選管理協議。 
SNMP是一種無連接協議,無連接的意思是它不支持象TELNET或FTP這種專門的連接。通過使用請求報文和返回響應的方式,SNMP在管理代理和管理員之間傳送信息。這種機制減輕了管理代理的負擔,它不必要非得支持其它協議及基連接模式的處理過程。因此,SNMP協議提供了一種獨有的機制來處理可靠性和故障檢測方面的問題。 
另外,網絡管理系統通常安裝在一個比較大的網絡環境中,其中包括大量的不同種類的網絡和網絡設備。因此,為劃分管理職責,應該把整個網絡分成若幹個用戶分區,可以把滿足以下條件的網絡設備歸為同一個SNMP分區:它們可以提供用實現分區所需要的安全性方面的分界線。SNMP協議支持這種基分區名(community string)信息的安全模型,可以通過物理方式把它添加到選定的分區內的每個網絡設備上。目前SNMP協議中基分區的身份驗証模型被認是為很不牢靠的,它存在一個嚴重的安全問題。主要原因是SNMP協議並不提供加密功能,也不保証在SNMP數據包交換過程中不能從網絡中直接拷貝分區信息。只需使用一個數據包捕獲工具就可把整個SNMP數據包解密,這樣分區名就暴露無遺。因為這個原因,大多數站點禁止管理代理設備的設置操作。但這樣做有一個副作用,這樣一來只能監控數據對象的值而不能改動它們,限制了SNMP協議的可用性。 
 
SNMP的命令和報文 
SNMP協議定義了數據包的格式,及網絡管理員和管理代理之間的信息交換,它還控制著管理代理的MIB數據對象。因此,可用處理管理代理定義的各種任務。SNMP協議之所以易使用,這是因為它對外提供了三種用控制MIB對象的基本操作命令。它們是:Set 、Get 和 Trap : 
Set:它是一個特權命令,因為可以通過它來改動設備的配置或控制設備的運轉狀態。 
 
Get:它是SNMP協議中使用率最高的一個命令,因為該命令是從網絡設備中獲得管理信息的基本方式。 
 
Trap:它的功能就是在網絡管理系統沒有明確要求的前提下,由管理代理通知網絡管理系統有一些特別的情況或問題發生了。 
 
SNMP協議也定義了執行以上三個命令時的報文流, 但它沒有定義其它的設備管理代理命令,可應用MIB數據對象的操作只有Set和Get命令,這兩個命令的目標是數據對象的值。比如說,SNMP協議中沒有定義reboot(重啟)命令;然而,管理代理軟件把MIB數據對象和設備的內部命令聯系起來,這樣就可以實現某些特殊的命令操作。如果現在想要重啟某個設備,管理系統就把某個與重啟有關的MIB數據對象的值設為1(我們的假定)。這樣就會觸發管理代理執行重新啟動設備的命令,同時還把這個MIB數據對象重新設置為原來的狀態。 
一條SNMP報文由三個部分組成:版本域(version field),分區域(community field)和SNMP協議數據單元域(SNMP protocol data unit field),數據包的長度不是固定的。 
版本域:這個域用說明現在使用的是哪個版本的SNMP協議。目前,version 1是使用最廣泛的SNMP協議。 
 
分區域:分區(community)是基本的安全機制,用實現SNMP網絡管理員訪問SNMP管理代理時的身份驗証。分區名(Community name)是管理代理的口令,管理員被允許訪問數據對象的前提就是網絡管理員知道網絡代理的口令。如果把配置管理代理成可以執行Trap命令,當網絡管理員用一個錯誤的分區名查詢管理代理時,系統就發送一個autenticationFailure trap報文。 
 
協議數據單元域:SNMPv1的PDU有五種類型,有些是報文請求(Request),有些則是響應(Response)。它們包括:GetRequest、GetNextRequest、SetRequest、GetResponse、Trap 。SNMPv2又增加了兩種PDU:GetBulkRequest和InformRequest 。 
 
 
SNMP管理員使用GetRequest從擁有SNMP代理的網絡設備中檢索信息,SNMP代理以GetResponse消息響應GetRequest。可以交換的信息很多,如系統的名字,系統自啟動正常運行的時間,系統中的網絡接口數等等。GetRequest和GetNextRequest結合起來使用可以獲得一個表中的對象。GetRequest取回一個特定對象;而使用GetNextRequest則是請求表中的下一個對象。使用SetRequest可以對一個設備中的參數進行遠程配置。Set-Request可以設置設備的名字,關掉一個端口或清除一個地址解析表中的項。Trap即SNMP陷阱,是SNMP代理發送給管理站的非請求消息。這些消息告知管理站本設備發生了一個特定事件,如端口失敗,掉電重起等,管理站可相應的作出處理。 
 
MIB概述 
管理信息數據庫(MIB)是一個信息存儲庫,它包含了管理代理中的有關配置和性能的數據,有一個組織體系和公共結構,其中包含分屬不同組的許多個數據對象。如下圖所示。 
 
 
MIB數據對象以一種樹狀分層結構進行組織,這個樹狀結構中的每個分枝都有一個專用的名字和一個數字形式的標識符。上圖表示的是標準MIB的組織體系,列出了從MIB結構樹的樹根到各層樹枝的全部內容。結構樹的分枝實際表示的是數據對象的邏輯分組。而樹葉,有時候也叫節點(node),代表了各個數據對象。在結構樹中使用子樹表示增加的中間分枝和增加的樹葉。 
使用這個樹狀分層結構,MIB瀏覽器能夠以一種方便而且簡潔的方式訪問整個MIB數據庫。MIB瀏覽器是這樣一種工具,它可以遍歷整棵MIB結構樹,通常以圖形顯示的形式來表示各個分枝和樹葉對象。可以通過其數字標識符來查找MIB中的數據對象,這個數字標識符號從結構樹的頂部(或根部)開始,直到各個葉子節點(即數據對象)為止。這種訪問方式和文件系統的組織方式一致。兩者的主要區別在文件系統中的路徑名可以以絕對也可以以相對方式表示,而MIB數據對象只能以絕對方式表示,不能使用相對方式。例如,在圖中,iso(1)位結構樹的最上方,而sysDescr(1)處在葉子節點的位置。現在看不到樹根root(.),其余所有的分枝都是從這裡擴展而來的。通常用帶點的符號來表示數據對象的標識符。要訪問數據對象sysDescr(1),其完整的標識符應該是這樣的:iso.org.dod.internet.mgmt.mib-2.system.sysDescr(這個標識符應該從左向右讀)。數據對象也可以以另一種更短的格式表示,即用數字形式標識符代替分枝名形式的表示形式。這樣,上面的那種形式的標識符iso.org.dod.internet.mgmt.mib-2.system.sysDescr 還可以用 1.3.6.1.2.1.1.1 來表示。這兩種表達格式的作用是一致的,都表示同一個MIB數據對象。盡管數字形式的標識符看起來更簡潔,選擇何種表達格式仍然是個人偏好問題。幸運的是,許多MIB瀏覽器可以以兩者中任何一種格式來表示數據對象,這使得兩種格式間的相互轉化非常容易。 
 
MIB的訪問方式 
在定義MIB數據對象時,訪問控制信息確定了可作用該數據對象的操作種類。SNMP協議有如下的MIB數據對象訪問方式: 
只讀方式(Read-only) 
 
可讀可寫(Read-write) 
 
禁止訪問(Not-accessible) 
 
網絡管理系統無法改動只讀方式的MIB數據對象,但可以通過Get或Trap命令讀取數據對象的值。在一件產品的使用期內,某些MIB的信息從不會改變。例如,MIB數據對象sysDescr,它代表System Description,包含了管理代理軟件所需要的廠商信息。確定某些數據對象為只讀還有另一個原因,即確保有關性能的信息及其它統計數據正確,不至因誤操作而改動它們。 
 
SNMP作為數據傳輸方法,和數據的組織形式MIB結合,為網絡管理系統提供了底層的保障。一個真正的網絡管理系統可以建立在SNMP之上,也可以建立在其他的網絡管理協議上,如CMIP等等,不過那也是需要另外撰文敘述的了。 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
 

★  樊強制作 歡迎分享  ★