新聞中心

        EEPW首頁 > 設計應用 > 基于SNMP的SNMP仿真系統的設計及實現

        基于SNMP的SNMP仿真系統的設計及實現

        ——
        作者:李惠敏,張思卿 (鄭州科技職業學院 河南 鄭州 450002) 時間:2007-01-26 來源:《現代電子技術》 收藏

        當前,簡單網絡管理協議(simple network management protocol,snmp)已經成為事實上的網絡管理標志,得到了很大范圍內的應用,但snmp作為網絡管理的重要協議,在教學過程中發現學生難以掌握其工作原理和過程,為此設計了一個snmp仿真系統,可以輔助教學和學習,而且該系統本身也是基于snmp實現的,這對設計基于snmp的其他系統具有較強的實踐指導意義。

        1 仿真系統的總體框架結構

        本文引用地址:http://www.104case.com/article/21544.htm

        在我們設計的系統工作在局域網中,可用于課堂教學演示,幫助學生掌握snmp的工作原理,考慮到有些教學環境中只有一臺機器(如多媒體教室),在同一個主機上也能運行該系統。

        該系統采用客戶/服務器(client/server)模式,采用tcp/ip和snmp實現,從功能的角度看,該系統分為管理站軟件和代理端軟件2部分。從邏輯上看,該系統既是對snmp的實現,又是對snmp的仿真,其總體框架結構如圖1所示。


        2 仿真系統所實現的功能

        系統的功能實現依賴于以下幾個方面的要求:

        (1)對管理端主機行為的仿真;

        (2)對代理端主機行為的仿真;

        (3)對snmp的實現;

        (4)對相關信息的查看及打印;

        (5)為了實現以上要求,系統主要有4個相對獨立的模塊組成;運行在管理端主機上的管理端仿真模塊;運行在管理端主機上的管理端實現模塊,運行在代理端數據上的代理端仿真模塊,運行在代理端主機上的代理端實現模塊。

        管理端仿真模塊的功能如下:

        1)支持用戶查看和編輯mib-ii;

        2)用戶選擇snmp消息類型(get,set),并輸入相應的參數;

        3)用戶選擇生成編碼命令;

        4)用戶選擇查看編碼結果命令;

        5)用戶選擇發送snmp消息命令;

        6)用戶選擇查看收到的snmp消息命令;

        7)用戶選擇解碼命令;

        8)用戶選擇查看解碼結果命令;

        9)在線打印和幫助。

        管理端實現模塊的功能如下:

        1)監視用戶在管理端仿真模塊中輸入的命令,并做出相應的處理;

        2)對從管理端仿真模塊傳來的消息進行ber編碼;

        3)把編碼結果傳給管理端仿真模塊;

        4)把編碼結果發送到snmp代理端;

        5)從snmp代理端接收的信息,并傳給管理端仿真模塊;

        6)對從snmp代理端接收的消息進行ber解碼;

        7)把解碼結果傳給管理端仿真模塊;

        代理端仿真模塊的功能如下:

        1)支持用戶查看和編輯mbi-ii;

        2)用戶選擇查看消息命令;

        3)用戶選擇對收到的信息進行解碼命令;

        4)用戶選擇查看解碼結果命令;

        5)用戶選擇snmp消息類型(getresponse,trap),并輸入相應的參數;

        6)用戶選擇生成編碼命令;

        7)用戶選擇查看編碼結果命令;

        8)用戶選擇發送snmp消息命令;

        9)在線打印和幫助。

        代理端實現模塊的功能如下:

        1)監視用戶在代理端仿真模塊中輸入的命令,并做出相應的處理;

        2)從snmp管理端接收消息,并傳給代理端仿真模塊;

        3)對從snmp管理端接收的消息進行ber解碼;

        4)把解碼結果轉給代理端仿真模塊;

        5)對從代理端仿真模塊傳來的消息進行ber編碼;

        6)把編碼結果傳給代理端仿真模塊;

        7)把編碼結果發送到snmp代理端。

        3 對仿真模塊與實現模塊間通信的設計

        無論是管理端主機還是代理端主機,都有一個snmp實現模塊和一個仿真模塊,也就是說,運行在同一臺機器上的snmp實現模塊和snmp仿真模塊之間必然要進行通信,這種通信屬于同一個主機上不同進程間的通信,考慮本系統是一個演示用系統,采用阻塞模式的進程通信機制。

        當仿真模塊發出命令后,一直等待實現模塊的響應,收到響應后才能發出下一個命令。

        其通信模型如圖2所示。

        4 管理端實現模塊和代理端實現模塊間的通信

        管理端實現模塊和代理端實現模塊都實現了snmp,他們之間使用snmp進行通信,其通信模型如圖3所示。
        5 利用agentx技術完善代理和仿真系統

        agentx協議是由ietf在1998年提出的,通過將snmp代理的功能模塊進行分解,提供了另外一種擴展代理的途徑。與通過更改代理內部的mib結構來擴展代理功能的方法不同,基于agentx框架的代理軟件將snmp協議處理和管理信息訪問這2個功能進行了分解,從結構上將代理軟件劃分為主代理和子代理2個部分,主代理負責與管理工作站進行交互,處理snmp消息的發送與接收,但幾乎不對設備的管理信息進行訪問,各個子代理負責對各自的管理信息進行訪問,并將其所負責的mib域報告給主代理,但卻不能處理主代理的snmp消息,主代理和子代理之間根據agentx協議進行通信。

        對于管理工作站來說,agentx協議是透明的,這樣的結構,通過子代理向主代理的注冊來擴展注冊的功能,代理的擴展功能更加靈活,通常情況下,主代理和子代理共存于同一個主機上,agentx的通信屬于進程間的通信,具有較高的效率。

        5.1 agentx的框架

        在支持agentx的代理結構中包括以下要素:

        一個主代理 主代理負責處理snmp協議消息,與管理工作站進行交互,但是一般不具備直接訪問管理信息的權限。

        若干子代理 子代理負責訪問管理對象,對于snmp協議來說,子代理是透明的。

        主代理和子代理交互的協議,就是agentx協議,實現主代理和子代理之間的通信,支持agentx的代理軟件的結構如圖4所示。

        5.2 代理的功能

        主代理需要實現以下功能:

        (1)接受子代理建立agentx會話的請求;

        (2)接受子代理注冊mib域的請求;

        (3)接收和發送snmp協議消息;

        (4)實現除管理操作以外的代理應該實現的功能;

        (5)提供對與管理框架相關的mib對象的支持;

        (6)根據子代理注冊的mib域,發送和接收agentx協議消息來訪問管理信息;

        (7)轉發由子代理產生的通知信息。

        子代理需要實現以下功能:

        (1)與主代理建立agentx會話;

        (2)向主代理注冊mib域;

        (3)實例化管理對象;

        (4)將其注冊的mib域中的對象標識符與實際管理變量進行綁定;

        (5)對管理變量進行管理操作;

        (6)初始化通知信息。

        6 系統實現

        本系統采用標準的snmp協議和純java語言,這樣有利于保證系統的平臺無關性和通用性,并分別在windows2000及linux平臺上實現了該系統,測試的環境分為3種,系統的c端和s端運行在同一個主機上,系統的c端和s端運行在2個以上主機上,但是所有主機使用的是同一種平臺(如:windows2000);系統的c端和s端運行在2個以上主機上,并且各個主機使用的是不同平臺(如:windows 2000,linux等),經過測試,驗證了該仿真系統的平臺無關性和通用性,運行在不同平臺上的仿真系統c端和s端能夠很好的通信,完成仿真模擬功能。

        7 結語

        我們開發的snmp仿真系統已經成功地應用于教學中,曾作為學院網絡管理課程的優秀教學課件被多次使用,獲得了師生的一致好評,考慮到教學的靈活性和學生的學習的自主行,該系統支持單機運行和網絡運行,既可以在機房通過局域網進行實驗,也可以用一臺機器進行實驗,易于使用和管理,該系統的下一個版本,將與web技術相結合,通過internet,用戶可以遠程查看snmp管理端和代理端的工作過程,進一步擴大該系統的可利用價值。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新巴尔虎左旗| 沙湾县| 贡觉县| 辽中县| 白城市| 平定县| 安宁市| 大洼县| 舞钢市| 澄江县| 石屏县| 麦盖提县| 依安县| 隆昌县| 玉树县| 德令哈市| 仁布县| 武威市| 祁东县| 舞阳县| 金门县| 娱乐| 潮州市| 龙泉市| 河津市| 庆阳市| 获嘉县| 吐鲁番市| 西盟| 田林县| 清原| 济南市| 南投市| 苍山县| 久治县| 穆棱市| 洪泽县| 昌邑市| 平舆县| 福泉市| 旬阳县|