《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 通信與網(wǎng)絡(luò) > 業(yè)界動(dòng)態(tài) > ForCES路由器中基于AgentX協(xié)議CE端Subagent的研究與實(shí)現(xiàn)

ForCES路由器中基于AgentX協(xié)議CE端Subagent的研究與實(shí)現(xiàn)

2009-02-19
作者:童有成, 黃一春

  摘 要: 隨著互聯(lián)網(wǎng)等計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域的迅速擴(kuò)大,新的一代網(wǎng)絡(luò)設(shè)備更具靈活性、開(kāi)放性和可擴(kuò)展性,如何對(duì)這些新興的網(wǎng)絡(luò)設(shè)備進(jìn)行有效管理,是當(dāng)前迫切需要解決的問(wèn)題之一。文章針對(duì)ForCES路由器的體系結(jié)構(gòu)提出一種基于AgentX的網(wǎng)絡(luò)管理方案,并詳細(xì)論述了基于AgentX協(xié)議CE端子代理的設(shè)計(jì)與實(shí)現(xiàn)。
  關(guān)鍵詞:網(wǎng)絡(luò)管理; ForCES路由器; AgentX協(xié)議

?

  隨著互聯(lián)網(wǎng)等計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域的迅速擴(kuò)大,不斷出現(xiàn)新的需求和變化,這就要求新一代網(wǎng)絡(luò)設(shè)備應(yīng)具有足夠的靈活性,能快速地對(duì)新業(yè)務(wù)、新需求做出響應(yīng);要求新一代網(wǎng)絡(luò)設(shè)備應(yīng)具有足夠的開(kāi)放性,使用戶可根據(jù)所開(kāi)放的資源靈活組合,以提供不同的網(wǎng)絡(luò)需求服務(wù);要求新一代網(wǎng)絡(luò)設(shè)備應(yīng)具有足夠的模塊化特性,并通過(guò)標(biāo)準(zhǔn)化組織進(jìn)行標(biāo)準(zhǔn)化,使得每個(gè)模塊可由不同廠家獨(dú)立研究開(kāi)發(fā)。轉(zhuǎn)發(fā)件FE(Forwarding Element)與控制件CE(Control Element)分離的開(kāi)放可編程路由器體系結(jié)構(gòu)正是基于這樣一個(gè)歷史背景下提出來(lái)的,它滿足新一代網(wǎng)絡(luò)發(fā)展所提出的開(kāi)放性、可擴(kuò)展性和可編程性的要求。為此,實(shí)現(xiàn)對(duì)ForCES路由器的有效管理,迫切要求開(kāi)發(fā)一個(gè)具有可擴(kuò)展性的高效率的網(wǎng)絡(luò)管理系統(tǒng)。本文結(jié)合目前的研究項(xiàng)目“ForCES路由器的開(kāi)發(fā)原型”,提出一種基于AgentX協(xié)議的網(wǎng)絡(luò)管理方案,并詳細(xì)論述了基于AgentX協(xié)議CE端子代理設(shè)計(jì)與實(shí)現(xiàn),最后給出測(cè)試結(jié)果。
1 ForCES體系結(jié)構(gòu)
  轉(zhuǎn)發(fā)和控制分離ForCES(Forwarding and Control Seperation)[1]是IETF路由領(lǐng)域(Routing Area)的一個(gè)工作組,它專門研究開(kāi)放編程的IP路由器的體系結(jié)構(gòu)和協(xié)議問(wèn)題,是當(dāng)前開(kāi)放可編程網(wǎng)絡(luò)研究最受關(guān)注的研究組織。
  ForCES的基本思想是:通過(guò)把網(wǎng)絡(luò)組件的控制模塊和轉(zhuǎn)發(fā)模塊分離來(lái)加快網(wǎng)絡(luò)升級(jí)以及新業(yè)務(wù)的展開(kāi)。支持網(wǎng)絡(luò)管理是ForCES結(jié)構(gòu)路由器最基本的要求。
  ForCES Framework(RFC3746)中定義了ForCES的體系結(jié)構(gòu),F(xiàn)orCES的體系結(jié)構(gòu)如圖1所示。

?

?

  在ForCES框架定義中,把一個(gè)網(wǎng)絡(luò)單元NE(Network Element)作為一個(gè)獨(dú)立的管理實(shí)體,從外部看,一個(gè)NE就相當(dāng)于網(wǎng)絡(luò)中的一個(gè)路由或者交換設(shè)備。由圖1可以看出,一個(gè)NE由一個(gè)或多個(gè)CE和一個(gè)或多個(gè)FE組成,CE和FE間的通信按照ForCES協(xié)議的規(guī)定來(lái)完成,這個(gè)連接點(diǎn)稱為Fp參考點(diǎn)。
