999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux平臺的嵌入式網管軟件開發

2014-10-29 02:19:27姚楠康京山
電子技術與軟件工程 2014年16期

姚楠+康京山

摘 要

本文首先概要介紹了簡單網絡管理協議(SNMP)和NET-SNMP軟件包。在此基礎上介紹了如何利用NET-SNMP軟件開發包在Linux系統上實現嵌入式SNMP網絡管理軟件的基本流程。為種類繁多的網絡設備提供了一種簡單、快速的嵌入式網管開發方法。

【關鍵詞】Linux NET-SNMP SNMP 網絡管理

【關鍵詞】Linux NET-SNMP SNMP 網絡管理

隨著下一代網絡技術的廣泛應用,網絡設備的可管可控性呈現出越來越重要的意義。然而,當前的電信網絡和業務系統設備軟硬件平臺大多采用封閉私有技術,影響了電信網絡的可管理性和可擴展性,同時各設備之間也不能有效的實現應用共享及協同工作,新業務開發速度慢,造成電信網絡投資和運營成本較高,開發和部署速度遲緩,不能快速滿足用戶大量快速多變的數據業務開發需求。

針對上述問題,本文提出基于Linux平臺的嵌入式網絡管理軟件的快速開發方案,通過SNMP協議對被管網絡設備進行管控操作。具有實現簡單,開發速度快等特點,很好地實現了網絡管控設備的敏捷開發。

1 嵌入式網管軟件簡介

隨著網絡的規模迅速增加,節點數隨之大幅增多,不同廠家,不同類型的大量網絡設備加入網絡后,增加了網絡的復雜度。由于這些網絡設備大多采用了封閉的配置管理手段,因此給傳統上集中式的網絡管理帶來極大不便。以思科、華為、中興等廠家的路由器為例,其配置手段雖然多種多樣,但都存在操作繁瑣等缺點。為此,需要培訓大量的網絡維護人員來維護著網絡的快速開通和通暢。目前在網絡控制管理方面,集中式與分布式相結合的方式已經成為必然趨勢。然而單純增加分布式網絡管控設備的數量又不利于降低系統整體功耗。

為減少分布式網管設備的功耗,加快網絡開通速度,在此利用嵌入式系統低功耗、高效率的特點,以及各網絡設備大多支持SNMP協議的特點,把嵌入式技術與網絡管理技術相結合進行研究,設計并實現嵌入式網管系統,以達到高效率、低功耗和分布式的目的。

嵌入式網管軟件基于Intel i7硬件平臺和RHEL 6.3 Linux操作系統,與管控設備上的其它軟件模塊處于同一平臺。采用NET-SNMP軟件包開發網絡管控設備與被管設備之間的接口軟件,并為管控設備的上層軟件模塊提供開放的API接口。上層應用軟件通過調用API函數向被管設備下發管控命令,從而實現網管管理。

2 SNMP協議

簡單網絡管理協議(Simple Network Management Protocol, SNMP)是很著名的網絡管理協議,被廣泛應用于數據通訊領域以及用于監視應用。SNMP在最初設計時首要的目的是簡單——即對于被管設備(硬件資源有限)而言,在其上面易于實現代理。

SNMP到目前為止有三個版本,其中SNMP vl是SNMP的經典版本,其后的版本均是在此版本之上進行的升級和改進,但在實際應用中SNMP v2c使用最多。

SNMP定義了5種報文:get-request操作:從代理進程處提取一個或多個參數值。get-next-request操作:從代理進程處提取一個或多個參數的下一個參數值。set-request操作:設置代理進程的一個或多個參數值。get-response操作:返回的一個或多個參數值。這個操作是由代理進程發出的。它是前面3中操作的響應操作。trap操作:代理進程主動發出的報文,通知管理進程有某些事情發生。前面的3個操作是由管理進程向代理進程發出的。后面兩個是代理進程發給管理進程的。

3 NET-SNMP軟件包介紹

NET-SNMP是一套優秀的開源snmp工具包,使用它可以開發snmp代理程序,也可以開發snmp管理程序,目前最新的版本已經支持snmp v3。

