摘 要: 隨著互聯(lián)網(wǎng)等計算機網(wǎng)絡(luò)應(yīng)用領(lǐng)域的迅速擴大,,新的一代網(wǎng)絡(luò)設(shè)備更具靈活性,、開放性和可擴展性,如何對這些新興的網(wǎng)絡(luò)設(shè)備進行有效管理,,是當前迫切需要解決的問題之一。文章針對ForCES路由器的體系結(jié)構(gòu)提出一種基于AgentX的網(wǎng)絡(luò)管理方案,,并詳細論述了基于AgentX協(xié)議CE端子代理的設(shè)計與實現(xiàn),。
關(guān)鍵詞:網(wǎng)絡(luò)管理; ForCES路由器,; AgentX協(xié)議
?
隨著互聯(lián)網(wǎng)等計算機網(wǎng)絡(luò)應(yīng)用領(lǐng)域的迅速擴大,,不斷出現(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)具有足夠的模塊化特性,,并通過標準化組織進行標準化,,使得每個模塊可由不同廠家獨立研究開發(fā)。轉(zhuǎn)發(fā)件FE(Forwarding Element)與控制件CE(Control Element)分離的開放可編程路由器體系結(jié)構(gòu)正是基于這樣一個歷史背景下提出來的,,它滿足新一代網(wǎng)絡(luò)發(fā)展所提出的開放性,、可擴展性和可編程性的要求。為此,,實現(xiàn)對ForCES路由器的有效管理,,迫切要求開發(fā)一個具有可擴展性的高效率的網(wǎng)絡(luò)管理系統(tǒng)。本文結(jié)合目前的研究項目“ForCES路由器的開發(fā)原型”,,提出一種基于AgentX協(xié)議的網(wǎng)絡(luò)管理方案,,并詳細論述了基于AgentX協(xié)議CE端子代理設(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é)議問題,是當前開放可編程網(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)作為一個獨立的管理實體,從外部看,,一個NE就相當于網(wǎng)絡(luò)中的一個路由或者交換設(shè)備,。由圖1可以看出,一個NE由一個或多個CE和一個或多個FE組成,,CE和FE間的通信按照ForCES協(xié)議的規(guī)定來完成,,這個連接點稱為Fp參考點。
2 ForCES路由器中CE端Subagent的設(shè)計與實現(xiàn)
2.1 AgentX協(xié)議原理
AgentX[2]工作組定義了標準的可擴展的SNMP代理框架,,即AgentX協(xié)議,。它定義了SNMP代理中的兩個不同的實體:主代理(master agent)和子代理(subagent)。AgentX正是用于這兩種實體間的通信,,它允許多個代理向SNMP管理應(yīng)用程序透明地提供MIB信息,,以便提供易擴展的、動態(tài)的對復(fù)雜網(wǎng)絡(luò)系統(tǒng)的管理,。其中主代理與子代理分工明確,、結(jié)構(gòu)清晰,主要執(zhí)行的功能如下:
主代理的主要功能:
(1)SNMP引擎:以代理的身份發(fā)送和接收SNMP協(xié)議報文,,對報文進行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)當通過與CE交互來實現(xiàn),,這樣做的目的是使得ForCES路由器對外呈現(xiàn)為一個整體的功能設(shè)備,。因此,F(xiàn)orCES框架建議SNMP代理由CE來實現(xiàn),,F(xiàn)E則將收到的SNMP消息重定向到負責它們的CE,。
根據(jù)ForCES對網(wǎng)絡(luò)管理的需求及其體系結(jié)構(gòu)的特點,提出基于AgentX的網(wǎng)絡(luò)管理方案,,框架如圖2所示,。整個框架結(jié)構(gòu)主要由三部分組成:SNMP服務(wù)器、CE和FE,。其中SNMP服務(wù)器作為主代理,,采用net-snmp的軟件包進行二次開發(fā);CE作為子代理采用AgentX++的軟件包進行二次開發(fā),,MIB分布于各個子代理上,,由CE負責維護。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ā)給主代理,。主代理通過標準的協(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ù),,向主代理注冊所負責的MIB區(qū)域,,并要求通信接口簡單易擴展,;(2)信息獲取和管理功能,及時準確地獲取CE端和FE端被管理對象的被管理信息,,并盡量減少子代理與被管理對象之間的交互,,盡量減少影響被管理對象本身的性能,實例化CE和FE的被管理對象,,對被管理對象的各個變量執(zhí)行管理操作,;(3)實時查詢功能,由于FE每個接口事件的統(tǒng)計信息是動態(tài)的,,CE維護這樣一組動態(tài)的信息,,必須實時動態(tài)更新這組信息才能監(jiān)控FE上真實的信息,所以不采用FE定時上報CE的機制,,而是采用CE根據(jù)需要實時詢問FE的機制,。把FE處每個接口事件的統(tǒng)計信息做成一張表if_table的形式,通過調(diào)用do_update( )函數(shù)來完成實時動態(tài)更新if_table中任意節(jié)點的值;(4)日志功能,,記錄子代理本身的啟動,、關(guān)閉以及狀態(tài)信息,以便出現(xiàn)問題時能盡快定位錯誤,。
2.4 CE端Subagent體系結(jié)構(gòu)
作為ForCES體系結(jié)構(gòu)中的控制器,,CE所擔負的責任是能夠管理并監(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)核上的虛接口,,它起到端口映射的作用,。當網(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é)點來監(jiān)測FE接口的流量信息,,目的是為了驗證CE端Subagent模塊能否配合ForCES體系結(jié)構(gòu)正常工作。
3.1 測試平臺的搭建
前面分析了方案,、CE端Subagent的體系結(jié)構(gòu)及其實現(xiàn)機制,。這一節(jié)主要以實踐的方式來驗證前面論述的正確性。選擇Getif作為該網(wǎng)管系統(tǒng)的SNMP Manager,,采用IDX2401型開發(fā)板作為轉(zhuǎn)發(fā)件FE,、通用PC機作為CE控制器和一臺通用PC機作為SNMP服務(wù)器構(gòu)建ForCES 路由器,其網(wǎng)絡(luò)管理的測試平臺如圖5所示,。
?
3.2 結(jié)果分析
下面通過數(shù)據(jù)來看CE端Subagent在ForCES路由器中是否能正常監(jiān)測FE接口的信息流量,,圖6給出了實驗測試的結(jié)果,其中interfaces.ifTable.ifInUcastPkts.1表示FE端第一個接口輸入單播數(shù)據(jù)包數(shù)量,,interfaces.ifTable.
ifOutUcastPkts.1表示FE上第一個接口輸出單播數(shù)據(jù)包數(shù)量,。從圖6可以看出CE端Subagent通過ForCES協(xié)議實時監(jiān)控到FE端單播數(shù)據(jù)包輸入、輸出情況,,從而驗證了ForCES路由器中網(wǎng)絡(luò)管理系統(tǒng)中CE端Subagent功能模塊的正確性,。
?
CE端Subagent模塊是ForCES路由器網(wǎng)絡(luò)管理系統(tǒng)的核心,幾乎維護所有的MIB,。文章提出基于AgentX的網(wǎng)絡(luò)管理方案,,并分析CE端子代理的模塊功能,最后以interfaces組為例,,選取其中的兩個節(jié)點進行了驗證,,實現(xiàn)了向FE實時讀取MIB值的機制,為ForCES路由器網(wǎng)絡(luò)管理系統(tǒng)的實現(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.