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

基于XORP的SNMP網(wǎng)絡協(xié)議實現(xiàn)

2012-09-17 07:54:40一,吳
電視技術 2012年23期
關鍵詞:定義用戶

武 一,吳 桐

(河北工業(yè)大學信息工程學院,天津 300401)

隨著網(wǎng)絡的迅速發(fā)展,數(shù)據(jù)中心對交換機的傳輸速度要求越來越高,網(wǎng)絡從百兆網(wǎng)卡發(fā)展到現(xiàn)在40G的光模塊通信。交換機上需要支持的協(xié)議也越來越多,而這些協(xié)議直接的通信和用戶配置界面等也越來越復雜。大部分三層交換機使用的代碼不開源,很難進行完全個性化的配置和修改。

XORP是一個開放的網(wǎng)絡平臺,支持OSPF,RIP的BGP,OLSR協(xié)議,PIM,IGMP(組播)和其他路由協(xié)議。大多數(shù)協(xié)議支持IPv4和IPv6(如適用)。XORP的首要目標是要成為一個開放式平臺替代專有和封閉的網(wǎng)絡產(chǎn)品。XORP的開放性使得任何個人或者單位可以免費使用其源代碼進行個性的配置以及更改。

簡單網(wǎng)絡管理協(xié)議(Simple Network Management Protocol,SNMP)是由簡單網(wǎng)關監(jiān)控協(xié)議(SGMP)發(fā)展而來的,其同SGMP的主要區(qū)別是加入了符合Internet定義的SMI和MIB體系結構[1]。SNMP的目標是管理互聯(lián)網(wǎng)或者數(shù)據(jù)中心中各設備的鏈路狀態(tài)以及設備硬件狀態(tài)?,F(xiàn)在SNMP協(xié)議發(fā)展到版本3,其增強了SNMP協(xié)議的安全性能,包括封包加密以及認證等。可以使用SNMP進行網(wǎng)絡管理,需要管理基站,管理代理,管理信息庫和網(wǎng)絡管理工具等[2]。

本設計主要研究了在XORP平臺上SNMP協(xié)議的實現(xiàn),包括配置XORP中添加SNMP的XRL、SNMP協(xié)議參數(shù)的用戶命令、SNMP協(xié)議的移植以及MIB庫的添加等。

1 XORP介紹

XORP是一個完全開源的網(wǎng)絡平臺,支持多種協(xié)議,提供對IPv4和IPv6的支持。由于其開放性,因此方便用戶對其進行剪裁以及根據(jù)本身硬件進行優(yōu)化。其中重要的是rtrmgr(XORP Router Manager Process),XRL接口的解析和模板的解析都是由其完成,CLI(Command Line Interface)用戶命令行向用戶提供設備配置命令行,其負責完成命令樹文件的語法解析以及命令樹和配置樹的生成、不同用戶之間的同步等。XORP進程的結構如圖1所示。

圖1 XORP結構圖

1.1 XRL 接口

在XORP中,XRL接口是各個模塊通信的接口,XORP默認的通信接口定義文件是XIF文件,在編譯過程中會自動利用腳本把XIF文件編譯成.hh和.cc文件。其定義有固定的語法。例如:

其第一個接口定義了一個給SNMP發(fā)送系統(tǒng)內(nèi)存狀況的接口,0.1是其版本號?!?”的含義是后面是傳給該接口函數(shù)的輸入?yún)?shù),默認添加的返回值是程序執(zhí)行結果,由類XorpError定義。如果需要其他的返回值,則需要一個回調(diào)的callback函數(shù),在XRL接口定義中使用“->”標示進行聲明,在該接口函數(shù)執(zhí)行完成之后,XORP會自動調(diào)用該callback函數(shù)。上述聲明生成的XRL在執(zhí)行過程中,實際調(diào)用的XRL如下:

在snmp.xif文件中按照上述格式聲明其他協(xié)議,例如OSPF,RIP,IGMP等傳遞給SNMP數(shù)據(jù)的接口。自動腳本會生成.cc和.hh文件,例如接口set_location會自動生成如下函數(shù):

其生成的只是XRL的接口函數(shù),還需要自行添加該接口的實現(xiàn)函數(shù)。