NET-SNMP源于卡耐基梅隆大學的SNMP軟件包CMU snmp 2.1.2.1,后由加州大學Davis分校(UniversityofCalifoniaatDavis)開發與維護,被命名為UCD-SNMP。2000年11月UCD-SNMP項目轉到由SourceForge(www.sourceforge.net)管理,并更名為NET-SNMP。UCD-SNMP4.2是以UCD-SNMP命名的最后的一個主要版本。也就是說,以后發布的UCD-SNMP 4.2.x只是修改軟件包中的Bugs;而大的修改版本以NET-SNMP命名,并發布為NET-SNMP 5.x。NET-SNMP 5.7.1是目前較新版本。

NET-SNMP的主要內容包括:

(1)完整的API用于SNMP(支持V1、V2、V3版本)應用開發(包括c、perl、Python等的API);

(2)一個可擴展的SNMP代理程序(snmpd);開發員可以擴展自己的代理程序;

(3)一套工具命令集(snmpget、snmpset、snmptrap、snmpwalk、snmp等);

(4)一個trap接收進程,用于接收和顯示trap。并可以將trap記錄到日志文件里;

(5) 一個圖形化的MIB瀏覽工具(tkmib:基于Tk/Perl的)。

使用NET-SNMP軟件包開發代理端軟件比較常用,互聯網上可以查到很多相關資料,本文不再重復。這里主要介紹應用NET-SNMP開發管理端軟件的方法。

4 嵌入式網管軟件的實現

嵌入式網管軟件在Linux操作系統上進行應用開發,根據功能不同可分為三個軟件模塊:網管通信模塊、控制命令處理模塊及控制管理模塊。如圖1所示。

其中控制管理模塊負責生成管控命令,并通過內部消息將之下發給控制命令處理模塊,等待接收響應結果。endprint

控制命令處理模塊負責管控命令的解析與網管通信命令的封裝,能從控制管理模塊獲取的管控指令解析出具體信息,并通過調用網管通信模塊的API函數實現查詢和配置管理。

網管通信模塊主要負責與管理站進行SNMP協議通信及與控制命令處理模塊通信,能將控制命令處理模塊的指令封裝成SNMP協議報文轉發給被管設備。

下面分別介紹嵌入式網管軟件的實現方法。

4.1 安裝NET-SNMP軟件包

之所以要先安裝一個可運行的NET-SNMP系統,是因為我們開發程序運行環境需要使用SNMP協議的配置文件;另外,還可以利用NET-SNMP提供的命令工具來測試程序。

NET-SNMP包目前可以移植的版本包括各種UNIX(基于SYSTEM V內核及基于BSD內核)、Linux、Windows版本。目前NET-SNMP包的安裝主要有程序編譯安裝與二進制文件安裝兩種方式,源程序安裝可以從NET-SNMP的官網下載。

Linux系統下安裝net-snmp-5.7.1步驟:

(1)下載net-snmp-5.7.1.tar.gz文件

(2)使用命令tar –xvf net-snmp-5.7.1.tar.gz解壓

(3)進入net-snmp-5.7.1文件夾,執行./configure --prefix=/usr/net-snmp/ --enable-embedded-perl --enable-shared --with-perl-modules

(4)執行make

(5)執行make install

4.2 配置NET-SNMP

使用NET-SNMP之前需要進行環境設置,否則無法查詢到希望的結果。配置NET-SNMP重要的是配置snmpd.conf文件,其中最重要的是配置共同體(community)。因為共同體定義了認證、訪問控制和代理的特性,每個共同體擁有一個唯一的名字,共同體中的管理端必須使用該共同體的community進行GET和SET操作。所以,共同體也是訪問口令。還有就是trap/notification的發送地址,即trapsink或trap2sink項,trapsink對應snmp vl的trap,trap2sink對應snmp v2的notification。

配置snmpd.conf文件,可以直接手動修改/usr/net-snmp/share/snmp路徑下的同名文件。將文件中rwcommunity、rocommunity所對應的讀寫、只讀團體名修改為系統所需字段即可。其余修改內容可參考NET-SNMP相關幫助自行決定。

4.3 編寫網管通信模塊API函數

為了實現SNMP協議通信,網管通信模塊需要利用net-snmp-5.7.1實現管理端的三個功能,get,getnext,set。

下面以set命令為例,簡單說明函數的實現方式。

首先編寫網管通信模塊程序需包含以下三個頭文件:

