《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(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ī)網(wǎng)絡(luò)應(yīng)用領(lǐng)域的迅速擴(kuò)大,新的一代網(wǎng)絡(luò)設(shè)備更具靈活性、開放性和可擴(kuò)展性,如何對這些新興的網(wǎng)絡(luò)設(shè)備進(jìn)行有效管理,是當(dāng)前迫切需要解決的問題之一。文章針對ForCES路由器的體系結(jié)構(gòu)提出一種基于AgentX的網(wǎng)絡(luò)管理方案,并詳細(xì)論述了基于AgentX協(xié)議CE端子代理的設(shè)計與實(shí)現(xiàn)。
  關(guān)鍵詞:網(wǎng)絡(luò)管理; ForCES路由器; AgentX協(xié)議

?

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

?

?

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

  AgentX[2]工作組定義了標(biāo)準(zhǔn)的可擴(kuò)展的SNMP代理框架,即AgentX協(xié)議。它定義了SNMP代理中的兩個不同的實(shí)體:主代理(master agent)和子代理(subagent)。AgentX正是用于這兩種實(shí)體間的通信,它允許多個代理向SNMP管理應(yīng)用程序透明地提供MIB信息,以便提供易擴(kuò)展的、動態(tài)的對復(fù)雜網(wǎng)絡(luò)系統(tǒng)的管理。其中主代理與子代理分工明確、結(jié)構(gòu)清晰,主要執(zhí)行的功能如下:
  主代理的主要功能:
  (1)SNMP引擎:以代理的身份發(fā)送和接收SNMP協(xié)議報文,對報文進(jìn)行BER編碼或解碼,執(zhí)行SNMP訪問控制策略,但幾乎不訪問管理信息。
  (2)AgentX主代理引擎:接收并發(fā)送Agent-PDU。
  (3)管理注冊功能:為子代理創(chuàng)建會話、注冊MIB樹、OID索引分配及對子代理能力聲明的處理。
  (4)管理調(diào)度功能:把接收到的SNMP報文語義轉(zhuǎn)化為AgentX-PDU,并根據(jù)注冊的MIB子樹判斷發(fā)送給適合的子代理;把要發(fā)送出去的AgentX-PDU轉(zhuǎn)化為SNMP報文交由SNMP引擎發(fā)送給管理站。
  子代理的主要功能:
  (1)AgentX子代理引擎:接收并發(fā)送Agent-PDU。
  (2)管理申請注冊處理功能:向主代理申請會話的創(chuàng)建與撤銷、MIB子樹的注冊與注銷、索引分配及能力聲明等的處理。
  (3)MIB信息處理功能:收集定義在MIB文檔中的信息函數(shù);完成MIB對象的訪問與設(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)通過與CE交互來實(shí)現(xiàn),這樣做的目的是使得ForCES路由器對外呈現(xiàn)為一個整體的功能設(shè)備。因此,F(xiàn)orCES框架建議SNMP代理由CE來實(shí)現(xiàn),F(xiàn)E則將收到的SNMP消息重定向到負(fù)責(zé)它們的CE。
  根據(jù)ForCES對網(wǎng)絡(luò)管理的需求及其體系結(jié)構(gòu)的特點(diǎn),提出基于AgentX的網(wǎng)絡(luò)管理方案,框架如圖2所示。整個框架結(jié)構(gòu)主要由三部分組成:SNMP服務(wù)器、CE和FE。其中SNMP服務(wù)器作為主代理,采用net-snmp的軟件包進(jìn)行二次開發(fā);CE作為子代理采用AgentX++的軟件包進(jìn)行二次開發(fā),MIB分布于各個子代理上,由CE負(fù)責(zé)維護(hù)。SNMP服務(wù)器和CE端通過虛接口(VIP)連接,這個虛接口嵌入到Linux的內(nèi)核中起到接口映射的作用,即FE上的接口與SNMP服務(wù)器上的接口是一一對應(yīng)的關(guān)系。此方案中,F(xiàn)orCES協(xié)議要為SNMP開辟兩條數(shù)據(jù)通道,第一條是SNMP-PDU傳遞通道,第二條是MIB取值通道。網(wǎng)絡(luò)管理者發(fā)送SNMP消息給ForCES結(jié)構(gòu)路由器的FE,F(xiàn)E通過ForCES協(xié)議重定向到CE,CE通過ForCES結(jié)構(gòu)路由器提供第一條數(shù)據(jù)通道將此消息轉(zhuǎn)發(fā)給主代理。主代理通過標(biāo)準(zhǔn)的協(xié)議AgentX與CE上的子代理交互,由子代理通過第二條數(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è)計主要考慮到收集CE和FE端被管理對象的管理信息,通過主代理響應(yīng)管理站的查詢和更新請求,必要時發(fā)送告警信息給管理站。因此,CE端的子代理主要完成以下4大功能:(1)通信功能,包括與主代理的通信和被管理對象之間的通信,向主代理發(fā)起AgentX任務(wù),向主代理注冊所負(fù)責(zé)的MIB區(qū)域,并要求通信接口簡單易擴(kuò)展;(2)信息獲取和管理功能,及時準(zhǔn)確地獲取CE端和FE端被管理對象的被管理信息,并盡量減少子代理與被管理對象之間的交互,盡量減少影響被管理對象本身的性能,實(shí)例化CE和FE的被管理對象,對被管理對象的各個變量執(zhí)行管理操作;(3)實(shí)時查詢功能,由于FE每個接口事件的統(tǒng)計信息是動態(tài)的,CE維護(hù)這樣一組動態(tài)的信息,必須實(shí)時動態(tài)更新這組信息才能監(jiān)控FE上真實(shí)的信息,所以不采用FE定時上報CE的機(jī)制,而是采用CE根據(jù)需要實(shí)時詢問FE的機(jī)制。把FE處每個接口事件的統(tǒng)計信息做成一張表if_table的形式,通過調(diào)用do_update( )函數(shù)來完成實(shí)時動態(tài)更新if_table中任意節(jié)點(diǎn)的值;(4)日志功能,記錄子代理本身的啟動、關(guān)閉以及狀態(tài)信息,以便出現(xiàn)問題時能盡快定位錯誤。
