摘要:簡要介紹了ForCES路由器的模型,著重論述了ForCES體系結構中MIB變量分布機制和SNMP數據包傳輸機制,旨在解決ForCES路由器中實現網絡管理的難點;同時詳細描述了ForCES路由器實現網絡管理的模塊結構和內部處理方式,以及get、set和trap的處理流程。根據ForCES工作組的標準草案和RFC建立了相應的網絡管理模型,并在實踐中使用了SNMP和AgentX協議,實現了對ForCES路由器的管理。該網絡管理結構具有通用性、靈活性和高效性的特點。
關鍵詞:網絡管理; ForCES路由器; 簡單網絡管理協議; AgentX協議
中圖分類號:TP393文獻標志碼:A
文章編號:1001-3695(2007)12-0303-04
網絡設備技術需求趨勢分析顯示,基于開放架構的高度靈活性將是下一代網絡設備的重要特征。現在新協議、新算法和新業務層出不窮,國外許多網絡業趨勢分析均指出,下一代網絡設備的硬件互操作性將可達到刀片級,軟件互操作性達到API級。轉發件和控制件分離(forwarding and control element separation,ForCES[1])的開放可編程路由器體系結構順應了這種新的發展趨勢,它滿足下一代網絡發展所提出的開放性、可擴展性和可編程性的要求。為此,實現對ForCES路由器的有效管理,開發一個具有可擴展性的高效率和高度靈活性的網絡管理系統對于開發人員來說是一項迫在眉睫的任務。
SNMP由于其簡單和實用性的特點,被眾多廠商支持,成為事實上的網絡管理標準協議。然而,隨著網絡設備技術的飛速發展,網絡數量的增加,規模的擴大和設備的多樣性,尤其基于開放架構的靈活性對代理的可擴展性提出了更高的挑戰和要求。可擴展的SNMP代理AgentX協議拓寬了基于SNMP網絡管理對基本網絡設備、重要部件及應用能力,具有靈活可靠的擴展性,可以隨時以模塊化的方式將一個新的加入網絡的設備或部件納入被管對象的范圍。
本文結合國家“863”開放可編程路由器專題研究項目ForCES路由器的開發原型,以及SNMP和AgentX各自的優點,提出了一種基于SNMP和AgentX協議的網絡管理框架。筆者也試圖從SNMP網絡管理協議出發,探討SNMP和AgentX協議在ForCES路由器中的應用,并就網絡管理中的關鍵技術作了有益的探索。
1ForCES體系結構下的網絡管理
ForCES 是國際互聯網工程任務組(Internet Engineering Task Force,IETF)路由領域(routing area)的一個工作組,它專門研究開放可編程的IP路由器的體系結構和協議問題,是當前開放可編程網絡研究備受關注的研究組織。ForCES基本思想是把IP路由器分成轉發件(forwarding elements,FE)和控制件(control elements,CE),CE與FE兩者之間的通信方式和內容由ForCES協議[1]所規定,FE中由多個不同種類的邏輯功能塊(logical functional block,LFB[2])組成。本文將支持這種ForCES結構的路由器稱為ForCES路由器,如圖1所示。
ForCES路由器中,一個CE可以控制多達幾百個FE。CE與FE之間的連接面稱為Fp參考點,Fp參考點不僅可以經由一跳(single hop)網絡如以太網,也可以經由多跳(multi-hop)網絡如互聯網實現。Fi/f為各個FE的網絡接口參考點,網絡數據由此進出并被相應FE轉發。
路由器是網絡的核心設備,ForCES路由器的網絡管理就是對ForCES路由器的配置、性能、故障和安全以及計費進行管理,以提高路由器的運行效率和優化網絡性能。基于AgentX網管代理技術能夠很好地支持ForCES這種分布式的體系結構。由于SNMP協議采用的是管理站/代理者的工作模式,具體應用在分布式的ForCES體系結構中必須要解決兩大難點:a)代理概念上的MIB與實際的MIB怎樣建立一一對應的關系,MIB變量如何分布才能提高網絡管理效率及可靠性和靈活性;b)SNMP消息如何能在ForCES體系結構中傳輸,并通過代理CE來訪問FE上的信息。本文將提出MIB變量分布機制解決第一個難點;提出基于虛擬接口技術SNMP數據包傳輸機制解決第二個難點。
2ForCES路由器中網絡管理關鍵技術研究
2.1基于AgentX的MIB變量分布機制
理解網絡管理框架的關鍵是網絡管理信息模型。管理信息模型建立得越好越有利于網絡的統一管理。而管理信息要從兩個方面來描述,即管理信息結構SMI和管理信息庫MIB[3]。SMI定義了管理信息結構,以便區分不同的管理信息和管理信息元素,同時也定義了管理對象之間的關系;MIB定義了具體的管理對象,是對被管網絡資源的邏輯上的綜合,是所有管理信息概念性的倉庫。網絡管理活動是通過訪問和操作MIB中的管理對象來實現的。MIB是管理系統的心臟,它為管理系統的所有功能提供接口。因此,MIB在一個具體被管設備上分布優劣直接影響管理系統或代理系統的效率和靈活性。
考慮到ForCES路由器由多個CE和FE組成,各自的任務均很繁重。為減少一臺主機的處理負擔,兼容多個CE,達到負載均衡,整個CE可劃分成控制器和服務器兩部分。其中服務器執行路由協議服務和SNMP服務功能。基于AgentX協議的網管代理恰好適合CE的這種功能分布式結構的理想環境。CE服務器作為AgentX主代理,CE控制器作為AgentX子代理,中間通過AgentX協議通信,MIB由子代理和主代理以就近原則各自維護,達到節省資源、提高管理效率的目的。這樣,CE網管代理程序,其結構非常清晰容易編寫,管理應用也容易擴充,管理過程更加標準且規范,能更好地發揮可擴展性和MIB動態加載或卸載靈活性。當其中一個CE出現故障時,CE冗余也能及時添加進來實現不同管理系統間的合作與交互。
2.2基于虛擬接口技術的SNMP數據包傳輸機制
ForCES路由器的體系結構,對外呈現一個整體的功能設備,對內卻是FE與CE相互分離并又協同工作的一種分布式體系結構。因此,對ForCES路由器實現網絡管理,其實就是一種代理網絡設備。按照SNMP工作模式,管理站和它所發出的請求信息對ForCES路由器而言是一種外部設備和外部信息。考慮到CE和FE所充當的角色,CE作為控制件擔任管理者的身份,FE作為轉發件擔任被管理者的身份,網絡管理站必須要通過CE才能訪問FE上的信息。然而,由于ForCES路由器網絡接口在FE上,外界的網絡數據必須從FE接口進出并被相應轉發,網絡管理站只能向FE接口發送或接收數據。管理站向FE某個接口發送一個請求消息,必須要有一個響應消息從原路和原端口返回,才能監視和控制系統的性能狀態。
通過上述分析,虛擬接口技術可以很好地解決FE物理接口與CE邏輯接口的映射問題。所謂虛擬接口是指元件本身不具備這樣的物理接口,靠軟件來建立一個邏輯上的接口。為了讓CE能夠清楚地知道FE的物理地址,本文采用虛擬接口技術(VIDD):在CE上生成虛擬接口,建立虛擬接口與FE上真實接口之間的對應關系,在每個進出網管軟件的數據包頭前加上虛擬接口信息,通過虛擬接口信息既能使數據包從指定的FE端口發出,也能使網管軟件知道數據包從某個FE端口進來。虛擬接口技術使得傳統的集中式路由器上的應用可以用于ForCES這種分布式的結構下,也為實現其網絡管理提供足夠的靈活性。
ForCES協議數據包主要由控制包和重定向包兩大類組成。所謂重定向包[2],指的是其他路由器發送給ForCES路由器自身的數據包,需要ForCES路由器作特定的處理,或者是ForCES路由器發送給其他路由器的數據包(一般由運行于CE上的應用產生)。在ForCES路由器這種分布式路由器體系結構下,這兩類數據包需要經由ForCES從FE到CE或者由CE到達FE。ForCES路由器中主要有路由協議包和SNMP包兩類重定向包。當FE接收到SNMP數據包,經過判斷是需要經過CE處理的,在IP數據包頭部添加虛擬接口頭部(VIP),然后將其封裝到ForCES協議的重定向消息中發送給CE。VIP的頭部主要由兩個字段FEID和portID組成。其中:FEID標志數據包的到達或者目的FE;portID標志數據包的到達或者目的端口號。VIP頭部的主要作用是屏蔽ForCES路由器這種硬件的分布特性,在虛擬接口與真實接口之間架起一座橋梁,保證CE上層應用的正常運行。
CE控制器在收到來自FE的重定向數據包后,由ForCES協議解析,獲知是SNMP包,需要處理的是從ForCES重定向消息中取出添加了VIP頭的數據包,通過IP隧道發送給CE服務器。CE服務器接收到這個數據包后,先根據VIP頭中的FEID和portID找到數據包需要遞交的虛擬接口,接著SNMP數據包經過服務器的TCP/IP協議棧,最終遞交給SNMP應用程序。SNMP應用處理完這個SNMP數據包后,產生特定的響應,這個響應同樣需要在虛擬網卡上添加特定的VIP頭,然后通過IP隧道發送給CE控制器。CE控制器收到來自服務器上的SNMP響應包,將其封裝到ForCES重定向消息中發送給FE;FE收到該消息后,去掉VIP頭,根據VIP頭的信息找到數據包需要發送出去的端口,然后通過該端口將該SNMP響應包發送給管理站。SNMP數據包在ForCES路由器上傳輸過程如圖2所示。
3ForCES路由器中網絡管理的實現方案
3.1ForCES網絡管理實現框架
根據以上分析,提出了ForCES路由器的網絡管理框架,如圖3所示。整個體系結構由三部分組成,即管理站、FE和CE。其中:CE和FE構成ForCES路由器。管理站與ForCES路由器之間通過SNMP通信,FE與CE之間通過ForCES協議通信。CE上分布Linux系統和Windows系統兩個PC主機單元,分別駐留了主代理和子代理,它們之間采用標準AgentX協議通信。MIB接口是要在概念上的MIB與真正的MIB之間架起一座橋梁,通過這座橋梁實現MIB查詢和配置數據以及trap通過信息在管理站顯示。
3.2MIB變量存取的實現
CE是ForCES路由器的管理者,它通過發送和接收各種ForCES消息來管理FE屬性以及FE中的邏輯功能塊。這些ForCES消息[3]可以分為:ForCES查詢和應答消息(ForCES query和query response);ForCES配置和應答消息(ForCES configuration和configration response);ForCES事件報告消息(For-CES event notification和event notification response);ForCES重定向消息(ForCES redirect);CE與FE啟動連接、斷開、正在連接消息(association setup、association teardown、association setup response)。
3.2.1MIB查詢
當管理站的客戶希望讀取ForCES路由器變量時,會發送一條SNMP-Get-Request-PDU到FE接口,欲得到其響應消息必須分三步走:
a)FE接收來自管理站的請求消息,通過前述的SNMP數據包傳輸機制和ForCES協議重定機制,將包發送到CE控制器。CE控制器接收到重定向消息,通過ForCES協議解析判斷數據包的類型是SNMP包,采用IP隧道技術將該數據包發送到CE服務器(即主代理)上。
b)CE服務器接收到SNMP數據包,由AgentX[8]協議的管理調度功能將SNMP-Get-Request-PDU轉換成AgentX-Get-Request-PDU,然后通過AgentX協議將該消息發送到CE控制器子代理模塊。
c)CE控制器子代理模塊對AgentX包進行解析,若是查詢FE上信息,CE通過控制通道將查詢消息轉發給FE,FE執行完查詢任務,構造響應消息到CE控制器。CE控制器子代理模塊構造AgentX的響應消息發送到CE服務器。CE服務器將響應消息轉換成SNMP的響應消息,通過ForCES協議按原路發送到管理站,從而完成整個查詢功能。其查詢處理流程如圖4所示。
3.2.2MIB配置
當管理站的客戶希望配置ForCES路由器變量時,網絡管理站的客戶就發送一條SNMP-Set-Request-PDU到FE的某個接口,其處理過程類似于MIB查詢。所不同的是CE控制器子代理模塊接收AgentX-Set-Request-PDU時,需要經過兩個階段才能真正完成set操作:
a)初始階段——測試set的操作是否成功。
CE服務器主代理模塊在接收SNMP-Set-PDU之后,確定所屬索引分配的MIB區域,發送一個或多個AgentX-TestSet-PDU到相應的區域會話上。子代理在接收到TestSet請求后,提取請求設置的值,測試set操作是否能夠成功。一個AgentX-TestSet-PDU中可能含有多個請求設置的變量,只有PDU中所有變量都測試成功,CE控制器子代理模塊才會返回測試成功的響應;否則返回錯誤信息。
b)第二階段——真正執行set的操作。
若所有發送的TestSet-PDU都返回無錯響應,CE服務器主代理模塊繼續下一步發送CommitSet請求通知子代理進行真正的設置操作。CommitSet請求通過MIB接口函數,調用CE控制器上配置消息模塊,讓FE去執行CE控制器的配置命令:如果執行失敗,就構造CommitSet操作失敗響應值SET_TO_FE_ERROR,目的是為了觀察配置失敗到底是哪里出錯,AgentX-UndoSet-PDU將被主代理發送到所有初始階段中已發送AgentX-CommitSet-PDU的會話上,通知子代理取消先前的CommitSet操作,AgentX-CleanupSet-PDU被發送到被涉及的其他會話上,標志著set操作的結束;如果執行成功,就構造AgentX-Set-Response-PDU返回給CE服務器主代理。其配置處理流程如圖5所示。
3.2.3Trap的發送
當FE上預定義的異常事件發生時,通過ForCES控制消息的控制通道上報給CE控制器。CE控制器解析數據包是異常事件上報的消息,通過MIB接口的處理模塊,由子代理構造AgentX-Notify-PDU發送給CE服務器的主代理。主代理收到Notify報文后,構造AgentX響應報文,返回給子代理。同時,主代理將收到的AgentX-Notify-PDU構造成SNMP-Trap-PDU發送給CE控制器的管理進程。此時,CE控制器以重定向包的形式發送給FE,由FE傳給管理站。從而,管理站監測到FE所出現的異常情況。其Trap處理流程如圖6所示。
4方案測試
圖7是ForCES路由器網絡管理系統測試試驗床基本結構圖。當前設置了基于Windows系統的CE控制面主機、基于Linux系統的CE服務器、基于嵌入式系統的IXDP開發平臺的三個FE(其中兩個FE運行在IXMB2401上,一個FE運行在IXMB2851上),CE與FE之間用一臺交換機相連,它們構成一臺ForCES路由器。裝有MIB瀏覽器的主機系統作為管理站。這個MIB瀏覽器采用Getif軟件來顯示觀測節點的信息。
通過測試,ForCES路由器的SNMP代理能正常查詢和配
置FE上的信息,對出現異常情況也能發生通告。這說明該管理系統是可行有效的。
5結束語
在全球計算機網絡急劇發展的今天,路由器成為網絡設備的核心,如何高效地管理下一代網絡設備是一項十分緊迫的課題。為此,本文介紹了一種基于SNMP和AgentX管理ForCES路由器的實現方法,為完善ForCES路由器網絡管理系統奠定基礎,這是它的實際意義。然而,其理論意義勝過現實意義,并為管理其他新興路由器提供了一種方法和參考。
參考文獻:
[1]DORIA A, HASS R, SALIM J H, et al. ForCES protocol specification[S]. 2006.
[2]YANG L, HALPERN J, GOPAL R, et al. ForCES forwarding element model[S]. 2006.
[3]WANG W, DONG L, ZHUGE B. TCP and UDP based ForCES protocol TML over IP networks[S]. 2006.
[4]WANG W, SALIM J. ForCES transport mapping layer (TML) ser-vice primitives[S]. 2006.
[5]KHOSRAVI H, ANDERSONT. RFC 3654, Requirements for separation of IP control and forwarding[S]. 2003-11.
[6]YANG L, DANTU R. RFC 3746, Forwarding and control element separation (ForCES) framework[S]. 2004-04.
[7]CASE J, FEDOR M, SCHOFFSTALL M, et al. A simple network management protocol (SNMP)[DB/OL].[1990-05].http://isc.faqs.org/rfcs/rfc1157.html.
[8]DANIELE M, WIJNEN B, ELLISON M, et al. RFC 2741, Agent extensibility (AgentX) protocol version 1[S]. 2000-01.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”