#include

#include

#include

實現set命令的基本步驟:

(1)調用init_snmp("set")函數初始化snmp;

(2)調用snmp_sess_init( &session )初始化結構session,然后用一些賦值語句設置session;

(3)調用snmp_open(&session),打開SNMP session;

(4)調用snmp_pdu_create(SNMP_MSG_SET)創建snmp pdu;

(5)調用snmp_parse_oid根據mib分析parse oid;

(6)調用snmp_add_var為SET request添加對象名及值;

(7)調用snmp_synch_response發送SET request報文。

函數中的session字段是名為netsnmp_session的結構,在其中定義了SNMP協議的版本、團體名及發送UDP端口號等內容,需特別注意。

5 結束語

本文首先介紹了嵌入式網管軟件的意義和特點;然后給出了SNMP協議本身的管理模型和基本原理。在此基礎上結合NET-SNMP軟件包詳細地介紹了在嵌入式網管軟件在Linux平臺下的開發過程。

參考文獻

[1]胡方煒.基于嵌入式Linux系統的SNMP代理開發研究[D].浙江工業大學,2004.

[2]IETF.RFCll57 A Simple Network Management Protocol(SNMP).May 1990.

[3]IETF.RFCl901.Introduction to Comm-unity·based SNMPv2.January 1996.

[4]Net-Snmp官方網站:http://www.source-forge.net.

作者簡介

姚楠(1979-),男,現為中國電科第五十四所通信系統與網絡專業部工程師。主要研究方向為通信系統與網絡。

作者單位

中國電子科技集團公司第五十四研究所 河北省石家莊市 050081

控制命令處理模塊負責管控命令的解析與網管通信命令的封裝,能從控制管理模塊獲取的管控指令解析出具體信息,并通過調用網管通信模塊的API函數實現查詢和配置管理。

網管通信模塊主要負責與管理站進行SNMP協議通信及與控制命令處理模塊通信,能將控制命令處理模塊的指令封裝成SNMP協議報文轉發給被管設備。

下面分別介紹嵌入式網管軟件的實現方法。

4.1 安裝NET-SNMP軟件包

之所以要先安裝一個可運行的NET-SNMP系統,是因為我們開發程序運行環境需要使用SNMP協議的配置文件;另外,還可以利用NET-SNMP提供的命令工具來測試程序。

NET-SNMP包目前可以移植的版本包括各種UNIX(基于SYSTEM V內核及基于BSD內核)、Linux、Windows版本。目前NET-SNMP包的安裝主要有程序編譯安裝與二進制文件安裝兩種方式,源程序安裝可以從NET-SNMP的官網下載。

Linux系統下安裝net-snmp-5.7.1步驟:

(1)下載net-snmp-5.7.1.tar.gz文件

(2)使用命令tar –xvf net-snmp-5.7.1.tar.gz解壓

(3)進入net-snmp-5.7.1文件夾,執行./configure --prefix=/usr/net-snmp/ --enable-embedded-perl --enable-shared --with-perl-modules

(4)執行make

(5)執行make install

4.2 配置NET-SNMP

使用NET-SNMP之前需要進行環境設置,否則無法查詢到希望的結果。配置NET-SNMP重要的是配置snmpd.conf文件,其中最重要的是配置共同體(community)。因為共同體定義了認證、訪問控制和代理的特性,每個共同體擁有一個唯一的名字,共同體中的管理端必須使用該共同體的community進行GET和SET操作。所以,共同體也是訪問口令。還有就是trap/notification的發送地址,即trapsink或trap2sink項,trapsink對應snmp vl的trap,trap2sink對應snmp v2的notification。

配置snmpd.conf文件,可以直接手動修改/usr/net-snmp/share/snmp路徑下的同名文件。將文件中rwcommunity、rocommunity所對應的讀寫、只讀團體名修改為系統所需字段即可。其余修改內容可參考NET-SNMP相關幫助自行決定。

4.3 編寫網管通信模塊API函數

為了實現SNMP協議通信,網管通信模塊需要利用net-snmp-5.7.1實現管理端的三個功能,get,getnext,set。

下面以set命令為例,簡單說明函數的實現方式。

首先編寫網管通信模塊程序需包含以下三個頭文件:

