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)。現(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)內存狀況的接口,0.1是其版本號。“?”的含義是后面是傳給該接口函數(shù)的輸入?yún)?shù),默認添加的返回值是程序執(zhí)行結果,由類XorpError定義。如果需要其他的返回值,則需要一個回調的callback函數(shù),在XRL接口定義中使用“->”標示進行聲明,在該接口函數(shù)執(zhí)行完成之后,XORP會自動調用該callback函數(shù)。上述聲明生成的XRL在執(zhí)行過程中,實際調用的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文件中的命令的調用是通過XRL來實現(xiàn)的,而在.cmd中的命令是用Shell,Linux命令等非XRL來實現(xiàn)的。

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

1)TP文件示例

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

2)cmd文件示例

上述程序聲明了清除SNMP統(tǒng)計信息的命令,commands后面聲明的是需要調用的程序和參數(shù)等。XORP也會把cmds文件聲明的命令加入到用戶命令行的命令樹中,與tp文件聲明的命令不同的是,此處調用命令不再使用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 主程序實現(xiàn)

Agent++主程序主要功能是添加MIB庫,完成初始化,添加eventloop事件,注冊SNMP模塊。由于SNMP初始啟動時并無MIB庫葉子節(jié)點的數(shù)據(jù),因此其會通過XRL向其他模塊請求數(shù)據(jù),來構建初始的數(shù)據(jù)庫。在此之后基本不再主動請求數(shù)據(jù),而是在網(wǎng)絡拓撲結構變化等條件下由其他模塊自動向SNMP傳輸更正的數(shù)據(jù),以此來減少XRL調用的次數(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
主站蜘蛛池模板: 波多野结衣的av一区二区三区| 久久福利网| 少妇被粗大的猛烈进出免费视频| 欧美国产菊爆免费观看| 久久 午夜福利 张柏芝| 精品国产成人av免费| 无码有码中文字幕| 啦啦啦网站在线观看a毛片| 人妻丰满熟妇av五码区| 欧美一级高清片欧美国产欧美| 九色视频线上播放| 视频二区欧美| 噜噜噜久久| 亚洲大学生视频在线播放| 国产女人爽到高潮的免费视频| 欧美成人A视频| 亚洲精品va| 40岁成熟女人牲交片免费| 国产丰满大乳无码免费播放| 亚洲欧美日韩视频一区| 2021国产精品自产拍在线| 亚洲三级a| 成人在线亚洲| 2048国产精品原创综合在线| 国产丝袜第一页| 毛片基地美国正在播放亚洲| 无码一区18禁| 韩日免费小视频| 无码中文AⅤ在线观看| 国产区免费精品视频| 国产精品香蕉在线观看不卡| 亚洲久悠悠色悠在线播放| 日韩免费毛片| 精品伊人久久久大香线蕉欧美 | 国产精品手机在线播放| 狠狠色综合网| 国产91蝌蚪窝| 国产香蕉在线视频| 国产美女自慰在线观看| 国产精品主播| 最新加勒比隔壁人妻| 国产在线拍偷自揄观看视频网站| 久久永久免费人妻精品| 伊人久久青草青青综合| 精品视频一区在线观看| 激情综合图区| 91在线日韩在线播放| 国产乱人乱偷精品视频a人人澡| 欧美亚洲综合免费精品高清在线观看 | 老司机午夜精品网站在线观看| 欧美a在线视频| 成年人视频一区二区| 国内精品手机在线观看视频| 丁香五月亚洲综合在线| 狠狠色综合久久狠狠色综合| 91福利在线观看视频| 中文字幕无码电影| 国产免费a级片| 国产精品lululu在线观看| 亚洲日本中文综合在线| 亚洲天堂福利视频| 色婷婷亚洲综合五月| 国产激情无码一区二区免费| 亚洲天堂网在线观看视频| 久久成人国产精品免费软件 | 在线观看国产小视频| 2020国产在线视精品在| 在线欧美一区| 久久婷婷综合色一区二区| 欧美成人午夜影院| 精品国产香蕉在线播出| 国产美女免费| 国产亚洲欧美在线视频| 亚洲一区波多野结衣二区三区| 99人体免费视频| 五月天香蕉视频国产亚| 97国产精品视频人人做人人爱| 国产成人综合日韩精品无码不卡 | 亚洲综合色婷婷| 无码电影在线观看| 国产在线一二三区| 色婷婷成人|