可編程路由器是一種能通過配置和編程,實現靈活部署新服務和減輕網絡管理負擔的網絡層設備。
可編程路由器研究背景
近年來,在互聯網上以P2P與QoS為代表的新應用和新服務不斷出現,以覆蓋網絡(overlay network)和數據中心網絡(Data Center Network)為代表的新架構新設計也層出不窮。為了滿足精確的網絡測量、安全的網絡管理及實時的在線配置等需要,研究人員往往不得不對已有的數據包進行修改、或引入自定義的數據包。
但現有的網絡只能提供有限的功能和已知的服務,現有的網絡設備(如交換機、路由器等)也只能轉發標準的或預定義的數據包,不具有動態性和靈活性。若在現有架構上部署新的協議或應用,需要較長的設計周期和大量的費用。
為滿足以上需求,并兼顧到潛在的設計空間,可編程器由器(Programmable Router)這一新思想隨即應運而生。研究人員以期用它來處理數據流及網絡應用的多樣性,構造出一種動態的、可編程和可配置的網絡處理環境。
但是到目前為止,還沒有文獻給出關于可編程路由器的精確定義,筆者嘗試給出的定義是:可編程路由器是一種能從功能上分解成若干組件與接口,并能通過配置和編程,實現靈活而動態地部署新服務和減輕網絡管理負擔的網絡層設備。
可編程器由器與可擴展器由器(Scalable Router)有一定的區別,可擴展路由器是指:由多個可獨立運行的路由節點,通過某種互連結構連接而成的性能、功能可擴展的單映像路由器。其可擴展性主要體現在以下三個方面:交換實體的分布性帶來的規??蓴U展性;路由實體的分布性帶來的路由計算可擴展性;路由器操作系統的分布性帶來的功能可擴展性。如 Juniper公司推出的T640型可擴展核心路由器可采用三級Clos網絡互聯,而Cicso公司推出的CRS-1多機架系統采用三級BENES交換結構互聯。因此從功能可擴展上來說,二者大致是類似的,但可擴展路由器偏重于硬件可擴展,通過物理互聯使得轉發及處理能力更強大;可編程路由器更注重軟件可擴展,通過功能分解使得編程與配置更靈活。
主動網絡節點(Active Network Node)與可編程路由器也有不同,主動網絡中的中間節點(如路由器、交換機等)可以對經過它們的消息流執行定制的計算,但是主動網絡節點是帶內通訊(in-band communication),而可編程路由器是帶外通訊(out-band communication);主動網絡節點使用通用的處理器來執行注入的代碼,以實現軟件重配置算法,可編程路由器可使用通用處理器或網絡處理器,通過編程與配置達到目的;主動網絡節點關注編程的任意性和實現上層功能的復雜任務,可編程路由器更關注配置與實施的靈活性;并且主動網絡節點中的轉發元素(Forwarding Elements)一旦定義,就不能再修改或重定義。
可重構路由器(Reconfigurable Router)是通過實時可配置硬件和軟硬件協同設計技術,允許對路由器進行動態的重配置,以增強路由器的功能和性能,以滿足大多數用戶的需求,從而創建高性能、高靈活度的網絡??删幊搪酚善髋c其相比,在注重可重配置的同時,更強調功能的擴充性和靈活性。
可編程路由器近兩年來逐漸引起學者們的重視,ACM舉辦的SIGCOMM計算機通訊年會已連續兩年為其開設Workshop,可編程路由器的相關技術也不斷引起人們的關注。我們首先將從新一代互聯網的發展角度出發,分析研究可編程路由器的重要意義,然后簡要敘述可編程路由器的發展現狀,最后予以總結與展望。
可編程路由器與下一代互聯網
自Internet發明到現在已有40多年的歷史,計算機網絡也發生了翻天覆地的變化,新一代互聯網(NGI: Next Generation Internet或FI: Future Internet)旨在從互聯網基本組成、工作原理和實現機理方面進行理論和方法探索和算法設計,解決現在網絡在擴展性、安全性,高性能、實時性、移動性、管理性等方面顯示出諸多不足。
在發展方向上,一般有革命型和進化型兩種路線。鑒于解決以上挑戰的艱巨性和復雜性,有研究人員提出推倒現有的架構、重新設計全新互聯網的革命性思想,其代表有美國的GENI、FIND和歐盟的FIRE。在另一方面,鑒于現有互聯網的普及性及重新設計的復雜性,有學者認為應在現有互聯網上,堅持演進并積極創新。其代表有美國的Internet2、歐洲的Geant2、第二代跨歐亞信息網絡TEIN2和中國的下一代互聯網示范工程CNGI。截止到目前,全球新一代互聯網和IPv6試驗網絡主干網已經形成,其規模正不斷在擴大。
對于新一代互聯網的功能需求,我們認為新一代互聯網體系結構需要著重解決的五大問題之一是:互聯網體系結構的擴展性和演進性問題;在這個問題上,我們認為必須涵蓋的五大因素之一是:可擴展的網絡節點能力。
新一代互聯網的體系結構正發生著巨大的變化。新一代互聯網對網絡節點的可擴展性、靈活性提出了新的要求。作為網絡核心部件的路由器的可重構性、可編程性、可管理性等方面顯得更加重要。因可編程路由器允許用戶對其配置或編程,達到部署新服務和減輕網絡管理負擔的目標,在靈活性、動態性、可擴展性、可管理性及可編程性等方面顯示出極大的優勢和遠景。因此,研究可編程路由器對新一代互聯網體系結構的發展也具有重要的意義。
可編程路由器的研究進展
較傳統路由器,可編程路由器在實現其基本功能之外,可編程性至少體現在如下方面:
(1) 軟硬件的可編程性??删幊搪酚善鞯挠布軜嬙试S用戶重新定義功能,同時上層軟件體系結構由功能劃分清晰的模塊或API組成,允許用戶重新組織這些模塊或調用接口來達到定制的目的。
(2) 網絡接口的可編程性。在高性能路由器體系結構中,網絡接口已由線卡(Line Card)所取代,線卡具有剝離包頭,查找自身緩存中的路由表并進行轉發的功能。線卡在轉發數據之前,可編程路由器允許用戶定制其他功能,如分類、整形、 QoS等。另外還允許用戶識別自定義的數據包。
(3) 數據路徑的可編程性??删幊搪酚善鲬蛛x控制(管理)與數據(轉發)兩個層面,允許數據包根據用戶自定義的條件進行數據路徑的選擇。
(4) 上層協議的可編程性。用戶可以重新定義或創建新的上層協議,以支持新服務與新應用。
(5) 網絡管理方式的可編程性??删幊搪酚善鲬试S用戶按自定義的格式組織腳本來對其配置,在監控和管理方式上,應支持多種或自定義的管理手段。
基于以上幾點,近年來,可編程路由器的研究取得了許多重要的成果。
1.硬件架構方案
FPGA方案:FPGA(Field Programmable Gate Array),即現場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎上進一步發展的產物。FPGA是作為專用集成電路(ASIC)領域中的一種半定制電路而出現的,既解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。現在大量的路由器數據交換板中都含有FPGA芯片。但是這種方案往往要對硬件進行重設計,耗時費力,更重要的是需要設計人員具有很強的電路設計知識。
NetFPGA方案:NetFPGA是斯坦福大學基于FPGA設計的一塊全編程的硬件加速卡,它具有4個G bit口外聯和2個SATA口互聯,通過PCI接口運行在PC上。將編譯后的Verilog程序下載到SRAM中,可以實現IPv4路由器、緩沖監視路由器、OpenFlow交換機、流量發生器、硬件加速的軟路由器等,轉發速度可以達到4Gbit。NetFPGA的優點是顯而易見的:通過提供的API,用戶可以為自定義的模塊或設計全新的模塊化路由器,以達到轉發自定義數據包或設計新網絡架構原型的目的。當然NetFPGA還存在一些缺點,時延、內存和帶寬都需要進一步改善。
其他方案:“動態硬件插件(DHP)”的可編程路由器架構,它采用可重配置硬件為多口的可編程路由器提供靈活的硬件處理環境。它允許眾多基于硬件的應用或插件動態地載入到設備上,并可以并行運行,以提高每流處理速度;“NCHARGE”的工具集,通過終端對網絡化、可配置的硬件進行遠程配置和管理。因可配置的硬件是基于FPX(Field Programmable Port Extender)的,所以這些硬件模塊可以通過網絡、動態地部署到FPGA邏輯上。一旦硬件模塊部署完成,NCAHARGE通過發布自定義的控制消息來控制每一個硬件模塊,提供API供軟硬件通訊,同時也提供了基于Web的管理界面來簡化操作。
2.軟件架構方案
Click與NP-Click:Click是一種模塊化軟路由器架構,它由若干稱之為“元素”的模塊組成。單個的元素實現了簡單路由器的功能,如分類、排隊、調度等。但Click 只針對數據轉發層設計,并沒有指出如何與控制層的應用相結合,而且不能進行動態配置。NP-Click使用網絡處理器(Intel IXP1200)實現了Click方案。
XORP:Mark等人設計了一個可擴展的開放式軟路由器平臺。它底層以Click作數據轉發引擎,上層采用多進程處理各種網絡協議。進程間采用類似于URL的XRL(XORP Resource Locators)通訊機制,具有可擴展、高性能、健壯等優點。
Scout與Router Plugin:Scout是一個針對網絡應用的操作系統,具有可配置性。Router Plugin則是在 NetBSD 操作系統內核基礎上,設計的高性能、模塊化、可擴展的軟件路由器體系結構。它允許代碼模塊以插件(plugin)方式動態地添加或配置,多個不同的插件可以綁定到同一個流上,從而實現功能的擴展。
基于網絡處理器的方案:使用Intel IXP1200網絡處理器開發板結合PC構建了一個健壯的軟路由器。它利用處理器的并行機制,在最小數據包的情況下,其轉發速度也達到了 3.47Mpps,并支持1.77Gbps鏈路帶寬,同時充許新功能“注入”到處理器架構三層中的任意一層上,其健壯性不受數據包大小的影響。
基于PC的方案:在Linux基礎上設計一套增強性的軟件架構,并部署在多核的處理器上,獲得了較高的數據交換能力。
3.數據路徑的可編程性
為了能動態地適應與支持新服務、新應用和新協議,同時實現轉發自定義數據包,分離控制(管理)與數據(轉發)層面等目的,可編程路由器研究人員在數據路徑的可編程性上提出了一系列的方案。
ForCES:IETF RFC3746定義的轉發和控制功能分離的方案。其基本思想是把IP路由器分成轉發元素(Forwarding Elements,FE)和控制元素(Control Elements,CE),而路由器可由多個(可達幾百個)FE、CE和連接二者的ForCES協議構成。
OpenFlow:OpenFlow是斯坦福大學Clean Slate計劃支助的一個開放式協議標準,用于在現有的產業網絡(Productive Network)上部署新協議。廠商不需要改動硬件,只需要支持OpenFlow協議,用戶即可使用這些網絡設備來連接異構的網絡或創建新網絡測試床。 OpenFlow現已被Cisco, HP, Juniper和NEC等許多廠商所支持。標準的OpenFlow交換機至少需要包含三部分:數據流表、安全通道和OpenFlow協議。數據流表告訴交換機如何處理流,安全通道是控制器和交換機通信的中介。
CAFE:CAFE是一種基于NetFPGA的、可配置的數據包轉發硬件引擎,主要用于在數據中心網絡(Data Center Network)內轉發自定義的數據包。開發人員無需理解數據包的意義,只需利用所提供的13個核心和少數輔助API,用少量的控制腳本就能實現轉發自定義數據包。但CAFE也存在著一些缺陷,如由于是基于NetFPGA的方案,所以其轉發速度也限制在4Gbit/s內,并且配置腳本比較繁瑣,特別是是對包頭的插入刪除等操作限于8字節。
GFE:GFE是基于OpenFlow的一種通用的轉發元素(Generic Forward Element) 框架。它使用XML定義包的分類、轉發、封裝、解封裝、整形及QoS等操作,通過網絡處理器來執行XML轉換后的指令。XML格式靈活,可以快速地部署新服務和新應用,而且GFE支持在線設備的即時配置,無需重啟即能生效。但實驗結果表明,在實現橋接功能時,比現行的技術耗時要高出一倍。雖然作者指出 OpenFlow是GFE的子集,但并沒有給出相關的API和XML的配置規范。
網絡服務處理平臺:一個基于硬件的網絡處理平臺,它分離了數據包的處理、處理器之間的通訊、狀態管理及復雜的IO操作,實現了可擴展性,并可以對每流自定義數據路徑。其性能方面也比較理想,但對服務的粒度欠考慮。
4D、Ethane與Tesseract:4D將網絡架構定義為決策、分發、發現及數據四個層面;Ethane將管理、控制與轉發功能分離,管理員能在一個中央控制器上遠程定義全網的策略;Tesseract基于4D、在一個單獨的管理域上直接操作網絡中的所有節點,實現網絡集中化的管理。
還有一些研究在Linux內核上進行數據面板虛擬化處理自定義的數據流。
結論與進一步研究工作
本文對可編程路由器各方面進行了調研。首先,本文從概念上將它與可擴展路由器、主動網絡節點、可重構路由器進行了區別,然后對它的軟硬件架構方案進行了歸納,介紹了其在數據路徑上的可編程性,最后予以了總結和展望。
從以上我們可以看出,較傳統的路由器,可編程路由器的具有業務邏輯清晰、動態配置靈活、編程組織輕松及部署服務迅速等諸多優點。但可編程路由器的發展與創新還需要進一步的工作。
1.高性能、高轉發速率的軟硬件架構。轉發速率達百G比特、T比特級的高性能硬件架構仍有待研究。
2.通用的配置與管理方案。
3.統一的編程標準與規范。
4.最后是安全問題。到目前為止,研究人員還沒有對編程路由器的安全問題進行考慮,但是我們知道,路由器作為網絡核心部件,其安全問題是不容忽視的,特別是可編程路由器具有重新定義功能、執行用戶程序的能力,一旦被攻擊者所利用,其后果是不堪設想的。
評論