技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 三層以太網(wǎng)交換機(jī)SNMP代理軟件的設(shè)計與實(shí)現(xiàn)

三層以太網(wǎng)交換機(jī)SNMP代理軟件的設(shè)計與實(shí)現(xiàn)

時間:2008-10-15 09:26:00來源:ronggang

導(dǎo)語:?本文對簡單網(wǎng)絡(luò)管理模型做了介紹,并在此基礎(chǔ)上重點(diǎn)分析了嵌入式SNMP Agent軟件結(jié)構(gòu)。文中討論的三層以太網(wǎng)交換機(jī)SNMP Agent開發(fā)流程對于開發(fā)路由器等其它網(wǎng)絡(luò)產(chǎn)品SNMP Agent同樣具有參考價值
摘 要:本文對簡單網(wǎng)絡(luò)管理模型做了介紹,并在此基礎(chǔ)上重點(diǎn)分析了嵌入式SNMP Agent軟件結(jié)構(gòu)。文中討論的三層以太網(wǎng)交換機(jī)SNMP Agent開發(fā)流程對于開發(fā)路由器等其它網(wǎng)絡(luò)產(chǎn)品SNMP Agent同樣具有參考價值。 關(guān)鍵詞:網(wǎng)絡(luò)管理 SNMP MIB 嵌入式Agent Abstract: This Paper introduces the model of Simple Network Management Protocol (SNMP), based on which analyzes the structure of embedded SNMP Agent. The development procedure of SNMP Agent that discussed in this paper is also valuable to which will develop the SNMP Agent on other Network product such as router. Keywords: Network Management, SNMP, MIB,embedded Agent 1 基于SNMP的網(wǎng)絡(luò)管理   網(wǎng)絡(luò)設(shè)備的復(fù)雜化、異構(gòu)化使得網(wǎng)絡(luò)管理不可或缺。目前存在:公共管理信息服務(wù)/公共管理信息協(xié)議(CMIS/CMIP)、局域網(wǎng)個人管理協(xié)議(LMMP)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)等幾種標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理協(xié)議。簡單網(wǎng)絡(luò)管理協(xié)議(SNMP,Simple Network Management Protocol)以下簡稱SNMP,由于其簡單與實(shí)用性,已經(jīng)成為TCP/IP網(wǎng)絡(luò)事實(shí)上的管理標(biāo)準(zhǔn)。現(xiàn)在所提的SNMP已經(jīng)不僅僅是指一種管理協(xié)議,而是一種網(wǎng)絡(luò)管理體系結(jié)構(gòu)。   SNMP遵循標(biāo)準(zhǔn)的Client/Server結(jié)構(gòu),它的管理模型包括四個主要元素,即管理者(Manager),代理(Agent),管理信息庫(MIB,Management Information Base)以及管理協(xié)議SNMP。SNMP網(wǎng)絡(luò)管理模型如圖1所示。 [align=center] 圖1 SNMP網(wǎng)絡(luò)管理模型[/align]   Manager是實(shí)施網(wǎng)絡(luò)管理的處理實(shí)體,它定期查詢Agent收集到的相關(guān)信息,實(shí)現(xiàn)對網(wǎng)絡(luò)中各種資源的監(jiān)測;并負(fù)責(zé)發(fā)出網(wǎng)絡(luò)管理操作的各種指令,完成各種網(wǎng)絡(luò)管理功能。在模型中起到Client的作用。   Agent定期收集和維護(hù)本地管理信息,響應(yīng)Manager的命令或操作請求。另外,Agent也可以將自身系統(tǒng)中的發(fā)生的事件主動通知給Manager??梢?,Agent在模型中擔(dān)任Server的角色。   MIB是被管對象的抽象集合,它規(guī)定了被管理設(shè)備須保存的數(shù)據(jù)項目和數(shù)據(jù)類型,以及每個數(shù)據(jù)項目所允許的操作等。Manager可通過SNMP協(xié)議對MIB進(jìn)行操作,實(shí)現(xiàn)對被管理設(shè)備的監(jiān)視和控制。   SNMP協(xié)議提供了Manager和Agent之間交換管理信息的方法,信息按照SNMP消息的形式進(jìn)行信息交換。SNMP每一個消息包括一個代表SNMP版本的版本號,一個用于消息認(rèn)證的共同體名,以及5種中的一種協(xié)議數(shù)據(jù)單元(PDU), 5種PDU對應(yīng)如下5種SNMP協(xié)議報文的操作。   ž GetRequest:Manager用來從Agent取得相關(guān)變量的值;   ž GetNextRequest:Manager用來從Agent取得相關(guān)變量的下一個變量的值;   ž SetRequest:Manager用來設(shè)置Agent上的相關(guān)變量的值;   ž GetResponse:Agent對Manager發(fā)送的應(yīng)答信息;   ž Trap:Agent在滿足一定的觸發(fā)條件時,向Manager報告異常事件。   Manager通常在工作站或高性能PC實(shí)現(xiàn),提供人機(jī)接口。Agent一般嵌入在被管理設(shè)備內(nèi)部提供標(biāo)準(zhǔn)SNMP接口。隨著微處理器技術(shù)、存儲器技術(shù),以及嵌入式操作系統(tǒng)的飛速發(fā)展,使得在交換機(jī)上嵌入Agent方便可行。   在筆者為總參通信部(十五項目)開發(fā)的三層加固以太網(wǎng)交換機(jī)(以下簡稱以太網(wǎng)交換機(jī))網(wǎng)管系統(tǒng)中,實(shí)現(xiàn)了嵌入式 Agent。下面結(jié)合該系統(tǒng),說明嵌入式Agent的設(shè)計與實(shí)現(xiàn)。 2 嵌入式 Agent系統(tǒng)結(jié)構(gòu)模型   加固以太網(wǎng)交換機(jī)對外提供80個10/100M以太網(wǎng)接口、10個千兆光纖接口、2個SDSL RJ11接口。該交換機(jī)系統(tǒng)的交換結(jié)構(gòu)采用交叉開關(guān)型,這樣交換機(jī)硬件主要由交叉開關(guān)、交換芯片、CPU模塊及SDSL模塊四個部分組成,如圖2所示。交叉開關(guān)采用Marvell公司的GT48304、三層10/100M以太網(wǎng)交換芯片和三層千兆交換芯片分別采用Marvell公司的GT48510和GT48520、 CPU采用Motorola公司的MPC8260,配置512M RAM、SDSL模塊芯片組采用GlobeSpan公司的OrionTM芯片組。   加固以太網(wǎng)交換機(jī)采用了美國WindRiver公司的VxWorks實(shí)時操作系統(tǒng),SNMP Agent的開發(fā)采用了該公司與VxWorks高度集成的WindNet開發(fā)工具。SNMP Agent 位于系統(tǒng)的CPU模塊上,實(shí)現(xiàn)交換模塊和SDSL模塊的統(tǒng)一管理,并通過系統(tǒng)以太網(wǎng)接口連接外部網(wǎng)管工作站Manager。 [align=center] 圖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ī)的實(shí)際監(jiān)視情況,我們有選擇地實(shí)現(xiàn)了RMON MIB中如下幾個組:   (1) 統(tǒng)計組(statistics): 維護(hù)Agent監(jiān)視的每一子網(wǎng)的基本使用和錯誤統(tǒng)計。   (2) 歷史組(history): 記錄從統(tǒng)計組可得到的信息的周期性統(tǒng)計樣本。   (3) 警報組(alarm): 允許網(wǎng)管工作站人員為RMON Agent記錄的任何計數(shù)或整數(shù)設(shè)置采樣間隔和報警閾值。  ?。?) 主機(jī)組(host): 包含關(guān)于連接到子網(wǎng)上的主機(jī)的各種流量的計數(shù)。   (5) 事件組(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è)計與實(shí)現(xiàn)   4.1嵌入式 Agent的軟件結(jié)構(gòu)   嵌入式Agent軟件一般包括以下5個模塊,如圖3所示。 [align=center] 圖3 嵌入式Agent軟件結(jié)構(gòu)[/align]  ?。?) 初始化模塊   初始化模塊主要負(fù)責(zé)傳輸接口初始化、配置數(shù)據(jù)存取、以及MIB的初始化。VxWorks操作系統(tǒng)啟動成功后,Agent軟件開始運(yùn)行,并啟動初始化模塊,初始化模塊首先初始化MIB虛擬樹,以供處理時查詢;其次初始化UDP接口,打開應(yīng)用層與傳輸層的接口;最后讀取配置文件的數(shù)據(jù),并根據(jù)這些數(shù)據(jù)設(shè)置代理進(jìn)程和MIB的初始化變量。   (2) Socket通信模塊   通信功能是Agent的重要功能之一.它實(shí)現(xiàn)SNMP Agent與SNMP Manager之間的兩個方向的通信。SNMP Manager和SNMP Agent之間通過SNMP簡單網(wǎng)絡(luò)管理協(xié)議來實(shí)現(xiàn)通信,即SNMP over TCP/IP。為了確保SNMP協(xié)議的簡單性,一般選用UDP作為其傳輸層協(xié)議,每個SNMP報文必須能夠在單個UDP數(shù)據(jù)報中傳送。網(wǎng)絡(luò)管理站通過協(xié)議交換SNMP報文來實(shí)現(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)部格式   因?yàn)锳SN.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對象并實(shí)現(xiàn)對各組MIB對象的Get和Set操作。在以太網(wǎng)交換機(jī)Agent軟件設(shè)計過程中我們根據(jù)各個MIB變量的實(shí)際情況,將MIB庫中的對象分為兩種,實(shí)時性對象與非實(shí)時性對象。對于實(shí)時性對象,每次當(dāng)查詢到該對象,便通過調(diào)用字符設(shè)備驅(qū)動程序讀取或設(shè)置交換機(jī)硬件上的相關(guān)信息;對于非實(shí)時性對象,在內(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實(shí)時系統(tǒng)下利用Tornado 綜合開發(fā)工具和WindNet網(wǎng)管開發(fā)工具進(jìn)行交換機(jī)SNMP Agent的開發(fā)和測試,可以分以下幾個步驟進(jìn)行。  ?。?) 為預(yù)先定義好的MIB對象編寫管理操作例程;  ?。?) 編譯生成Agent目標(biāo)代碼,啟動目標(biāo)機(jī);  ?。?) 根據(jù)目標(biāo)機(jī)具體芯片(MPC8260)配置宿主機(jī)環(huán)境;  ?。?) 配置目標(biāo)服務(wù)器,利用CrossWind圖形化調(diào)試工具進(jìn)行應(yīng)用程序調(diào)試;   (5) 調(diào)試通過后,利用HP公司的SNMP++ Browser網(wǎng)絡(luò)管理軟件對交換機(jī)SNMP Agent進(jìn)行測試,通過它對MIB變量進(jìn)行查詢、遍歷、設(shè)置等操作。 5 結(jié)束語   由于SNMP的簡單性與實(shí)用性,已經(jīng)成為TCP/IP網(wǎng)絡(luò)事實(shí)上的管理標(biāo)準(zhǔn)。目前越來越多的網(wǎng)絡(luò)產(chǎn)品直接提供了SNMP接口。筆者結(jié)合三層加固以太網(wǎng)交換機(jī)網(wǎng)絡(luò)管理系統(tǒng),在VxWorks 嵌入式操作系統(tǒng)平臺上,利用WindNet SNMP軟件包實(shí)現(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)簽:

點(diǎn)贊

分享到:

上一篇:基于dSPACE的雙繞組感應(yīng)發(fā)電...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(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)資訊

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號