時間:2008-10-15 09:26:00來源:ronggang
圖2 交換機硬件系統結構及Agent系統結構模型[/align]
3 定義和擴充MIB
IETF 在RFC1155 規(guī)定了SNMP MIB 能夠使用的數據類型及如何描述和命名MIB中的管理對象類。SNMP MIB是圍繞管理對象進行組織的,每個對象從本質上講是代表被管設備某一特性的變量,RFC1155 規(guī)定SNMP MIB用ASN.1來命名所有的管理對象。ASN.1定義了一個樹狀的名字空間,每一對象的名字都反映了該對象在這一樹中的位置,對應于樹中的一個葉子對象。
IETF在RFC 1213 定義了標準MIB-II。利用MIB-II,網絡管理設備可以方便地獲知被管理設備的進出、口流量,但不容易得到整個局域網的流量,也無法對日常通信量進行歷史分析。RMON MIB的出現解決了該問題,IETF在RFC 1271 定義了RMON MIB 。RMON MIB由一組統計數據、分析數據和診斷數據構成。在不改變SNMP協議的條件下,擴充了管理信息庫MIB-II,增強了網絡管理的功能。根據加固交換機的實際監(jiān)視情況,我們有選擇地實現了RMON MIB中如下幾個組:
(1) 統計組(statistics): 維護Agent監(jiān)視的每一子網的基本使用和錯誤統計。
(2) 歷史組(history): 記錄從統計組可得到的信息的周期性統計樣本。
(3) 警報組(alarm): 允許網管工作站人員為RMON Agent記錄的任何計數或整數設置采樣間隔和報警閾值。
(4) 主機組(host): 包含關于連接到子網上的主機的各種流量的計數。
(5) 事件組(event): 一個關于由RMON Agent產生的所有事件的表。
對于加固以太網交換機MIB的構建除了盡量支持標準的MIB-II、RMON MIB外,根據交換機軟硬件所能提供的網絡管理能力,還創(chuàng)建了私有的MIB庫。私有MIB庫由以下幾個組構成:
(1) 系統信息組(SysInfo): 系統信息組主要描述交換機全局的只讀寄存器信息。
(2) 系統配置組(Config): 系統配置組主要描述交換機全局可讀寫的寄存器信息。
(3) 模塊組(Module): 描述每個交換模塊的相關寄存器信息。
(4) 端口組(Port): 描述每個交換端口的相關寄存器信息。
(5) 虛擬局域網組(VLAN): 虛擬局域網組描述有關虛擬局域網的設置信息。
以下以系統信息組(SysInfo),來說明MIB庫的構建情況。系統信息組(SysInfo),主要包含以下對象:
1) InfoBoardRevision:交換機主背板修訂版本。
2) InfoPeakBufferUsed:交換機中緩存的大小。
3) InfoAddrCapacity:最多支持的MAC地址。
4) InfoSelfTestFailed:系統自檢信息。
5) InfoLedNumber:交換機LED 指示燈數量。
6) InfoVisualIndicatorMode:LED指示燈顯示模式。
將確定的管理對象用ASN.1進行描述與組織,形成MIB。由于MIB文件是用ASN.1編寫的ASCII文本文件,需要“翻譯”成C/C++的數據結構才能用程序實現。本文采用了WindNet SNMP提供的MIB Complier工具,將用ASN.1描述的MIB文件編譯為C語言格式源代碼。
4 嵌入式 Agent軟件的設計與實現
4.1嵌入式 Agent的軟件結構
嵌入式Agent軟件一般包括以下5個模塊,如圖3所示。
[align=center]
圖3 嵌入式Agent軟件結構[/align]
(1) 初始化模塊
初始化模塊主要負責傳輸接口初始化、配置數據存取、以及MIB的初始化。VxWorks操作系統啟動成功后,Agent軟件開始運行,并啟動初始化模塊,初始化模塊首先初始化MIB虛擬樹,以供處理時查詢;其次初始化UDP接口,打開應用層與傳輸層的接口;最后讀取配置文件的數據,并根據這些數據設置代理進程和MIB的初始化變量。
(2) Socket通信模塊
通信功能是Agent的重要功能之一.它實現SNMP Agent與SNMP Manager之間的兩個方向的通信。SNMP Manager和SNMP Agent之間通過SNMP簡單網絡管理協議來實現通信,即SNMP over TCP/IP。為了確保SNMP協議的簡單性,一般選用UDP作為其傳輸層協議,每個SNMP報文必須能夠在單個UDP數據報中傳送。網絡管理站通過協議交換SNMP報文來實現通信。除Trap-PDU使用端口162外,其它SNMP報文使用端口161進行通信。
(3) Trap處理模塊
當Agent檢測到某個特定的事件,便調用Trap處理模塊構造一個Trap報文。Trap處理模塊對內部格式的Trap報文信息進行ASN.1格式編碼。通過套接字接口將SNMP Trap報文交給Socket通信處理模塊然后發(fā)送給網絡管理站。一般來說,交換機啟動后,會向管理站發(fā)送一個系統啟動的Trap報文,通知網絡管理站代理已經啟動。
(4) PDU處理模塊
初始化模塊初始化MIB庫后,啟動PDU處理模塊,以備接收SNMP報文和構造SNMP響應報文。PDU處理模塊按以下順序處理SNMP報文。
1) 語法分析并轉換成內部格式
因為ASN.1格式允許使用變長字段,因此SNMP報文的字段不可能直接映射到代理進程代碼的固定內部數據結構中。對SNMP報文進行語法分析,并將其轉換成一個可用的內部數據結構,代理進程代碼可以對該數據結構進行處理。
2) 鑒別和授權
根據SNMP報文的共同體字段對其進行身份認證,若認證失敗則將報文丟棄,認證通過交給MIB管理例程模塊進行處理。
3) 構建響應報文
在命令執(zhí)行完以后,根據命令的執(zhí)行情況構建響應報文,并將其轉化為ASN.1格式,交給Socket通信模塊傳輸到網絡管理站。
(5) MIB管理例程模塊
該模塊利用某些查找算法查找各MIB對象并實現對各組MIB對象的Get和Set操作。在以太網交換機Agent軟件設計過程中我們根據各個MIB變量的實際情況,將MIB庫中的對象分為兩種,實時性對象與非實時性對象。對于實時性對象,每次當查詢到該對象,便通過調用字符設備驅動程序讀取或設置交換機硬件上的相關信息;對于非實時性對象,在內存中保持一個靜態(tài)變量值,該靜態(tài)值在代理進程初始化時進行賦初值。若只讀取該對象值則不需要讀取硬件信息,只返回此靜態(tài)變量值就夠了。若設置該對象,即對它進行寫操作,必須通過調用字符設備驅動程序設置硬件上的相關信息,同時相應的改變該靜態(tài)變量值,以備以后讀取時所用。
4.2 SNMP Agent軟件開發(fā)及測試流程
在VxWorks實時系統下利用Tornado 綜合開發(fā)工具和WindNet網管開發(fā)工具進行交換機SNMP Agent的開發(fā)和測試,可以分以下幾個步驟進行。
(1) 為預先定義好的MIB對象編寫管理操作例程;
(2) 編譯生成Agent目標代碼,啟動目標機;
(3) 根據目標機具體芯片(MPC8260)配置宿主機環(huán)境;
(4) 配置目標服務器,利用CrossWind圖形化調試工具進行應用程序調試;
(5) 調試通過后,利用HP公司的SNMP++ Browser網絡管理軟件對交換機SNMP Agent進行測試,通過它對MIB變量進行查詢、遍歷、設置等操作。
5 結束語
由于SNMP的簡單性與實用性,已經成為TCP/IP網絡事實上的管理標準。目前越來越多的網絡產品直接提供了SNMP接口。筆者結合三層加固以太網交換機網絡管理系統,在VxWorks 嵌入式操作系統平臺上,利用WindNet SNMP軟件包實現了完整的SNMP Agent。它支持MIB-II、私有MIB、RMON MIB,為網絡管理站提供了交換機內部豐富的原始管理數據,該交換機現己提交總參通信部進行軍隊試用。本加固以太網交換機嵌入式Agent的開發(fā)和測試方法對于開發(fā)路由器、DSL Modem等其它網絡產品SNMP Agent同樣具有參考價值。
參考文獻
1. IETF RFC 1157, Simple Network Management Protocol (SNMP),1990.1
2. IETF RFC 1905, Protocol Operations for Version 2 of the Simple Network Management Protocol,1996.1
3. Vxworks_net_programmers_guide, WindRiver System,1999.5
4. GT-48310 Datasheet. Galileo Technology, 1998
5. 芩賢道,安常青. 網絡管理協議及應用開發(fā). 清華大學出版社,1998.7
6. 路曉村,徐宏,王泰東 等譯.嵌入式系統TCP/IP應用層協議,2003.4
標簽:
傳動網版權與免責聲明:凡本網注明[來源:傳動網]的所有文字、圖片、音視和視頻文件,版權均為傳動網(www.cdcst56.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
相關資訊
產品新聞
更多>2025-12-15
2025-12-12
2025-12-12
2025-12-10
2025-11-20
2025-11-10