2 ForCES路由器中CE端Subagent的設(shè)計(jì)與實(shí)現(xiàn)
2.1 AgentX協(xié)議原理

  AgentX[2]工作組定義了標(biāo)準(zhǔn)的可擴(kuò)展的SNMP代理框架,即AgentX協(xié)議。它定義了SNMP代理中的兩個(gè)不同的實(shí)體:主代理(master agent)和子代理(subagent)。AgentX正是用于這兩種實(shí)體間的通信,它允許多個(gè)代理向SNMP管理應(yīng)用程序透明地提供MIB信息,以便提供易擴(kuò)展的、動(dòng)態(tài)的對(duì)復(fù)雜網(wǎng)絡(luò)系統(tǒng)的管理。其中主代理與子代理分工明確、結(jié)構(gòu)清晰,主要執(zhí)行的功能如下:
  主代理的主要功能:
  (1)SNMP引擎:以代理的身份發(fā)送和接收SNMP協(xié)議報(bào)文,對(duì)報(bào)文進(jìn)行BER編碼或解碼,執(zhí)行SNMP訪問(wèn)控制策略,但幾乎不訪問(wèn)管理信息。
  (2)AgentX主代理引擎:接收并發(fā)送Agent-PDU。
  (3)管理注冊(cè)功能:為子代理創(chuàng)建會(huì)話、注冊(cè)MIB樹(shù)、OID索引分配及對(duì)子代理能力聲明的處理。
  (4)管理調(diào)度功能:把接收到的SNMP報(bào)文語(yǔ)義轉(zhuǎn)化為AgentX-PDU,并根據(jù)注冊(cè)的MIB子樹(shù)判斷發(fā)送給適合的子代理;把要發(fā)送出去的AgentX-PDU轉(zhuǎn)化為SNMP報(bào)文交由SNMP引擎發(fā)送給管理站。
  子代理的主要功能:
  (1)AgentX子代理引擎:接收并發(fā)送Agent-PDU。
  (2)管理申請(qǐng)注冊(cè)處理功能:向主代理申請(qǐng)會(huì)話的創(chuàng)建與撤銷、MIB子樹(shù)的注冊(cè)與注銷、索引分配及能力聲明等的處理。
  (3)MIB信息處理功能:收集定義在MIB文檔中的信息函數(shù);完成MIB對(duì)象的訪問(wèn)與設(shè)置,并返回相應(yīng)的AgentX-Response-PDU。
2.2 ForCES路由器網(wǎng)絡(luò)管理方案
  2004年4月RFC3746[3]給出了ForCES框架,指出ForCES路由器必須要支持SNMP管理,又一次指出在連接后階段,絕大多數(shù)的外部管理任務(wù)應(yīng)當(dāng)通過(guò)與CE交互來(lái)實(shí)現(xiàn),這樣做的目的是使得ForCES路由器對(duì)外呈現(xiàn)為一個(gè)整體的功能設(shè)備。因此,F(xiàn)orCES框架建議SNMP代理由CE來(lái)實(shí)現(xiàn),F(xiàn)E則將收到的SNMP消息重定向到負(fù)責(zé)它們的CE。
  根據(jù)ForCES對(duì)網(wǎng)絡(luò)管理的需求及其體系結(jié)構(gòu)的特點(diǎn),提出基于AgentX的網(wǎng)絡(luò)管理方案,框架如圖2所示。整個(gè)框架結(jié)構(gòu)主要由三部分組成:SNMP服務(wù)器、CE和FE。其中SNMP服務(wù)器作為主代理,采用net-snmp的軟件包進(jìn)行二次開(kāi)發(fā);CE作為子代理采用AgentX++的軟件包進(jìn)行二次開(kāi)發(fā),MIB分布于各個(gè)子代理上,由CE負(fù)責(zé)維護(hù)。SNMP服務(wù)器和CE端通過(guò)虛接口(VIP)連接,這個(gè)虛接口嵌入到Linux的內(nèi)核中起到接口映射的作用,即FE上的接口與SNMP服務(wù)器上的接口是一一對(duì)應(yīng)的關(guān)系。此方案中,F(xiàn)orCES協(xié)議要為SNMP開(kāi)辟兩條數(shù)據(jù)通道,第一條是SNMP-PDU傳遞通道,第二條是MIB取值通道。網(wǎng)絡(luò)管理者發(fā)送SNMP消息給ForCES結(jié)構(gòu)路由器的FE,F(xiàn)E通過(guò)ForCES協(xié)議重定向到CE,CE通過(guò)ForCES結(jié)構(gòu)路由器提供第一條數(shù)據(jù)通道將此消息轉(zhuǎn)發(fā)給主代理。主代理通過(guò)標(biāo)準(zhǔn)的協(xié)議AgentX與CE上的子代理交互,由子代理通過(guò)第二條數(shù)據(jù)通道獲取相應(yīng)的MIB值,最后由主代理構(gòu)造SNMP響應(yīng)消息,由ForCES提供的第一條數(shù)據(jù)通道轉(zhuǎn)發(fā)給管理者,從而完成完整的網(wǎng)絡(luò)管理功能。