#include

#include

#include

實現set命令的基本步驟:

(1)調用init_snmp("set")函數初始化snmp;

(2)調用snmp_sess_init( &session )初始化結構session,然后用一些賦值語句設置session;

(3)調用snmp_open(&session),打開SNMP session;

(4)調用snmp_pdu_create(SNMP_MSG_SET)創建snmp pdu;

(5)調用snmp_parse_oid根據mib分析parse oid;

(6)調用snmp_add_var為SET request添加對象名及值;

(7)調用snmp_synch_response發送SET request報文。

函數中的session字段是名為netsnmp_session的結構,在其中定義了SNMP協議的版本、團體名及發送UDP端口號等內容,需特別注意。

5 結束語

本文首先介紹了嵌入式網管軟件的意義和特點;然后給出了SNMP協議本身的管理模型和基本原理。在此基礎上結合NET-SNMP軟件包詳細地介紹了在嵌入式網管軟件在Linux平臺下的開發過程。

參考文獻

[1]胡方煒.基于嵌入式Linux系統的SNMP代理開發研究[D].浙江工業大學,2004.

[2]IETF.RFCll57 A Simple Network Management Protocol(SNMP).May 1990.

[3]IETF.RFCl901.Introduction to Comm-unity·based SNMPv2.January 1996.

[4]Net-Snmp官方網站:http://www.source-forge.net.

作者簡介

姚楠(1979-),男,現為中國電科第五十四所通信系統與網絡專業部工程師。主要研究方向為通信系統與網絡。

作者單位

中國電子科技集團公司第五十四研究所 河北省石家莊市 050081

控制命令處理模塊負責管控命令的解析與網管通信命令的封裝,能從控制管理模塊獲取的管控指令解析出具體信息,并通過調用網管通信模塊的API函數實現查詢和配置管理。

網管通信模塊主要負責與管理站進行SNMP協議通信及與控制命令處理模塊通信,能將控制命令處理模塊的指令封裝成SNMP協議報文轉發給被管設備。

下面分別介紹嵌入式網管軟件的實現方法。

4.1 安裝NET-SNMP軟件包

之所以要先安裝一個可運行的NET-SNMP系統,是因為我們開發程序運行環境需要使用SNMP協議的配置文件;另外,還可以利用NET-SNMP提供的命令工具來測試程序。

NET-SNMP包目前可以移植的版本包括各種UNIX(基于SYSTEM V內核及基于BSD內核)、Linux、Windows版本。目前NET-SNMP包的安裝主要有程序編譯安裝與二進制文件安裝兩種方式,源程序安裝可以從NET-SNMP的官網下載。

Linux系統下安裝net-snmp-5.7.1步驟:

(1)下載net-snmp-5.7.1.tar.gz文件

(2)使用命令tar –xvf net-snmp-5.7.1.tar.gz解壓

(3)進入net-snmp-5.7.1文件夾,執行./configure --prefix=/usr/net-snmp/ --enable-embedded-perl --enable-shared --with-perl-modules

(4)執行make

(5)執行make install

4.2 配置NET-SNMP

使用NET-SNMP之前需要進行環境設置,否則無法查詢到希望的結果。配置NET-SNMP重要的是配置snmpd.conf文件,其中最重要的是配置共同體(community)。因為共同體定義了認證、訪問控制和代理的特性,每個共同體擁有一個唯一的名字,共同體中的管理端必須使用該共同體的community進行GET和SET操作。所以,共同體也是訪問口令。還有就是trap/notification的發送地址,即trapsink或trap2sink項,trapsink對應snmp vl的trap,trap2sink對應snmp v2的notification。

配置snmpd.conf文件,可以直接手動修改/usr/net-snmp/share/snmp路徑下的同名文件。將文件中rwcommunity、rocommunity所對應的讀寫、只讀團體名修改為系統所需字段即可。其余修改內容可參考NET-SNMP相關幫助自行決定。

4.3 編寫網管通信模塊API函數

為了實現SNMP協議通信,網管通信模塊需要利用net-snmp-5.7.1實現管理端的三個功能,get,getnext,set。

下面以set命令為例,簡單說明函數的實現方式。

首先編寫網管通信模塊程序需包含以下三個頭文件:

#include

#include

#include