1.2 模板定義

在XORP中,CLI是XORP與用戶進行交互的界面,供用戶來對設備進行個性化配置以及查看設備運行狀態(tài)和各個參數(shù)等。默認的CLI模塊命令行中不存在SNMP協(xié)議的命令,需要按照XORP的語法規(guī)定手動添加模板文件,CLI模塊對模板進行解析,XORP中模板有兩種格式,擴展名分別為.tp以及.cmd,其中.tp文件中的命令的調(diào)用是通過XRL來實現(xiàn)的,而在.cmd中的命令是用Shell,Linux命令等非XRL來實現(xiàn)的。

SNMP模塊必須提供啟動SNMP協(xié)議、配置SNMP版本號、關閉SNMP協(xié)議、配置SNMP協(xié)議family等接口。示例如下:

1)TP文件示例

上述tp文件中需要聲明SNMP模塊的信息,包括版本號、依賴程序、路徑信息以及默認名稱,除此之外是各個SNMP模塊相關命令的調(diào)用XRL以及傳遞參數(shù)等。其中接口函數(shù)名以及路徑等必須和XRL接口聲明的相同,否則將引起rtrmgr找不到對應的XRL命令而無法啟動。XORP在啟動時會自動對上述模板進行解析,動態(tài)生成相關的配置樹。當在用戶命令行中輸入相關命令時,RTRMGR會按照相應的XRL調(diào)用SNMP模塊命令。

2)cmd文件示例

上述程序聲明了清除SNMP統(tǒng)計信息的命令,commands后面聲明的是需要調(diào)用的程序和參數(shù)等。XORP也會把cmds文件聲明的命令加入到用戶命令行的命令樹中,與tp文件聲明的命令不同的是,此處調(diào)用命令不再使用XRL。

2 SNMP移植

SNMP協(xié)議現(xiàn)在有3個版本,v1現(xiàn)在基本已經(jīng)淘汰,主要使用v2和v3,v2在RFC 2578中進行了描述,v3在RFC 3411-RFC 3418中定義。在v1中指定5種核心PDU:GET REQUEST,GET NEXT REQUEST,GET RESPONSE,SET REQUEST,TRAP。其他PDU在SNMP的v2中加入,包含GETBULK REQUEST和INFORM。v3中主要增加SNMP在安全性和遠端配置方面的強化。

2.1 SNMP 和 Agent移植

SNMP和Agent有基于GPL發(fā)表的源代碼可供使用,最新的代碼可以從http://agentpp.com/上下載。其移植主要是修改其中的宏定義等配置[3-4]。

1)在移植過程中必須修改SNMP和Agent中對于布爾的變量定義,因為XORP中已經(jīng)對boolean進行了定義。因此更改agent++.h,去掉boolean的定義,添加如下定義:

2)對SNMP和Agent中所有關于布爾變量的聲明進行更正,把boolean改成agentpp_boolean。

3)根據(jù)系統(tǒng)要求更改SNMP以及Agent的配置文件,例如使用的SNMP版本號v2/v3等。

2.2 MIB 庫添加

MIB(Management Information Base)即管理信息庫,其主要由網(wǎng)絡管理協(xié)議訪問的管理對象的數(shù)據(jù)庫構成[5-6]。MIB庫中每個葉子節(jié)點以及Entry等都具有獨一無二的OID號,RFC以及IEEE提供了大部分協(xié)議的標準MIB庫定義文件。此外,用戶還可以自己添加私有的MIB庫,此類MIB庫需添加到private節(jié)點下。

上述SNMP和Agent中并未包含任何MIB庫,通用的標準MIB庫可以從IEEE等官方網(wǎng)站下載對應的MIB的文本文件,在此之后用第三方的Java工具Agentgen工具將定義的MIB庫轉換成對應的.hh和.cc文件。以RFC1213-MIB為例,其步驟如下:

1)添加該MIB文件到倉庫。命令為

其中 mibrepository是 MIB的二進制的倉庫,pica8mibs是MIB的文本文件倉庫。如果看到“Loading MIB file[./RFC1213 -MIB - rfc1213.txt]...parsed,done”這樣的打印,說明RFC1213-MIB-rfc1213.txt成功加入mibrepository。