?


2.3 CE端Subagent功能分析
  CE端Subagent的設(shè)計(jì)主要考慮到收集CE和FE端被管理對(duì)象的管理信息,通過(guò)主代理響應(yīng)管理站的查詢和更新請(qǐng)求,必要時(shí)發(fā)送告警信息給管理站。因此,CE端的子代理主要完成以下4大功能:(1)通信功能,包括與主代理的通信和被管理對(duì)象之間的通信,向主代理發(fā)起AgentX任務(wù),向主代理注冊(cè)所負(fù)責(zé)的MIB區(qū)域,并要求通信接口簡(jiǎn)單易擴(kuò)展;(2)信息獲取和管理功能,及時(shí)準(zhǔn)確地獲取CE端和FE端被管理對(duì)象的被管理信息,并盡量減少子代理與被管理對(duì)象之間的交互,盡量減少影響被管理對(duì)象本身的性能,實(shí)例化CE和FE的被管理對(duì)象,對(duì)被管理對(duì)象的各個(gè)變量執(zhí)行管理操作;(3)實(shí)時(shí)查詢功能,由于FE每個(gè)接口事件的統(tǒng)計(jì)信息是動(dòng)態(tài)的,CE維護(hù)這樣一組動(dòng)態(tài)的信息,必須實(shí)時(shí)動(dòng)態(tài)更新這組信息才能監(jiān)控FE上真實(shí)的信息,所以不采用FE定時(shí)上報(bào)CE的機(jī)制,而是采用CE根據(jù)需要實(shí)時(shí)詢問(wèn)FE的機(jī)制。把FE處每個(gè)接口事件的統(tǒng)計(jì)信息做成一張表if_table的形式,通過(guò)調(diào)用do_update( )函數(shù)來(lái)完成實(shí)時(shí)動(dòng)態(tài)更新if_table中任意節(jié)點(diǎn)的值;(4)日志功能,記錄子代理本身的啟動(dòng)、關(guān)閉以及狀態(tài)信息,以便出現(xiàn)問(wèn)題時(shí)能盡快定位錯(cuò)誤。
2.4 CE端Subagent體系結(jié)構(gòu)
  作為ForCES體系結(jié)構(gòu)中的控制器,CE所擔(dān)負(fù)的責(zé)任是能夠管理并監(jiān)控FE的性能(比如FE各個(gè)接口的流量信息)和連接狀態(tài)(比如與CE的連接是否中斷)。所以,在ForCES路由器的網(wǎng)絡(luò)管理系統(tǒng)中,CE端Subagent起著關(guān)鍵性的作用。根據(jù)CE端Subagent功能分析,設(shè)計(jì)體系結(jié)構(gòu)如圖3所示,它表示CE端Subagent體系結(jié)構(gòu)和各個(gè)模塊之間的相互關(guān)系,其中VIP是SNMP Server基于Linux內(nèi)核上的虛接口,它起到端口映射的作用。當(dāng)網(wǎng)絡(luò)管理者發(fā)送SNMP消息時(shí),F(xiàn)E接收SNMP消息,加上FE 身份證明(FE ID)及其端口號(hào)(port ID)后通過(guò)TML(Translation Mapping Layer)被重定向到CE,CE去掉兩個(gè)ID將SNMP轉(zhuǎn)發(fā)給主代理,即SNMP服務(wù)器,SNMP服務(wù)器通過(guò)AgentX協(xié)議與CE上的子代理通信,若是:(1)取CE MIB,子代理通過(guò)“處理CE查詢”模塊取得或設(shè)置相應(yīng)MIB值;(2)取FE MIB,Subagent還需要通過(guò)ForCES協(xié)議與FE通信,通過(guò)FE處的“配置、查詢處理”模塊從FE屬性中獲取或設(shè)置相應(yīng)MIB值。然后,主代理構(gòu)造相應(yīng)的SNMP響應(yīng)消息,通過(guò)“SNMP轉(zhuǎn)發(fā)”模塊,加上FE ID和port ID,再交給FE轉(zhuǎn)發(fā)給網(wǎng)絡(luò)管理者。其子代理主處理流程如圖4所示。