實現set命令的基本步驟:

(1)調用init_snmp("set")函數初始化snmp;

(2)調用snmp_sess_init( &session )初始化結構session,然后用一些賦值語句設置session;

(3)調用snmp_open(&session),打開SNMP session;

(4)調用snmp_pdu_create(SNMP_MSG_SET)創建snmp pdu;

(5)調用snmp_parse_oid根據mib分析parse oid;

(6)調用snmp_add_var為SET request添加對象名及值;

(7)調用snmp_synch_response發送SET request報文。

函數中的session字段是名為netsnmp_session的結構,在其中定義了SNMP協議的版本、團體名及發送UDP端口號等內容,需特別注意。

5 結束語

本文首先介紹了嵌入式網管軟件的意義和特點;然后給出了SNMP協議本身的管理模型和基本原理。在此基礎上結合NET-SNMP軟件包詳細地介紹了在嵌入式網管軟件在Linux平臺下的開發過程。

參考文獻

[1]胡方煒.基于嵌入式Linux系統的SNMP代理開發研究[D].浙江工業大學,2004.

[2]IETF.RFCll57 A Simple Network Management Protocol(SNMP).May 1990.

[3]IETF.RFCl901.Introduction to Comm-unity·based SNMPv2.January 1996.

[4]Net-Snmp官方網站:http://www.source-forge.net.

作者簡介

姚楠(1979-),男,現為中國電科第五十四所通信系統與網絡專業部工程師。主要研究方向為通信系統與網絡。

作者單位

中國電子科技集團公司第五十四研究所 河北省石家莊市 050081

主站蜘蛛池模板: 2021最新国产精品网站| 国产 在线视频无码| 亚洲第一视频网| 亚洲日本中文字幕天堂网| 亚洲第一区精品日韩在线播放| 中文字幕无码制服中字| 无码精品福利一区二区三区| 日本午夜精品一本在线观看 | 91久久青青草原精品国产| 欧美性天天| 中文字幕啪啪| 日本免费新一区视频| 亚洲天堂2014| 4虎影视国产在线观看精品| 99精品久久精品| 色婷婷亚洲综合五月| 欧美啪啪一区| 国产欧美性爱网| 精品国产成人a在线观看| 免费网站成人亚洲| 色偷偷一区二区三区| 国产在线精品网址你懂的| 热99精品视频| 91免费观看视频| a级毛片在线免费观看| 激情亚洲天堂| 99视频在线免费观看| 亚洲国产成人精品青青草原| 亚洲第一黄色网址| 久草网视频在线| 欧美精品xx| 亚洲精品视频网| 高清不卡一区二区三区香蕉| 性欧美精品xxxx| 午夜国产小视频| 久久婷婷色综合老司机| 国产精品亚洲天堂| 亚洲无码免费黄色网址| 国产主播喷水| 亚洲中文字幕23页在线| 精品福利视频导航| 亚洲一区二区三区麻豆| 1024国产在线| 波多野结衣一区二区三区四区 | 国产菊爆视频在线观看| 全部无卡免费的毛片在线看| 亚洲成年人片| 亚洲精品在线影院| 伊人国产无码高清视频| 亚洲成人免费在线| 日本一区二区三区精品AⅤ| 无码高潮喷水专区久久| 美女无遮挡被啪啪到高潮免费| 中文无码影院| 无码电影在线观看| 国产一级毛片在线| 国产午夜人做人免费视频中文 | 亚洲欧美自拍中文| 99久久免费精品特色大片| 69精品在线观看| 日韩国产无码一区| 国产亚洲精品资源在线26u| 刘亦菲一区二区在线观看| 国产精品观看视频免费完整版| 重口调教一区二区视频| 91po国产在线精品免费观看| 无码福利视频| 亚洲日韩欧美在线观看| 国产99免费视频| 人妻丰满熟妇啪啪| 久久情精品国产品免费| 欧美一区福利| 丰满的熟女一区二区三区l| 日本国产精品一区久久久| 国产小视频网站| 国产午夜无码片在线观看网站| 美女裸体18禁网站| 国产亚洲精久久久久久无码AV| 国产女人18毛片水真多1| 九色视频最新网址| 国产真实乱子伦精品视手机观看 | 国产永久在线视频|