2.4 CE端Subagent體系結(jié)構(gòu)
  作為ForCES體系結(jié)構(gòu)中的控制器,CE所擔(dān)負(fù)的責(zé)任是能夠管理并監(jiān)控FE的性能(比如FE各個接口的流量信息)和連接狀態(tài)(比如與CE的連接是否中斷)。所以,在ForCES路由器的網(wǎng)絡(luò)管理系統(tǒng)中,CE端Subagent起著關(guān)鍵性的作用。根據(jù)CE端Subagent功能分析,設(shè)計體系結(jié)構(gòu)如圖3所示,它表示CE端Subagent體系結(jié)構(gòu)和各個模塊之間的相互關(guān)系,其中VIP是SNMP Server基于Linux內(nèi)核上的虛接口,它起到端口映射的作用。當(dāng)網(wǎng)絡(luò)管理者發(fā)送SNMP消息時,F(xiàn)E接收SNMP消息,加上FE 身份證明(FE ID)及其端口號(port ID)后通過TML(Translation Mapping Layer)被重定向到CE,CE去掉兩個ID將SNMP轉(zhuǎn)發(fā)給主代理,即SNMP服務(wù)器,SNMP服務(wù)器通過AgentX協(xié)議與CE上的子代理通信,若是:(1)取CE MIB,子代理通過“處理CE查詢”模塊取得或設(shè)置相應(yīng)MIB值;(2)取FE MIB,Subagent還需要通過ForCES協(xié)議與FE通信,通過FE處的“配置、查詢處理”模塊從FE屬性中獲取或設(shè)置相應(yīng)MIB值。然后,主代理構(gòu)造相應(yīng)的SNMP響應(yīng)消息,通過“SNMP轉(zhuǎn)發(fā)”模塊,加上FE ID和port ID,再交給FE轉(zhuǎn)發(fā)給網(wǎng)絡(luò)管理者。其子代理主處理流程如圖4所示。

?

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

?

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

ifOutUcastPkts.1表示FE上第一個接口輸出單播數(shù)據(jù)包數(shù)量。從圖6可以看出CE端Subagent通過ForCES協(xié)議實(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組為例,選取其中的兩個節(jié)點(diǎn)進(jìn)行了驗(yàn)證,實(shí)現(xiàn)了向FE實(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)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。