2)生成相應的頭文件

#./agentgen.sh ./mibrepository generate RFC1213 - MIB h 3.4 > /tmp/rfc1213_mib.h

3)生成相應的C++文件

#./agentgen.sh ./mibrepository generate RFC1213 - MIB c 3.4 > /tmp/rfc1213_mib.cpp

按照上述方法,將其他協(xié)議的MIB庫全部生成C++文件,并將上述文件添加到Makefile或者Makefile.am中。

2.3 主程序?qū)崿F(xiàn)

Agent++主程序主要功能是添加MIB庫,完成初始化,添加eventloop事件,注冊SNMP模塊。由于SNMP初始啟動時并無MIB庫葉子節(jié)點的數(shù)據(jù),因此其會通過XRL向其他模塊請求數(shù)據(jù),來構建初始的數(shù)據(jù)庫。在此之后基本不再主動請求數(shù)據(jù),而是在網(wǎng)絡拓撲結構變化等條件下由其他模塊自動向SNMP傳輸更正的數(shù)據(jù),以此來減少XRL調(diào)用的次數(shù),提高系統(tǒng)效率。其流程圖如圖2所示。

2.3.1 添加MIB庫代碼

SNMP啟動時需要首先添加相應的MIB庫,例如

圖2 SNMP程序流程圖

SNMP的自帶基礎庫Vacm和OSFP庫等。添加系統(tǒng)描述庫以及OSFP庫的程序示例如下:

2.3.2 初始化

初始化主要是初始化系統(tǒng)使用的時間處理EventLoop,系統(tǒng)描述節(jié)點的初始化,以及UsmUserTable等的初始化,初始化UsmUserTable的程序示例如下:

2.3.3 啟動模塊

SNMP模塊初始化完成后即可啟動,SNMP會通過XRL向rtrmgr注冊SNMP模塊,rtrmgr在收到SNMP的啟動信息后,會向其他模塊下發(fā)該通知,其他模塊收到通知后會自動向SNMP模塊發(fā)送其負責的MIB節(jié)點的數(shù)據(jù),來構建初始數(shù)據(jù)。構建完成之后,其他模塊只有在需要更新MIB庫數(shù)據(jù)時才會向SNMP模塊發(fā)送數(shù)據(jù)。例如構建SNMP結點的xrl_snmp_node初始化示例如下:

XrlSnmpNode xrl_snmp_node(eventloop,snmp_target_name,finder_target_name,finder_hostname,finder_port)eventloop.add_ioevent_cb(snmp.get_iv_snmp_session(),IOT_READ,callback(process_snmp),XorpTask::PRIORITY_DEFAULT);

2.4 自定義MIB庫

自定義MIB庫需添加到MIB的private節(jié)點之下,必須按照標準對于節(jié)點進行聲明,例如如下代碼聲明了一個關于CPU利用率的節(jié)點[7-9],其中 SYSTAX 聲明該結點顯示使用的是字符串格式,MAX-ACCES聲明客戶端的操作權限,此處為只讀,STATUS聲明狀態(tài)信息,DESCRIPTION是關于該節(jié)點的描述信息。最后一行聲明該結點是hostStatusGroup組的第一個結點。

自定義MIB庫的編譯方法和標準MIB庫相同,但必須將其在客戶端重新編譯添加到客戶端MIB庫中才可以獲取到數(shù)據(jù)[10]。

圖3 客戶端顯示結果(截圖)

3 測試結果

經(jīng)測試,本設計的SNMP協(xié)議在XORP上可以正常啟動,并在客戶端可以正常獲取和配置數(shù)據(jù)(見圖3)。

[1]李文杰.EPON網(wǎng)管代理中SNMP與OAM的設計實現(xiàn)[J].光通信技術,2011,35(5):78-81.

[2]肖鋼.基于SNMP、WBEM和WSDM的系統(tǒng)管理技術比較[J].北京郵電大學學報,2009,32(S1):134-139.

[3]劉振海.核心交換機嵌入式重啟裝置研究與設計[J].電子技術應用,2010,36(11):141-145.