?

3 測(cè)試結(jié)果
??? CE端的子代理駐留了所有的MIB,以interfaces組為例,并選取其中的接口輸入單播數(shù)據(jù)包數(shù)量(ifInUcastPkts)和接口輸出單播數(shù)據(jù)包數(shù)量(ifOutUcastPkts)兩個(gè)節(jié)點(diǎn)來(lái)監(jiān)測(cè)FE接口的流量信息,目的是為了驗(yàn)證CE端Subagent模塊能否配合ForCES體系結(jié)構(gòu)正常工作。
3.1 測(cè)試平臺(tái)的搭建
  前面分析了方案、CE端Subagent的體系結(jié)構(gòu)及其實(shí)現(xiàn)機(jī)制。這一節(jié)主要以實(shí)踐的方式來(lái)驗(yàn)證前面論述的正確性。選擇Getif作為該網(wǎng)管系統(tǒng)的SNMP Manager,采用IDX2401型開(kāi)發(fā)板作為轉(zhuǎn)發(fā)件FE、通用PC機(jī)作為CE控制器和一臺(tái)通用PC機(jī)作為SNMP服務(wù)器構(gòu)建ForCES 路由器,其網(wǎng)絡(luò)管理的測(cè)試平臺(tái)如圖5所示。

?

3.2 結(jié)果分析
  下面通過(guò)數(shù)據(jù)來(lái)看CE端Subagent在ForCES路由器中是否能正常監(jiān)測(cè)FE接口的信息流量,圖6給出了實(shí)驗(yàn)測(cè)試的結(jié)果,其中interfaces.ifTable.ifInUcastPkts.1表示FE端第一個(gè)接口輸入單播數(shù)據(jù)包數(shù)量,interfaces.ifTable.

ifOutUcastPkts.1表示FE上第一個(gè)接口輸出單播數(shù)據(jù)包數(shù)量。從圖6可以看出CE端Subagent通過(guò)ForCES協(xié)議實(shí)時(shí)監(jiān)控到FE端單播數(shù)據(jù)包輸入、輸出情況,從而驗(yàn)證了ForCES路由器中網(wǎng)絡(luò)管理系統(tǒng)中CE端Subagent功能模塊的正確性。

?


  CE端Subagent模塊是ForCES路由器網(wǎng)絡(luò)管理系統(tǒng)的核心,幾乎維護(hù)所有的MIB。文章提出基于AgentX的網(wǎng)絡(luò)管理方案,并分析CE端子代理的模塊功能,最后以interfaces組為例,選取其中的兩個(gè)節(jié)點(diǎn)進(jìn)行了驗(yàn)證,實(shí)現(xiàn)了向FE實(shí)時(shí)讀取MIB值的機(jī)制,為ForCES路由器網(wǎng)絡(luò)管理系統(tǒng)的實(shí)現(xiàn)邁出了重要的一步。


參考文獻(xiàn)
[1] DORIA A(co-editor). ForCES protocol specification draftietf-forces-protocol-02.txt.[DB/? OL],http://www.sstanamera.com/~forces/Drafts/draft-ietf-forces-protocol-02.txt, Feb 2005
[2] DANIELE M,WIJNEN B,FRANCISCO E D.Agent extensibility (AgentX) protocol version?1. RFC 2741 [DB/OL], http://www.faqs.org/rfcs/rfc2741.html, Jan.2000.
[3] YANG L, DANTU R. Forwarding and control?element separation(ForCES) framework.RFC-3746,April, 2004, http://www.faqs.org/rfcs/rfc3746.html
[4]?Network Working Group A. Doria. ForCES protocol specification draft?ietf-forces-protocol-02.txt. February 20,2005.http://www.ietf.org/internet-drafts/draft-ietf-forces-protocol-02.
[5]?YANG L, HALPERN J, GOPAL R, et al. ForCES forwarding element model draft-ietf-forces-model-04.
?August 2005,http://www.ietf.org/internet-drafts/draft-ietfforces-model-04.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。