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