[4]吳迪.基于嵌入式操作系統(tǒng)的網(wǎng)管代理實現(xiàn)方法[J].計算機及網(wǎng)絡技術應用,2010,8(5):41-43.

[5]張登銀.基于SNMP的MIB庫轉化成C文件的實現(xiàn)[J].計算機技術與發(fā)展,2011,21(9):6-9.

[6]王海穎.基于LINUX嵌入式系統(tǒng)的NMP及其代理(Agent)的設計與實現(xiàn)[D].遼寧:遼寧科技大學,2008.

[7]陳波.基于SNMP的多元網(wǎng)絡統(tǒng)一管理模型研究[J].電視技術,2011,35(10):68-71.

[8]陶寧.基于SNMP的光纖放大器遠程監(jiān)控系統(tǒng)設計[J].激光技術,2011,35(3):365-371.

[9]張亮.基于SNMP的網(wǎng)絡設備管理系統(tǒng)設計與實現(xiàn)[D].河北:河北科技大學,2010.

[10]魏煜欣.一種基于SNMP網(wǎng)絡性能管理數(shù)據(jù)的采集方法[J].計算機工程與應用,2011,21(9):6-9.

猜你喜歡
定義用戶
永遠不要用“起點”定義自己
海峽姐妹(2020年9期)2021-01-04 01:35:44
定義“風格”
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
成功的定義
山東青年(2016年1期)2016-02-28 14:25:25
Camera360:拍出5億用戶
100萬用戶
如何獲取一億海外用戶
修辭學的重大定義
當代修辭學(2014年3期)2014-01-21 02:30:44
主站蜘蛛池模板: 中文成人在线| 国产成人欧美| 欧美特黄一免在线观看| 国产精品私拍在线爆乳| 国产成人免费高清AⅤ| 国产精品制服| 中国精品自拍| 97国内精品久久久久不卡| 成人亚洲视频| 午夜日b视频| 婷婷五月在线视频| 69av在线| www.youjizz.com久久| 久久免费精品琪琪| 啪啪免费视频一区二区| 超碰91免费人妻| 亚洲成人播放| 色婷婷色丁香| 无码免费视频| 中文天堂在线视频| 国产精品网址你懂的| 福利国产在线| 福利姬国产精品一区在线| 国产永久无码观看在线| 九九热在线视频| 伊人网址在线| 新SSS无码手机在线观看| 青青草一区| 日本AⅤ精品一区二区三区日| 中文字幕 日韩 欧美| 2019国产在线| 四虎精品国产AV二区| 女人爽到高潮免费视频大全| 天堂网国产| 国产在线观看成人91| 亚洲色图欧美在线| 亚洲男女天堂| 真实国产精品vr专区| 无码AV动漫| 免费毛片网站在线观看| 在线观看免费黄色网址| 亚洲αv毛片| 91系列在线观看| 久久中文无码精品| 久久免费视频播放| 在线国产毛片手机小视频| 亚洲欧美在线综合图区| 99视频国产精品| 国产一区二区三区日韩精品| 在线另类稀缺国产呦| 国产三级a| 尤物精品国产福利网站| 久久久久国产一级毛片高清板| 91一级片| 亚洲欧美另类中文字幕| 日韩成人午夜| 日韩黄色在线| 91久久偷偷做嫩草影院电| 伊人久久综在合线亚洲2019| 国产无码性爱一区二区三区| 亚洲中文字幕日产无码2021| 国产在线八区| 五月婷婷激情四射| 2018日日摸夜夜添狠狠躁| 男女男精品视频| 亚洲av无码成人专区| 成人韩免费网站| 国产又色又刺激高潮免费看| 亚洲成肉网| 日本人妻丰满熟妇区| 91九色最新地址| 欧美成人影院亚洲综合图| 蜜桃视频一区二区| 国产网站在线看| 中文字幕在线不卡视频| 欧美国产综合色视频| 久久永久免费人妻精品| 国产精品欧美日本韩免费一区二区三区不卡| 国产美女无遮挡免费视频| 91精选国产大片| 美女国内精品自产拍在线播放| 最近最新中文字幕免费的一页|