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