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