謝立軍,胡宇翔,汪斌強(qiáng),蘭巨龍,程國振,王志明
(國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南鄭州450002)
研究與開發(fā)
網(wǎng)絡(luò)可編程技術(shù)研究
謝立軍,胡宇翔,汪斌強(qiáng),蘭巨龍,程國振,王志明
(國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南鄭州450002)
網(wǎng)絡(luò)可編程技術(shù)通過在網(wǎng)絡(luò)設(shè)備提供開放的可編程接口,增強(qiáng)了網(wǎng)絡(luò)的靈活配置能力和資源整合能力。首先從網(wǎng)絡(luò)可編程技術(shù)的誕生背景入手,回顧了開放可編程思想、控制與轉(zhuǎn)發(fā)分離架構(gòu)以及目前典型的軟件定義網(wǎng)絡(luò)(software defined networking,SDN)和網(wǎng)絡(luò)功能虛擬化(network function virtualization,NFV)架構(gòu)。然后,詳細(xì)闡述了SDN架構(gòu)下的協(xié)議無關(guān)性、流表實(shí)現(xiàn)、高級(jí)編程語言以及與NFV融合方面的研究成果。最后,總結(jié)了網(wǎng)絡(luò)可編程技術(shù)的研究趨勢。
網(wǎng)絡(luò)可編程;軟件定義網(wǎng)絡(luò);網(wǎng)絡(luò)功能虛擬化;協(xié)議無關(guān)性;編程語言
隨著網(wǎng)絡(luò)規(guī)模不斷擴(kuò)大,用戶數(shù)日益增多,網(wǎng)絡(luò)新技術(shù)、新應(yīng)用日趨多樣,傳統(tǒng)互聯(lián)網(wǎng)的體系結(jié)構(gòu)和設(shè)計(jì)理念日益暴露出嚴(yán)重不足[1]。首先,網(wǎng)絡(luò)服務(wù)多樣化要求打破傳統(tǒng)網(wǎng)絡(luò)盡力而為的服務(wù)模式,提高網(wǎng)絡(luò)的服務(wù)能力,以滿足用戶部署新型服務(wù)和協(xié)議的需求;其次,作為一個(gè)龐大的復(fù)雜系統(tǒng),各種協(xié)議的決策邏輯共同控制網(wǎng)絡(luò)流量的機(jī)制,使網(wǎng)絡(luò)行為更加難以預(yù)測和控制;最后,網(wǎng)絡(luò)設(shè)備種類多樣且相互獨(dú)立和封閉,使得網(wǎng)絡(luò)管理員只能通過命令行接口(CLI)等方式,手動(dòng)地將高層策略轉(zhuǎn)化為設(shè)備底層配置命令來實(shí)現(xiàn)網(wǎng)絡(luò)管控和運(yùn)維,導(dǎo)致網(wǎng)絡(luò)更新緩慢、運(yùn)行成本膨脹。研究人員發(fā)現(xiàn),存在上述問題的根本原因在于網(wǎng)絡(luò)核心設(shè)備控制邏輯與數(shù)據(jù)轉(zhuǎn)發(fā)之間緊耦合以及核心設(shè)備之間的分布式控制。
學(xué)術(shù)界和產(chǎn)業(yè)界普遍認(rèn)為,要彌補(bǔ)網(wǎng)絡(luò)日益凸顯的不足,應(yīng)該重新設(shè)計(jì)網(wǎng)絡(luò)控制和管理結(jié)構(gòu),將控制邏輯與數(shù)據(jù)轉(zhuǎn)發(fā)相分離,采用集中控制的方式,降低網(wǎng)絡(luò)核心設(shè)備的復(fù)雜性,提高網(wǎng)絡(luò)控制和管理的靈活性,增強(qiáng)對網(wǎng)絡(luò)新技術(shù)、新協(xié)議的支持能力,從而提出了網(wǎng)絡(luò)可編程的思想。網(wǎng)絡(luò)可編程是對網(wǎng)絡(luò)整體功能和行為的高度抽象以及軟件編程的自定義,其核心思想是通過對網(wǎng)絡(luò)節(jié)點(diǎn)提供開放可編程接口,利用編程語言向網(wǎng)絡(luò)設(shè)備發(fā)送強(qiáng)大的編程指令,實(shí)現(xiàn)對網(wǎng)絡(luò)功能和行為的按需管控和新業(yè)務(wù)的快速部署。隨著國內(nèi)外對網(wǎng)絡(luò)可編程思想認(rèn)識(shí)的不斷加深,網(wǎng)絡(luò)可編程技術(shù)的不斷完善,該技術(shù)逐漸成為構(gòu)建新型未來網(wǎng)絡(luò)的核心技術(shù)。2008年,SDN(software defined networking,軟件定義網(wǎng)絡(luò))[2]思想隨著OpenFlow[3]的面世推廣開來,其借用了電話網(wǎng)絡(luò)的思想,將控制和轉(zhuǎn)發(fā)平面嚴(yán)格分離,簡化了網(wǎng)絡(luò)管理和新服務(wù)的部署。隨后,作為對可編程技術(shù)的進(jìn)一步補(bǔ)充和應(yīng)用,ETSI[4]在2012年提出了網(wǎng)絡(luò)功能虛擬化的思想,進(jìn)一步推動(dòng)了網(wǎng)絡(luò)可編程思想落地的進(jìn)程。
隨著硬件/軟件、網(wǎng)絡(luò)操作系統(tǒng)、虛擬化等技術(shù)水平的不斷提高,網(wǎng)絡(luò)可編程技術(shù)逐漸成熟。整體來說,網(wǎng)絡(luò)可編程技術(shù)分為3個(gè)發(fā)展階段:早期開放可編程思想,將可編程功能的思想引入網(wǎng)絡(luò)設(shè)計(jì);“控制與轉(zhuǎn)發(fā)分離”研究推進(jìn)了網(wǎng)絡(luò)控制平面與轉(zhuǎn)發(fā)平面之間開放接口的進(jìn)一步研究;對基于OpenFlow的SDN和NFV的研究不斷深入和推廣,提高了網(wǎng)絡(luò)可編程技術(shù)實(shí)際部署的可行性。下面對網(wǎng)絡(luò)可編程技術(shù)發(fā)展史進(jìn)行詳細(xì)介紹。
2.1.1 基于開放信令的思想
從1995年開始,OPENSIG工作組專注于研究“開放、可擴(kuò)展、可編程的ATM、Internet和移動(dòng)網(wǎng)絡(luò)”,第一次真正將可編程思想加入網(wǎng)絡(luò)設(shè)計(jì)[5]。其主要思想是通過開放、可編程的網(wǎng)絡(luò)接口訪問網(wǎng)絡(luò)硬件,將通信硬件和控制軟件分離并且使開放可編程接口標(biāo)準(zhǔn)化。但是,由于垂直、整合的交換機(jī)和路由器等網(wǎng)絡(luò)設(shè)備具有封閉特性,導(dǎo)致“開放信令”思想在當(dāng)時(shí)的技術(shù)條件下難以實(shí)現(xiàn)。不過,隨著軟硬件技術(shù)的不斷發(fā)展,后續(xù)的IEEE P1520、MSF(Multiservice Switching Forum)[6]、國際互聯(lián)網(wǎng)組織IETF發(fā)布的GSMP[7]、轉(zhuǎn)發(fā)件與控制件分離ForCES工作組以及NPF(Network Processing Forum)[8]都基于該思想進(jìn)行研究。
2.1.2 基于動(dòng)態(tài)代碼的主動(dòng)網(wǎng)絡(luò)思想
同期,美國國防部高級(jí)研究計(jì)劃署(DARPA)在“未來網(wǎng)絡(luò)發(fā)展方向研討會(huì)”上提出了主動(dòng)網(wǎng)絡(luò)(active network)[9]這一新的網(wǎng)絡(luò)體系架構(gòu),該架構(gòu)首次提出“面向定制化服務(wù)可編程的網(wǎng)絡(luò)基礎(chǔ)設(shè)施”思想。隨著美國的GENI[10]、NSF FIND[11]和歐盟的FIRE[12]等項(xiàng)目不斷推進(jìn),主動(dòng)網(wǎng)絡(luò)成為一系列新型網(wǎng)絡(luò)架構(gòu)方案中的研究熱點(diǎn)。主動(dòng)網(wǎng)絡(luò)產(chǎn)生了兩個(gè)主要模型:一是可編程路由/交換機(jī)模型[13,14],即網(wǎng)絡(luò)操作員利用“out-of-band”方式將程序代碼放置到網(wǎng)絡(luò)節(jié)點(diǎn)運(yùn)行;二是封裝模型[15],即用戶利用“in-band”方式,將程序代碼通過數(shù)據(jù)分組的形式傳遞到網(wǎng)絡(luò)節(jié)點(diǎn)運(yùn)行。盡管主動(dòng)網(wǎng)絡(luò)的思想有效、可行,但是由于在當(dāng)時(shí)缺乏大量的應(yīng)用范例和工業(yè)部署需求,脫離硬件技術(shù)水平,難以廣泛使用。
上述兩種可編程思想對開放架構(gòu)網(wǎng)絡(luò)研究具有一定的互補(bǔ)性,其共同目標(biāo)都是實(shí)現(xiàn)面向科研人員和終端用戶的網(wǎng)絡(luò)開放可編程,研究重點(diǎn)都主要圍繞轉(zhuǎn)發(fā)平面的可編程,由于受到軟硬件技術(shù)的限制,僅僅能實(shí)現(xiàn)設(shè)備級(jí)的可編程。隨后,關(guān)于網(wǎng)絡(luò)開放可編程的研究工作,基本都采用了基于開放信令思想的控制平面(control plane)和轉(zhuǎn)發(fā)平面(data plane)分離的基本體系結(jié)構(gòu)。下面對這些研究工作進(jìn)行詳細(xì)介紹。
網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,對服務(wù)提供商提出了集中式控制和更高可靠性的需求,設(shè)備生產(chǎn)商將控制平面軟件從分組轉(zhuǎn)發(fā)硬件中分離,直接部署在整合的控制器硬件中。這種“控制與轉(zhuǎn)發(fā)分離”的設(shè)計(jì)為新型網(wǎng)絡(luò)創(chuàng)新帶來新的機(jī)遇和挑戰(zhàn):控制平面和轉(zhuǎn)發(fā)平面之間的開放可編程接口的設(shè)計(jì)以及網(wǎng)絡(luò)在邏輯上的集中控制。圍繞這兩個(gè)方向比較典型的研究工作和項(xiàng)目包括DCAN(devolved control of ATM networks)[16]、ForCES[17]、4D(decision、dissemination、discovery、data)[18,19]和NETCONF[20]。
DCAN將大量網(wǎng)絡(luò)設(shè)備的控制、管理功能與轉(zhuǎn)發(fā)設(shè)備本身解耦,并委托給第三方執(zhí)行,硬件設(shè)施只執(zhí)行簡單的轉(zhuǎn)發(fā)操作。與之不同,F(xiàn)orCES將網(wǎng)絡(luò)設(shè)備的內(nèi)部架構(gòu)重新定義為兩個(gè)邏輯實(shí)體:轉(zhuǎn)發(fā)元件(FE)和控制元件(CE),F(xiàn)E使用底層硬件進(jìn)行數(shù)據(jù)分組的處理,CE使用ForCES協(xié)議控制FE進(jìn)行數(shù)據(jù)分組的處理。4D項(xiàng)目將網(wǎng)絡(luò)分為決策平面、數(shù)據(jù)平面、分發(fā)平面和發(fā)現(xiàn)平面。其中,決策平面具有全局的網(wǎng)絡(luò)視圖,利用分發(fā)平面和發(fā)現(xiàn)平面分別提供通信和信息服務(wù),數(shù)據(jù)平面負(fù)責(zé)轉(zhuǎn)發(fā)分流。該4層架構(gòu)解決了網(wǎng)絡(luò)邏輯決策平面和分布式的硬件設(shè)備結(jié)合過緊的問題,實(shí)現(xiàn)了路由選擇邏輯和管理網(wǎng)絡(luò)元素之間交互協(xié)議的嚴(yán)格分離,使網(wǎng)絡(luò)更加頑健、安全,并有利于異構(gòu)網(wǎng)絡(luò)的管理。NETCONF協(xié)議為網(wǎng)絡(luò)設(shè)備提供了一個(gè)API(application prgramming interface,應(yīng)用程序編程接口),利用該API可以發(fā)送和接收可擴(kuò)展的配置數(shù)據(jù)[21]。
該階段的項(xiàng)目研究主要實(shí)現(xiàn)面向網(wǎng)絡(luò)管理者的可編程技術(shù),研究重點(diǎn)為控制平面編程技術(shù),實(shí)現(xiàn)了網(wǎng)絡(luò)級(jí)的視圖和控制。簡而言之,控制與轉(zhuǎn)發(fā)分離的架構(gòu)簡化了網(wǎng)絡(luò)管理和配置操作,實(shí)現(xiàn)了網(wǎng)絡(luò)控制的集中化和頑健性,為網(wǎng)絡(luò)設(shè)備提供了開放可編程接口,提高了網(wǎng)絡(luò)可編程能力,為SDN的產(chǎn)生奠定了理論和實(shí)踐基礎(chǔ)。
2006年,在控制與轉(zhuǎn)發(fā)分離架構(gòu)的基礎(chǔ)上,美國斯坦福大學(xué)的Clean Slate研究組針對企業(yè)網(wǎng)的安全管理需求,提出了面向企業(yè)網(wǎng)的管理架構(gòu)SANE[22],首次實(shí)現(xiàn)了路由和接入在邏輯上的中央安全控制和更細(xì)粒度的流表轉(zhuǎn)發(fā)策略。次年,在對SANE進(jìn)行功能擴(kuò)展的基礎(chǔ)上提出了Ethane[23],實(shí)現(xiàn)了基于流表進(jìn)行報(bào)文轉(zhuǎn)發(fā)的交換機(jī)。隨后,在這兩個(gè)項(xiàng)目研究成果的基礎(chǔ)上,Nick McKeown教授等人提出了OpenFlow,并大力推廣SDN的思想。
SDN技術(shù)的本質(zhì)是網(wǎng)絡(luò)轉(zhuǎn)發(fā)功能的可編程性,通過將控制器作為可編程控制的切入點(diǎn),網(wǎng)絡(luò)管理員通過網(wǎng)絡(luò)應(yīng)用層軟件能夠動(dòng)態(tài)、快速、按需地進(jìn)行網(wǎng)絡(luò)配置。OpenFlow作為第一個(gè)具有現(xiàn)實(shí)意義的SDN協(xié)議和原型實(shí)現(xiàn),具有良好的實(shí)現(xiàn)性,使SDN更加實(shí)用?;贠penFlow的SDN可編程架構(gòu)的關(guān)鍵組件包括OpenFlow交換機(jī)和控制器。其中,OpenFlow交換機(jī)負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)功能,由流表、安全信道和OpenFlow協(xié)議3部分組成。控制器中運(yùn)行的網(wǎng)絡(luò)操作系統(tǒng)(network operating system,NOS)實(shí)現(xiàn)了網(wǎng)絡(luò)的集中式控制邏輯,為網(wǎng)絡(luò)應(yīng)用程序提供了面向網(wǎng)絡(luò)設(shè)備的可編程接口。目前,支持OpenFlow協(xié)議的多種控制器軟件已經(jīng)得到開發(fā)和推廣,第一個(gè)網(wǎng)絡(luò)控制器平臺(tái)NOX[24]已經(jīng)演化出了多個(gè)版本[25]。隨著研究的進(jìn)展,Maestro[26]、POX[27]、Beacon[28]、Floodlight[29]、Ryu[30]、SNAC[31]、Trema[32]、ONOS[33]、RouteFlow[34]、NOX-MT[35]、Onix[36]和OpenDaylight[37]等多個(gè)控制器軟件平臺(tái)實(shí)現(xiàn)了更加完善的功能。下面以典型的OpenDaylight控制器為例,介紹控制器的組成結(jié)構(gòu)。
OpenDaylight控制器架構(gòu)分為3層[37]:南向協(xié)議插件、SAL(service adaptation layer,服務(wù)適應(yīng)層)和北向應(yīng)用功能,如圖1所示。其中,南向協(xié)議插件作為控制器與網(wǎng)絡(luò)設(shè)備之間的接口,支持OpenFlow、BGP-LS、LISP等協(xié)議;SAL將南向協(xié)議插件功能轉(zhuǎn)換為高層應(yīng)用/服務(wù)功能,高層應(yīng)用功能為應(yīng)用提供北向API。應(yīng)用功能包括拓?fù)漭敵?、目錄管理和OpenFlow統(tǒng)計(jì)管理等。OpenDaylight控制器支持不同的南向協(xié)議插件以及不同的服務(wù)和應(yīng)用集合,允許程序開發(fā)者和網(wǎng)絡(luò)研究人員更加專注于SDN的API,而不用考慮與網(wǎng)絡(luò)設(shè)備之間的通信協(xié)議。
作為目前新型網(wǎng)絡(luò)架構(gòu)的研究熱點(diǎn)之一,SDN既繼承了前期控制與轉(zhuǎn)發(fā)分離思想,也實(shí)現(xiàn)了可實(shí)際部署的網(wǎng)絡(luò)可編程關(guān)鍵技術(shù),對于網(wǎng)絡(luò)革新具有重要的意義。
圖1 OpenDaylight控制器架構(gòu)
(1)統(tǒng)一了網(wǎng)絡(luò)設(shè)備功能
傳統(tǒng)的網(wǎng)絡(luò)設(shè)備依靠不同的分組頭字段進(jìn)行流量控制,而基于OpenFlow協(xié)議的交換機(jī)則可以使用任意的分組頭匹配域定義轉(zhuǎn)發(fā)行為,實(shí)現(xiàn)了網(wǎng)絡(luò)設(shè)備匹配域與轉(zhuǎn)發(fā)行為的統(tǒng)一。同時(shí),基于OpenFlow的SDN歸一化了規(guī)則配置技術(shù),將粗粒度規(guī)則預(yù)配置改進(jìn)為反應(yīng)式的細(xì)粒度規(guī)則配置。
(2)提供了網(wǎng)絡(luò)操作系統(tǒng)視圖
不同于主動(dòng)網(wǎng)絡(luò)中提出的節(jié)點(diǎn)操作系統(tǒng),SDN中的網(wǎng)絡(luò)操作系統(tǒng)[28]在邏輯上將網(wǎng)絡(luò)分為3層[29]:轉(zhuǎn)發(fā)層、狀態(tài)管理層和邏輯控制層,能夠?qū)W(wǎng)絡(luò)狀態(tài)進(jìn)行全局抽象,為網(wǎng)絡(luò)管理者提供了網(wǎng)絡(luò)級(jí)的控制視圖。
(3)實(shí)現(xiàn)了分布式網(wǎng)絡(luò)狀態(tài)管理技術(shù)[30-32]
SDN控制平面與轉(zhuǎn)發(fā)平面分離的架構(gòu)導(dǎo)致網(wǎng)絡(luò)狀態(tài)管理面臨挑戰(zhàn)。為了實(shí)現(xiàn)可擴(kuò)展性、可靠性和高性能,需要同時(shí)運(yùn)行多個(gè)邏輯上集中的控制器,確保其協(xié)同工作。
2012年,為了應(yīng)對電信網(wǎng)絡(luò)部署的封閉性、私有性帶來的可操作性和管理成本挑戰(zhàn),20多個(gè)全球最大的電信網(wǎng)絡(luò)服務(wù)商組成的ISG(industry specification group)與歐盟電信標(biāo)準(zhǔn)協(xié)會(huì)ETSI提出了NFV(network function virtualization,網(wǎng)絡(luò)功能虛擬化)[38,39]。NFV在本質(zhì)上基于云技術(shù),通過虛擬和整合傳統(tǒng)的專用網(wǎng)絡(luò)設(shè)備功能,利用控制平面技術(shù)動(dòng)態(tài)編程網(wǎng)絡(luò)數(shù)據(jù)流路徑,支持?jǐn)?shù)據(jù)流按需經(jīng)過功能/服務(wù)集合,使網(wǎng)絡(luò)獲得更高的靈活性,加速新服務(wù)部署,同時(shí)降低管理和資金成本[40]。
與SDN觀點(diǎn)不同,NFV認(rèn)為,路由器不應(yīng)該僅僅是一個(gè)“簡單的、啞的”轉(zhuǎn)發(fā)設(shè)備,而應(yīng)是一個(gè)連接多種智能模塊、更加整合、支持定制化處理功能的設(shè)備,并對未來網(wǎng)絡(luò)設(shè)備架構(gòu)進(jìn)行了描述[41]:未來的轉(zhuǎn)發(fā)平面架構(gòu)應(yīng)實(shí)現(xiàn)網(wǎng)絡(luò)與通用處理硬件之間的深度整合;新型網(wǎng)絡(luò)設(shè)備應(yīng)允許第三方自由安裝轉(zhuǎn)發(fā)平面功能;應(yīng)該同時(shí)支持傳統(tǒng)網(wǎng)絡(luò)任務(wù)和新型應(yīng)用。但是,在硬件架構(gòu)實(shí)現(xiàn)上還存在爭議[42]:一種觀點(diǎn)認(rèn)為應(yīng)該用標(biāo)準(zhǔn)化、大容量設(shè)備完全取代現(xiàn)有的專用硬件,另一種觀點(diǎn)認(rèn)為應(yīng)將專用硬件和通用線速卡混合使用。這兩種觀點(diǎn)都有各自的優(yōu)勢和不足,硬件資源和性能之間的平衡是考慮的首要問題。由于其巨大的發(fā)展?jié)摿?,NFV自誕生之初便獲得了廣泛關(guān)注,尤其是產(chǎn)業(yè)界對其前景表示十分樂觀。
綜上所述,網(wǎng)絡(luò)可編程基于網(wǎng)絡(luò)抽象實(shí)現(xiàn)了集中的網(wǎng)絡(luò)控制、自動(dòng)化網(wǎng)絡(luò)配置和定制化的網(wǎng)絡(luò)服務(wù),提高了網(wǎng)絡(luò)的靈活性,使網(wǎng)絡(luò)更加易于管理和更新。表1總結(jié)了上述各個(gè)階段網(wǎng)絡(luò)可編程技術(shù)研究的特點(diǎn),主要從可編程范圍、可編程粒度、實(shí)現(xiàn)復(fù)雜性、可編程面向?qū)ο蟮确矫孢M(jìn)行比較。
SDN通過控制平面與轉(zhuǎn)發(fā)平面分離,提供強(qiáng)大的可編程接口,賦予網(wǎng)絡(luò)可編程能力[65]。目前,有關(guān)SDN的可編程技術(shù)研究主要圍繞控制平面和轉(zhuǎn)發(fā)平面的可編程能力的提升。下面對這兩方面的研究工作進(jìn)行詳細(xì)介紹。
作為SDN轉(zhuǎn)發(fā)平面的實(shí)現(xiàn)范例,OpenFlow交換機(jī)以流表作為基本的數(shù)據(jù)分組處理單元,以報(bào)文解析、關(guān)鍵字匹配、報(bào)文操作組成多級(jí)流表的流水線處理結(jié)構(gòu),通過實(shí)現(xiàn)每個(gè)處理單元的標(biāo)準(zhǔn)化達(dá)到整個(gè)轉(zhuǎn)發(fā)平面的完全可編程。但是目前交換機(jī)的設(shè)計(jì)和實(shí)現(xiàn)上存在的很多問題制約了轉(zhuǎn)發(fā)平面的可編程性,比如報(bào)文解析中的協(xié)議相關(guān)性、流表實(shí)現(xiàn)不靈活等問題。下面就目前針對轉(zhuǎn)發(fā)平面的這兩方面的相關(guān)研究進(jìn)行介紹。
3.1.1 協(xié)議無關(guān)性
在傳統(tǒng)網(wǎng)絡(luò)的5層體系結(jié)構(gòu)中,對于協(xié)議的處理是分層次的,即位于不同層的網(wǎng)絡(luò)設(shè)備只需解析本層數(shù)據(jù)分組頭部。然而,SDN為了實(shí)現(xiàn)數(shù)據(jù)分組的扁平化處理,其轉(zhuǎn)發(fā)平面通過配置匹配域?qū)Σ煌瑢哟?、多種協(xié)議進(jìn)行選擇性解析,增加可編程性的同時(shí)也帶來了協(xié)議相關(guān)性問題。以O(shè)penFlow交換機(jī)為例:首先,OpenFlow交換機(jī)的分組頭協(xié)議解析模塊目前只實(shí)現(xiàn)了基本的IPv4和IPv6協(xié)議解析和目的IP地址抽取功能,其靈活性非常有限,只能適用于IP地址查找操作,而無法實(shí)現(xiàn)非IP地址字段的分組頭提取。其次,OpenFlow交換機(jī)中流表關(guān)鍵字的提取受到預(yù)先定義的匹配域限制,如果用戶的新協(xié)議使用數(shù)據(jù)分組頭的其他域,OpenFlow交換機(jī)將無法對其進(jìn)行匹配查找。雖然OpenFlow標(biāo)準(zhǔn)不斷擴(kuò)充匹配字段,但是也進(jìn)一步增加了OpenFlow交換機(jī)的硬件設(shè)計(jì)成本。研究人員針對該問題進(jìn)行了大量的研究工作,具體情況如下。
表1 各階段網(wǎng)絡(luò)可編程技術(shù)對比
(1)CAFE
針對當(dāng)前轉(zhuǎn)發(fā)平面中數(shù)據(jù)分組頭解析模塊的不靈活性,Lu等人[43]提出了可編程的數(shù)據(jù)分組轉(zhuǎn)發(fā)引擎CAFE。如圖2所示,CAFE的分組頭解析處理包括3部分。其中,PKtype Identifier模塊負(fù)責(zé)識(shí)別數(shù)據(jù)分組類型,只有被識(shí)別的數(shù)據(jù)分組才會(huì)進(jìn)入下一個(gè)步驟,丟棄不能識(shí)別的分組。第二部分包含多種類型的header field verifier、lookup key extractor和checksum verifier模塊,根據(jù)識(shí)別的分組類型,從中選擇相應(yīng)類型的模塊進(jìn)行分組頭驗(yàn)證和轉(zhuǎn)發(fā)表查詢。其中,header field verifier模塊過濾掉硬件不轉(zhuǎn)發(fā)的數(shù)據(jù)分組,checksum verifier驗(yàn)證分組的校驗(yàn)和。Lookup key extractor提取出查找關(guān)鍵字的分組頭域集合,lookup engine負(fù)責(zé)使用關(guān)鍵字查表。Arbiter模塊檢查前兩部分的處理結(jié)果——如果出現(xiàn)數(shù)據(jù)分組被過濾、校驗(yàn)、錯(cuò)誤以及轉(zhuǎn)發(fā)表匹配失敗等情況,數(shù)據(jù)分組會(huì)被直接丟棄。由于數(shù)據(jù)分組不僅與分組類型相關(guān),還與流表項(xiàng)相關(guān),因此第三部分header modifier模塊同時(shí)支持根據(jù)“類型”信息和“流”信息修改數(shù)據(jù)分組頭。
圖2 CAFE分組頭解析模塊結(jié)構(gòu)
CAFE的優(yōu)勢在于其分組頭解析模塊中加入了任意比特域提取器lookup key extractor,支持?jǐn)?shù)據(jù)分組頭部任意比特域的自由組合,實(shí)現(xiàn)了用戶自定義的查找關(guān)鍵字提取和對新型協(xié)議的支持。然而,其復(fù)雜的關(guān)鍵字提取過程給分組頭解析帶來了性能方面的挑戰(zhàn)。
(2)PPL
Attig等人[44]設(shè)計(jì)了分組頭解析流水線和數(shù)據(jù)分組頭部高級(jí)解析語言PPL,以面向?qū)ο蠓椒枋隽朔纸M頭解析算法。利用FPGA的并行處理能力,設(shè)計(jì)了定制化、可編程的虛擬處理架構(gòu),能夠在系統(tǒng)運(yùn)行時(shí)動(dòng)態(tài)地更新解析算法,滿足了特殊的分組頭解析算法需求,使分組處理性能大大提高。以類C++的風(fēng)格定義了每個(gè)頭部的格式和處理規(guī)則,方便用戶對新協(xié)議分組頭解析的自定義處理。PPL在XilinVirtex-7FPGA上運(yùn)行的線速處理能力達(dá)到了400 Gbit/s,在解析性能上優(yōu)于CAFE。
(3)PLUG
如圖3所示,傳統(tǒng)ASICs電路針對每種協(xié)議提供專用的查找模塊,使得硬件內(nèi)的功能定義比較困難,導(dǎo)致數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層的新協(xié)議部署往往需要升級(jí)硬件設(shè)備。為了便于新協(xié)議的部署,Lorenzo等人[46]提出一個(gè)靈活的查表模塊——PLUG(pipelined lookup grid),使用SRAM解決靈活的多級(jí)流表的問題,使得新協(xié)議的部署不需要改變硬件,增加了網(wǎng)絡(luò)更新能力,如圖4所示。
圖3 傳統(tǒng)線速查找模塊
圖4 流水線查找網(wǎng)格
PLUG設(shè)計(jì)了可全局使用、協(xié)同工作的資源“基片”,通過不同“基片”的組合,構(gòu)成支持不同協(xié)議的處理單元。同時(shí),通過資源的全局規(guī)劃使用,PLUG避免多個(gè)處理單元之間存在存儲(chǔ)單元或通信端口的沖突,完成了IPv4、Ethernet和Seattle等基于數(shù)據(jù)流的編程模塊,并將它們映射到PLUG硬件。PLUG架構(gòu)實(shí)現(xiàn)了可編程的查找模塊,支持修改轉(zhuǎn)發(fā)平面的協(xié)議;設(shè)計(jì)了一個(gè)基于數(shù)據(jù)流的編程模型,基于該模型的轉(zhuǎn)發(fā)表項(xiàng)可靈活支持現(xiàn)有或新型協(xié)議的部署。但是,PLUG中大量的資源“基片”對芯片容量要求太高,而且基于散列表的查找無法進(jìn)行任意字段的匹配,只能支持Match-Action模式的傳統(tǒng)芯片功能。
(4)POF
針對OpenFlow協(xié)議中固定匹配字段的僵化,POF(protocol-oblivious forwarding)[47]基于偏移位和長度實(shí)現(xiàn)了用戶自定義字段域。POF由search key、metadata和instruction 3個(gè)模塊構(gòu)成,其中search key和instruction提取由軟硬件結(jié)合實(shí)現(xiàn),硬件實(shí)現(xiàn)機(jī)制實(shí)現(xiàn)了協(xié)議無關(guān)性。
3.1.2 實(shí)現(xiàn)靈活性
由于現(xiàn)有OpenFlow交換機(jī)和協(xié)議將流表匹配域限制在固定的2~4層分組頭信息,導(dǎo)致任何使用高層信息的流必須轉(zhuǎn)發(fā)到控制器來獲得處理指令,降低了網(wǎng)絡(luò)效率,增加了流處理時(shí)延。同時(shí),多級(jí)流表交換機(jī)芯片只能完成48個(gè)流表,而且在芯片制造時(shí),流表的寬度、深度和執(zhí)行順序都要預(yù)先指定,這都降低了SDN可編程技術(shù)的靈活性。針對以上問題,研究人員對軟件平臺(tái)、硬件設(shè)計(jì)、流規(guī)則更新、網(wǎng)絡(luò)視圖、數(shù)據(jù)分組格式等方面進(jìn)行了大量研究。
(1)軟件實(shí)現(xiàn)
基于Open vSwitch平臺(tái)的靈活可編程性,Mekky H等人[48]設(shè)計(jì)了一個(gè)應(yīng)用感知的可擴(kuò)展轉(zhuǎn)發(fā)平面,以軟件形式實(shí)現(xiàn)了多種應(yīng)用層的流處理和決策功能(TCP分片、NAT、L7服務(wù)選擇、防火墻等)。通過使用2~4層以外的分組頭信息,將OpenFlow轉(zhuǎn)發(fā)抽象歸納為有狀態(tài)的動(dòng)作,將大部分的流處理限制在轉(zhuǎn)發(fā)平面。該軟件架構(gòu)如圖5所示。
由于標(biāo)準(zhǔn)OpenFlow交換機(jī)中的未匹配流必須發(fā)送到控制器進(jìn)行處理,導(dǎo)致控制器負(fù)載很高。Mekky H在轉(zhuǎn)發(fā)平面增加了“app-table”,并將“miss-match”流表項(xiàng)的“to controller”指令改為“to app-table”,若在“app-table”中仍然匹配失敗,再將該流轉(zhuǎn)發(fā)到控制器,由控制器下發(fā)流表,圖5中步驟(6)~(8)表示此轉(zhuǎn)發(fā)過程。其中,“app-table”的表項(xiàng)利用軟件實(shí)現(xiàn),由管理員預(yù)先編程,而且多個(gè)表項(xiàng)以流水線架構(gòu)實(shí)現(xiàn)app action的任意組合,能夠執(zhí)行復(fù)雜的網(wǎng)絡(luò)服務(wù)。這種方法通過將“app-table”預(yù)先下發(fā)到交換機(jī)中,允許交換機(jī)實(shí)現(xiàn)更多的流表匹配,加速流處理過程,降低了控制平面的處理負(fù)載和通信開銷。但是,在運(yùn)行時(shí)刻動(dòng)態(tài)增加轉(zhuǎn)發(fā)平面“app-table”時(shí),需要一種動(dòng)態(tài)加載機(jī)制來保證,而且“app-table”實(shí)現(xiàn)的功能有限。
圖5 基于OVS的應(yīng)用感知SDN系統(tǒng)架構(gòu)
(2)硬件實(shí)現(xiàn)
與軟件平臺(tái)相比,利用硬件平臺(tái)可以提高轉(zhuǎn)發(fā)效率,但是同時(shí)存在編程不靈活的問題。針對此問題,參考文獻(xiàn)[49]提出了一個(gè)新型的流水線結(jié)構(gòu)——可重配置的匹配表(reconfigurable match table,RMT)模型,如圖6所示。該模型主要由分組頭解析器、邏輯塊、可配置輸出隊(duì)列組成。其中,分組頭解析器用于識(shí)別數(shù)據(jù)分組的協(xié)議類型,同時(shí)根據(jù)數(shù)據(jù)分組的協(xié)議類型進(jìn)行數(shù)據(jù)分組解析,提取關(guān)鍵字段并將其組合成新的分組頭域header,之后將header和數(shù)據(jù)分組同時(shí)向后級(jí)邏輯塊輸出。邏輯塊是最基本的數(shù)據(jù)分組處理單元,支持靈活的用戶可配置的匹配域提取,利用匹配得到的動(dòng)作字段來完成對數(shù)據(jù)分組的處理。RMT模型中,靈活可編程的分組頭解析器可以提取任意協(xié)議的匹配字段,而靈活可配置的邏輯塊可以匹配任意字段,實(shí)現(xiàn)靈活的數(shù)據(jù)分組處理。但是該模型對硬件的容量要求很高,目前只能實(shí)現(xiàn)不多的邏輯塊數(shù)量。
(3)流規(guī)則更新
圖6 RMT模型
由于大量的網(wǎng)絡(luò)功能要求根據(jù)當(dāng)前流狀態(tài)改變流動(dòng)作,導(dǎo)致基于流的規(guī)則更新過于頻繁,降低了網(wǎng)絡(luò)的可編程性。Masoud等人[50]提出了一個(gè)新的交換機(jī)抽象模型——FAST(flow-level state transition,流級(jí)別狀態(tài)轉(zhuǎn)換),將基于流或流集合的網(wǎng)絡(luò)任務(wù)表示為本地狀態(tài)機(jī)。FAST模型包含3個(gè)部分:抽象,允許操作者為不同的應(yīng)用編程狀態(tài)機(jī);FAST控制器,將狀態(tài)機(jī)翻譯為轉(zhuǎn)發(fā)平面API,并管理本地狀態(tài)機(jī)之間的交互;FAST轉(zhuǎn)發(fā)平面,基于商用交換機(jī)支持狀態(tài)機(jī)的流水線處理。FAST允許控制器預(yù)先編程狀態(tài)轉(zhuǎn)化,支持交換機(jī)基于本地信息動(dòng)態(tài)地執(zhí)行動(dòng)作,并且易于部署商用交換機(jī)。針對各流表項(xiàng)之間存在的依賴關(guān)系導(dǎo)致表項(xiàng)更新速度緩慢而且開銷較大的問題,參考文獻(xiàn)[51]通過分析規(guī)則模式提出了CacheFlow算法,基于該算法獲得的關(guān)系圖表達(dá)轉(zhuǎn)發(fā)平面規(guī)則。采用一種新的分片技術(shù)打破大量規(guī)則之間較長的關(guān)系鏈,并將其轉(zhuǎn)換為新的規(guī)則組覆蓋大量的不常用規(guī)則,提高了常用規(guī)則的存儲(chǔ)空間。實(shí)驗(yàn)數(shù)據(jù)證明,CacheFlow算法能有效地提高流表更新效率并減少更新開銷。
(4)網(wǎng)絡(luò)視圖
SDN為了支持全局視圖,控制器需要獲取每個(gè)流表項(xiàng)的計(jì)數(shù)器信息。而大部分計(jì)數(shù)器都部署在ASIC硬件中,其不靈活性和有限資源導(dǎo)致控制器難以獲得全局視圖。參考文獻(xiàn)[52]將ASIC與通用CPU連接,將傳統(tǒng)計(jì)數(shù)器替換為規(guī)則匹配記錄串,并轉(zhuǎn)發(fā)到CPU進(jìn)行處理。利用CPU強(qiáng)大的處理能力,能更靈活地處理與計(jì)數(shù)器相關(guān)的信息,降低了ASIC存儲(chǔ)空間占用率和計(jì)算復(fù)雜性,使控制器易于獲取計(jì)數(shù)信息。
由于控制器對流的可視性與流表的操作性之間的耦合,會(huì)造成流視圖的缺失、冗余的流視圖以及流表規(guī)模急劇膨脹等問題。針對該問題,參考文獻(xiàn)[53]采用FlowInsight架構(gòu)分離了流的可視性和可操作性。該架構(gòu)包含F(xiàn)lowView和FlowOps兩個(gè)流水線結(jié)構(gòu)表,數(shù)據(jù)分組依次由FlowView和FlowOps進(jìn)行處理,如圖7所示。FlowView定義了控制器可見的流,其中每個(gè)流都包含匹配域、優(yōu)先級(jí)、視圖域和計(jì)數(shù)器。視圖域根據(jù)預(yù)設(shè)的觸發(fā)條件向控制器發(fā)送相對應(yīng)的流視圖,例如,see-on-first-packet要求每個(gè)流的第一個(gè)數(shù)據(jù)分組發(fā)送至控制器,trigger-on要求流量大于1 Mbit/s的流視圖發(fā)往控制器。FlowOps與現(xiàn)有流表工作方式相同,匹配數(shù)據(jù)分組并執(zhí)行轉(zhuǎn)發(fā)操作。
(5)數(shù)據(jù)分組嵌入式可編程
針對目前轉(zhuǎn)發(fā)平面功能單一、難以擴(kuò)展的問題,參考文獻(xiàn)[54]提出了一個(gè)快速增加網(wǎng)絡(luò)轉(zhuǎn)發(fā)平面功能的方法:終端用戶將TPP(tiny packet program,小數(shù)據(jù)分組程序)嵌入數(shù)據(jù)分組中,進(jìn)行網(wǎng)絡(luò)狀態(tài)的主動(dòng)查詢和操作。其中,TPP本質(zhì)上是一個(gè)以太網(wǎng)數(shù)據(jù)分組,具有唯一可識(shí)別的頭部,包含程序指令、額外空間(用來分組存儲(chǔ))和一個(gè)可選擇的封裝載荷(IP分組)?;诟咚佟⒁恢隆⒌秃牡霓D(zhuǎn)發(fā)平面接口,TPP為終端用戶提供了空前的網(wǎng)絡(luò)行為視圖,將網(wǎng)絡(luò)狀態(tài)和數(shù)據(jù)分組信息之間進(jìn)行關(guān)聯(lián),支持擁塞控制、測量、故障檢測和驗(yàn)證等大量的網(wǎng)絡(luò)管理功能。
3.1.3 小結(jié)
綜上所述,由于SDN架構(gòu)中將所有控制決策部署在控制器中,而轉(zhuǎn)發(fā)平面只執(zhí)行簡單的轉(zhuǎn)發(fā)任務(wù),導(dǎo)致轉(zhuǎn)發(fā)平面功能單一、可編程性不足。OpenFlow協(xié)議標(biāo)準(zhǔn)發(fā)展到現(xiàn)在的1.4版本,通過不斷增加流表項(xiàng)的匹配域長度實(shí)現(xiàn)轉(zhuǎn)發(fā)平面功能的擴(kuò)展,導(dǎo)致交換機(jī)硬件性能難以滿足,成為轉(zhuǎn)發(fā)平面可編程技術(shù)發(fā)展的壁壘。目前,實(shí)現(xiàn)轉(zhuǎn)發(fā)平面可編程的主要技術(shù)包括協(xié)議無關(guān)性和流表實(shí)現(xiàn)的可編程,涵蓋了數(shù)據(jù)分組頭解析、關(guān)鍵字匹配查找、計(jì)數(shù)器、流表視圖等方面,增強(qiáng)了轉(zhuǎn)發(fā)平面的靈活性,減少了硬件性能帶來的限制。
SDN控制器作為邏輯集中控制節(jié)點(diǎn),既是SDN應(yīng)用的運(yùn)行平臺(tái),也是SDN應(yīng)用的開發(fā)環(huán)境。由于目前SDN控制器通過在服務(wù)器上運(yùn)行不同的控制軟件來實(shí)現(xiàn),且各種控制軟件設(shè)計(jì)的邏輯不同,導(dǎo)致其與控制應(yīng)用的編程接口呈現(xiàn)多樣化和復(fù)雜化的特征,阻礙了新型網(wǎng)絡(luò)應(yīng)用和功能的開發(fā)。針對該問題,研究人員設(shè)計(jì)了多種控制平面高級(jí)編程語言。
圖7 Flow Insight架構(gòu)
2011年,F(xiàn)oster N和Harrison R等[55]提出面向分布式網(wǎng)絡(luò)交換機(jī)的高層編程語言Frenetic,采用聲明式和模塊化設(shè)計(jì)準(zhǔn)則,提供單層編程模型、無競爭語義和代價(jià)控制機(jī)制,基于函數(shù)響應(yīng)編程(functional reactive programming,F(xiàn)RP)組合庫管理網(wǎng)絡(luò)報(bào)文轉(zhuǎn)發(fā)策略,為描述高層報(bào)文轉(zhuǎn)發(fā)策略提供了網(wǎng)絡(luò)流量聚合和分類功能,實(shí)現(xiàn)了模塊化推理和模塊重用。2012年,在Frenetic基礎(chǔ)上,Monsanto C和Foster N等人[56]提出新的NetCore編程語言來表達(dá)SDN的轉(zhuǎn)發(fā)策略,該語言提供了編譯算法以及新的運(yùn)行環(huán)境。Christopher等人[57]提出新的模塊化應(yīng)用抽象語言Pyretic,允許程序員利用高層抽象定義并以不同的方式組合網(wǎng)絡(luò)策略,并在抽象的網(wǎng)絡(luò)拓?fù)渖线\(yùn)行程序。同時(shí)Pyretic程序能夠在運(yùn)行系統(tǒng)上執(zhí)行,實(shí)現(xiàn)了網(wǎng)絡(luò)配置的可編程化。Andreas等人[58]基于FRP模型提出了Nettle語言,采用了分層的設(shè)計(jì),支持以事件流的方式獲取控制消息,能夠簡便地表達(dá)動(dòng)態(tài)負(fù)載算法。針對大部分OpenFlow原型系統(tǒng)缺少可配置接口的問題,Voellmy A等[59]提出了一種新的SDN控制架構(gòu)——Procera,基于FRP的策略語言,支持通配符規(guī)則、規(guī)則的預(yù)生成和自定義,進(jìn)一步對語言抽象進(jìn)行了優(yōu)化。上述控制平面高級(jí)編程語言對比情況見表2。
表2 控制平面編程語言
SDN控制平面是可以部署任意網(wǎng)絡(luò)控制程序的開放可編程平臺(tái),允許不同的參與者對轉(zhuǎn)發(fā)決策進(jìn)行細(xì)粒度的控制。但是,由于SDN將網(wǎng)絡(luò)決策全部放置在控制平面,由于流表中的“action”僅支持?jǐn)?shù)據(jù)分組的轉(zhuǎn)發(fā)、丟棄以及修改分組頭字段等,轉(zhuǎn)發(fā)平面只是一個(gè)“簡單的、啞巴的”交換設(shè)備,目前只能實(shí)現(xiàn)這些功能組合疊加,而無法真正實(shí)現(xiàn)深度分組檢測、防火墻、網(wǎng)絡(luò)地址轉(zhuǎn)換、Web緩存等4~7層的網(wǎng)絡(luò)功能[60]。為了增強(qiáng)SDN的網(wǎng)絡(luò)功能可編程,Qazi Z A等[62]提出了一個(gè)基于SDN的策略實(shí)施層SIMPLE,將中間件作為黑盒處理,通過策略的動(dòng)態(tài)調(diào)整,自動(dòng)化配置中間件功能,滿足了NFV的基本要求,但是該方法會(huì)導(dǎo)致中間件大量的上下文信息丟失,降低了安全性。
與SDN不同,NFV利用運(yùn)行在虛擬化標(biāo)準(zhǔn)服務(wù)器上的軟件實(shí)現(xiàn)各種網(wǎng)絡(luò)中間件功能,實(shí)現(xiàn)了靈活的網(wǎng)絡(luò)功能可編程性,緩解了網(wǎng)絡(luò)所面臨嚴(yán)峻的成本、可靠性和復(fù)雜性等挑戰(zhàn)。針對中間件狀態(tài)面臨的描述、操作和控制挑戰(zhàn),Gember A等[63]提出了一個(gè)軟件定義的中間件網(wǎng)絡(luò)框架,實(shí)現(xiàn)了中間件的狀態(tài)抽象描述、動(dòng)態(tài)擴(kuò)展和在線遷移,簡化了復(fù)雜、多樣的網(wǎng)絡(luò)功能管理。ClickOS[65]則提供了網(wǎng)絡(luò)功能虛擬化的實(shí)施方案,采用快速啟動(dòng)和低時(shí)延的小型虛擬機(jī)(只有5 MB大小)方案,每個(gè)虛擬化可以承載一個(gè)中間件。但是,傳統(tǒng)基于硬件設(shè)備的網(wǎng)絡(luò)中間件具有靜態(tài)、固定的地址,網(wǎng)絡(luò)中的流量可以準(zhǔn)確地引導(dǎo)至各個(gè)中間件進(jìn)行處理;而NFV基于軟件的網(wǎng)絡(luò)功能具有動(dòng)態(tài)、靈活的特性,其位置、地址根據(jù)需求而變,當(dāng)高層策略要求流量經(jīng)過多個(gè)網(wǎng)絡(luò)功能序列時(shí),流量引導(dǎo)成為下一步需要解決的問題。
但是,若將兩者的優(yōu)勢相互結(jié)合,則可以彌補(bǔ)對方的不足,產(chǎn)生1+1>2的效果。表3對SDN和NFV的優(yōu)缺點(diǎn)進(jìn)行了詳細(xì)的對比和分析。
表3 SDN和NFV分析
最近,ONF提出了“SDN+NFV”的思想,并發(fā)布了NFV與SDN融合方案[61],采用SDN控制與轉(zhuǎn)發(fā)分離以及集中控制的架構(gòu),為NFV提供了高效的網(wǎng)絡(luò)連接方式。通過SDN技術(shù)可以將網(wǎng)絡(luò)節(jié)點(diǎn)功能進(jìn)一步拆分,使轉(zhuǎn)發(fā)功能和業(yè)務(wù)功能分離,其中業(yè)務(wù)功能采用NFV的大容量服務(wù)器實(shí)現(xiàn),轉(zhuǎn)發(fā)功能采用OpenFlow交換機(jī)實(shí)現(xiàn)。該方案采用SDN思想構(gòu)建可擴(kuò)展、彈性的基礎(chǔ)設(shè)施,在SDN架構(gòu)的應(yīng)用層引入了NFV編排功能,構(gòu)建了電信級(jí)的可編程網(wǎng)絡(luò),實(shí)現(xiàn)了網(wǎng)絡(luò)資源利用率最大化、網(wǎng)絡(luò)配置管理簡單化、網(wǎng)絡(luò)升級(jí)更新快速化以及網(wǎng)絡(luò)功能開放可編程化。
圖8 OpenNF控制平面架構(gòu)
另外,OpenNF[64]為網(wǎng)絡(luò)中間件流量的重分配提供了高效的協(xié)同控制,其控制平面架構(gòu)如圖8所示??刂茟?yīng)用通過北向接口控制OpenNF控制器,同時(shí)監(jiān)測網(wǎng)絡(luò)功能運(yùn)行狀態(tài),將流引導(dǎo)至所需的網(wǎng)絡(luò)功能進(jìn)行處理,并為每個(gè)網(wǎng)絡(luò)功能實(shí)例提供所需的狀態(tài)。OpenNF控制器由網(wǎng)絡(luò)功能狀態(tài)管理器和流管理器構(gòu)成,其中網(wǎng)絡(luò)功能狀態(tài)控制器通過南向接口控制虛擬化網(wǎng)絡(luò)功能,流管理器控制SDN交換機(jī)。當(dāng)控制應(yīng)用制定網(wǎng)絡(luò)策略后,形成一條“網(wǎng)絡(luò)功能+SDN交換機(jī)”的服務(wù)鏈。網(wǎng)絡(luò)功能狀態(tài)管理器將策略規(guī)定的網(wǎng)絡(luò)功能實(shí)例狀態(tài)信息下發(fā)至網(wǎng)絡(luò)功能,流管理器將流表下發(fā)至SDN交換機(jī)。SDN交換機(jī)接收流后,根據(jù)流表規(guī)則判斷流發(fā)送到網(wǎng)絡(luò)功能還是發(fā)送到下一個(gè)SDN交換機(jī),網(wǎng)絡(luò)功能處理完后將流發(fā)送到下一個(gè)SDN交換機(jī)。直至網(wǎng)絡(luò)策略規(guī)定的所有網(wǎng)絡(luò)功能完成全部的流量處理。該架構(gòu)在SDN控制器中增加了虛擬化網(wǎng)絡(luò)功能狀態(tài)管理的功能,并通過南向API連接虛擬化網(wǎng)絡(luò)功能,充分利用了SDN控制平面與轉(zhuǎn)發(fā)平面分離的優(yōu)勢;另一方面,在轉(zhuǎn)發(fā)平面加入虛擬化網(wǎng)絡(luò)功能,提供了高級(jí)處理功能,實(shí)現(xiàn)了網(wǎng)絡(luò)功能的靈活部署和升級(jí)。
網(wǎng)絡(luò)可編程對網(wǎng)絡(luò)架構(gòu)和協(xié)議的實(shí)現(xiàn)產(chǎn)生重大的革命性影響。當(dāng)前,實(shí)現(xiàn)網(wǎng)絡(luò)可編程最具代表性的技術(shù)是SDN和NFV,學(xué)術(shù)界和工業(yè)界對SDN南向接口的協(xié)議、北向接口的高級(jí)編程語言和網(wǎng)絡(luò)操作系統(tǒng)都進(jìn)行了大量的研究工作,但是網(wǎng)絡(luò)可編程技術(shù)仍然面臨很多困難和挑戰(zhàn)。
(1)靈活可編程的轉(zhuǎn)發(fā)平面抽象機(jī)制
SDN對網(wǎng)絡(luò)的可控性歸根到底取決于轉(zhuǎn)發(fā)平面提供的編程靈活性。目前以O(shè)penFlow為代表的SDN轉(zhuǎn)發(fā)平面抽象機(jī)制僅以“Match-Action”方式對數(shù)據(jù)分組進(jìn)行轉(zhuǎn)發(fā),無法支持更靈活的轉(zhuǎn)發(fā)平面操作,比如基于邏輯運(yùn)算的分組轉(zhuǎn)發(fā)機(jī)制、有狀態(tài)的分組計(jì)算等。如何進(jìn)行更加合理、更加靈活的轉(zhuǎn)發(fā)平面抽象,是SDN值得研究的重要問題。
(2)控制邏輯一致性問題研究
控制邏輯集中和分布式狀態(tài)管理提高網(wǎng)絡(luò)的可編程性的同時(shí),也帶來了控制邏輯一致性問題。在控制平面,為了解決大規(guī)模網(wǎng)絡(luò)中控制器單點(diǎn)性能瓶頸問題,采用多控制器管控的分布式控制機(jī)制,控制器之間同步全網(wǎng)絡(luò)視圖信息成為保證控制邏輯一致性的重要手段。在數(shù)據(jù)平面,交換機(jī)失效和流表項(xiàng)頻繁更新是分布式狀態(tài)管理需要解決的問題。
(3)高性能轉(zhuǎn)發(fā)平面技術(shù)與實(shí)現(xiàn)
對于轉(zhuǎn)發(fā)平面而言,不同高速硬件平臺(tái)具有不同優(yōu)勢:如FPGA適合于簡單、高性能的轉(zhuǎn)發(fā)計(jì)算;TCAM支持高速查找;而多核處理器具有靈活性強(qiáng)、支持復(fù)雜轉(zhuǎn)發(fā)處理等特點(diǎn)。在SDN轉(zhuǎn)發(fā)設(shè)備中,為了更好地滿足不同網(wǎng)絡(luò)應(yīng)用的性能需求,硬件平臺(tái)趨于異構(gòu)化。如何利用異構(gòu)芯片的性能實(shí)現(xiàn)高效靈活的數(shù)據(jù)轉(zhuǎn)發(fā),既需要支持高效查找、快速更新、低存儲(chǔ)開銷的算法,也需要基于流表特征提升實(shí)現(xiàn)技術(shù)。
(4)大范圍部署問題
目前,雖然SDN已經(jīng)在部分?jǐn)?shù)據(jù)中心網(wǎng)絡(luò)中實(shí)踐部署,但是其只能實(shí)現(xiàn)簡單的分組轉(zhuǎn)發(fā)控制,無法實(shí)現(xiàn)更加復(fù)雜的網(wǎng)絡(luò)功能和應(yīng)用。同樣,盡管NFV思想使網(wǎng)絡(luò)功能可編程的前景更加明朗,但其還處于理論探討階段,實(shí)際部署還需要研究探討。因此,在大范圍的網(wǎng)絡(luò)中實(shí)現(xiàn)完全的可編程還面臨很多嚴(yán)峻的挑戰(zhàn)。
(5)網(wǎng)絡(luò)可編程帶來的安全問題
網(wǎng)絡(luò)可編程技術(shù)支持網(wǎng)絡(luò)參與者(包括運(yùn)營商、管理員、用戶)定制網(wǎng)絡(luò)應(yīng)用的思想打破了網(wǎng)絡(luò)本身的完整性,會(huì)增加網(wǎng)絡(luò)安全危險(xiǎn),必須考慮如何控制用戶的權(quán)限和行為。
網(wǎng)絡(luò)可編程技術(shù)是實(shí)現(xiàn)網(wǎng)絡(luò)定制化服務(wù)、集中化管理、遞進(jìn)式革新的關(guān)鍵技術(shù)之一,其內(nèi)涵伴隨網(wǎng)絡(luò)技術(shù)的發(fā)展而不斷變換,并在未來網(wǎng)絡(luò)研究中占據(jù)了主要地位。作為目前網(wǎng)絡(luò)可編程技術(shù)的典型代表,SDN和NFV受到學(xué)術(shù)界和產(chǎn)業(yè)界的共同關(guān)注,學(xué)術(shù)界深入研究了SDN控制平面和轉(zhuǎn)發(fā)平面的可編程關(guān)鍵技術(shù)以及與NFV的融合技術(shù),產(chǎn)業(yè)界也正在籌劃一場網(wǎng)絡(luò)運(yùn)營商市場的變革。要想實(shí)現(xiàn)網(wǎng)絡(luò)可編程技術(shù)的廣泛應(yīng)用和部署,不僅需要克服很多技術(shù)難題,包括控制邏輯一致性、可編程靈活性、網(wǎng)絡(luò)高級(jí)編程語言以及網(wǎng)絡(luò)安全管理等關(guān)鍵性問題,同時(shí)需要虛擬化、網(wǎng)絡(luò)操作系統(tǒng)、硬件開發(fā)等輔助性技術(shù)的支撐,更需要網(wǎng)絡(luò)運(yùn)營商、設(shè)備生產(chǎn)商、服務(wù)提供商的全力協(xié)同合作。
[1]FEAMSTER N,REXFORD J,ZEGURA E.The road to SDN[J].Queue,2013,11(12):20-27.
[2]NUNES B A A,MENDONCA M,NGUYEN X N.A survey of software-defined networking:past,present and future of programmable networks[J].IEEE Communications Surveysamp;Tutorials,2014,16(3):1617-1634.
[3]OpenFlow switch specication version 1.3.0[EB/OL].[2015-02-28].http:/www.Open-network- ing.org.
[4]Network functions virtualisation:an introduction,benefits,enablers,challengesamp;call for action[EB/OL].[2015-03-22].http:/portal.etsi.org/NFV/NFV_White_Paper.pdf.
[5]CAMPBELL A T,KATZELA I,MIKI K,et al.Open signaling for ATM,internet and mobile networks[J].ACM SIGCOMM Computer Communication Review,1999,29(2):97-108.
[6]Multiservice switching forum[EB/OL].[2015-05-18].http:/www.msforum.org/.
[7]DORIA A,HELLSTRAND F,SUNDELL K,et al.General switch management protocol[S/OL].[2015-02-10].https:/tools.ietf.org/html/draft-worster-gsmp-00.
[8]Optical internetworking forum[EB/OL].[2015-05-14].http://www.oiforum.com/.
[9]TENNENHOUSE D L,SMITH J M,SINCOSKIE W D,et al.A survey of active network research[J].Communications Magazine IEEE,1997,35(1):80-86.
[10]Elliott C.GENI:opening up new classes of experiments in global networking[J].IEEE Internet Computing,2010,14(1):39-42.
[11]NSF future internet design[EB/OL].[2015-05-08].http:/www.nets-find.net/.
[12]GAVRAS A,KARILA A,F(xiàn)DIDA S,et al.Future internet research and experimentation:the FIRE initiative[J].ACM SIGCOMM Computer Communication Review,2007,37(3):89-92.
[13]BHATTACHARJEE S,CALVERT K L,ZEGURA E W.An Architecture for Active Networking[M].New York:Springer US,1997.
[14]SMITH J M,F(xiàn)ARBER D J,GUNTER C A,et al.SwitchWare:accelerating network evolution(white paper)[R/OL].[2015-05-29].http:/repository.upenn.edu/cis_reports/211.
[15]WETHERALL D J,GUTTAG J V,TENNENHOUSE D L.ANTS:a toolkit for building and dynamically deploying network protocols[C]/The IEEE 1st Conference on Open Architectures and Network Programming,April 3-4,1998,San Francisco,CA,USA.New Jersey:IEEE Press,1998:117-129.
[16]Devolved control of ATM networks[EB/OL].[2015-05-20].http://www.cl.cam.ac.uk/research/srg/netos/old-projects/dcan/#pub.
[17]RFC 5810(Proposed Standard)[S/OL].[2014-10-30].http://wenku.baidu.com/link?Url=4kZCAq87BmnGJcjYDZnn751D2 qLjzrHj0kKy9VhLSjraFEu0OB9_RJQYB2Z-gm8jjcjJfhoe8EI4NT WrrjJb8_sCCBCjyuYKKqFgJ449pNi.
[18]REXFORD J,GREENBERG A,HJALMTYSSON G,et al.Network-wide decision making:toward a wafer-thin control plane[C]//The Third Workshop on Hot Topics in Networks,November 15-16,2004,San Diego,CA,USA.[S.l.:s.n.],2004:59-64.
[19]GREENBERG A,HJALMTYSSON G,MALTZ D A,et al.A clean slate 4d approach to network control and management[J].ACM SIGCOMM Computer Communicaiton Review,2005,35(5):41-54.
[20]RFC4741(proposed standard)[S/OL].[2015-04-30].http:/www.rfc-editor.org/rfc/rfc4741.txt.
[21]RFC1157[S/OL].[2015-05-30].http:/www.faqs.org/rfcs/rfc1157.html.
[22]CASADO M,GARFINKEL T,AKELLA A,et al.SANE:a protection architecture for enterprise networks[C]//The 15th Conference on USENIX Security Symposium,July 3-August 4,2006,Vancouver,B.C.,Canada.New York:ACM Press,2006:137-151.
[23]CASADO M,F(xiàn)REEDMAN MJ,PETTIT J,et al.Ethane:taking control of the enterprise[J].ACM SIGCOMM Computer Communication Review,2007,37(4):1-12.
[24]GUDE N,KOPONEN T,PETTIT J,et al.Nox:towards an operating system for networks[J].ACM SIGCOMM Computer Communication Review,2008,38(3):105-110.
[25]NOX[EB/OL].[2015-03-15].http:/noxrepo.org.
[26]The preliminary design and implementation of the maestro network control platform[EB/OL].[2008-01-30].https://www.researchgate.net/publication/241342434_The_Prelimina-ry_Design_and_Implementation_of_the_Maestro_Network_Control_Platform.
[27]POX[EB/OL].[2014-11-18].http:/www.noxrepo.org/pox/about-pox/.
[28]Beacon[EB/OL].[2015-01-10].http:/www.beaconcontroller.net.
[29]Floodlight[EB/OL].[2015-01-10].http:/floodlight.openflowhub.org.[30]Ryu[EB/OL].[2015-03-15].http:/osrg.github.com/ryu/.
[31]SNAC[EB/OL].[2015-02-18].http:/www.openflow.org/wp/snac.
[32]Trema[EB/OL].[2015-04-13].http:/trema.github.com/trema.
[33]BERDE P,GEROLA M,HART J,et al.ONOS:towards an open,distributed SDN OS[C]/The Third workshop on Hot Topics in Software Defined Networking,August 22,2014,Chicago,IL,USA.New York:ACM Press,2014:1-6.
[34]NASCIMENTO MR,ROTHENBERG C E,SALVADOR MR,et al.Virtual routers as a service:the RouteFlow approach leveraging software-defined networks[C]/The 6th International Conference on Future Internet Technologies,June 13-15,2010,New York,NY,USA.New York:ACM Press,2011:34-37.
[35]TOOTOONCHAINA,GORBUNOVS,GANJALIY,etal.On controller performance in software-defined networks[C]/The 9th USENIX Workshop on Hot Topics in Management of Internet,Cloud,and Enterprise Networks and Services,April 24,2012,Berkeley,CA,USA.New York:ACM Press,2012:10.
[36]KOPONEN T,CASADO M,GUDE N,et al.Onix:a distributed control platform for large-scale production networks[C]/The 9th USENIX Conference on Operating Systems Design and Implementation,October 4-6,2010,Vancouver.BC,Canada.New York:ACM Press,2010:351-364.
[37]MEDVED J,VARGA R,TKACIK A,et al.OpenDaylight:towards a model-driven SDN controller architecture[C]/The IEEE 15th International Symposium on a World of Wireless,Mobile and Multimedia Networks(WoWMoM),June 19,2014,Sydney,Australia.New Jersey:IEEE Press,2014:1-6.
[38]Network functions virtualisation infrastructure architecture;architecture of infrastructure network domain[EB/OL].[2015-05-10].http:/www.etsi.org/standards-search.
[39]Network functions virtualisation(NFV):network operator perspectives on industry progress[EB/OL].[2015-01-14].http://portal.etsi.org/NFV/NFV_White_Paper2.pdf.
[40]Network functions virtualisation infrastructure architecture;overview[EB/OL].[2014-12-01].http:/www.etsi.org/standardssearch.
[41]Network functions virtualisation(NFV);virtual network functions architecture[EB/OL].[2014-11-02].http:/www.etsi.org/standards-search.
[42]RISSO F,MANZALINI A,NEMIROVSKY M.Some controversial opinions on software-defined data plane services[C]//IEEE SDN for Future Networks and Services(SDN4FNS),October 3-4,2011,Trento,Italy.New Jersey:IEEE Press,2013:1-7.
[43]LU G,SHI Y,GUO C,et al.CAFE:a configurable packet forwarding engine for data center networks[C]/The 2nd ACM SIGCOMM Workshop on Programmable Routers for Extensible Services of Tomorrow(PRESTO),August 21,2009,Barcelona,Spain.New York:ACM Press,2009:25-30.
[44]ATTIG M,BREBNER G.400Gb/s programmable packet parsing on a single FPGA[C]//The Seventh ACM/IEEE Symposium on Architectures for Networking and Communications Systems(ANCS),October 3-4,2011,Brooklyn,NY,USA.New Jersey:IEEE Press,2011:12-23.
[45]LV G F,SUN Z G,LI T,et al.LabelCast:a general abstraction for the forwarding plane of SDN[J].Chinese Journal of Computers,2012,35(10):2037-2047.
[46]DE CARLI L,PAN Y,KUMER A,et al.PLUG:flexible lookup modules for rapid deployment of new protocols in high-speed routers[J].ACM SIGCOMM Computer Communication Review,2009,39(4):207-218.
[47]SONG H Y.Protocol oblivious forwarding:unleash the power of SDN through a future-proof forwarding plane[C]/ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking(HotSDN),August 12-16,2013,Hong Kong,China.New York:ACM Press,2013:127-132.
[48]MEKKY H,HAO F,MUKHERJEE S,et al.Application-aware data plane processing in SDN[C]//The Third Workshop on Hot Topics in Software Defined Networking,August 22,2014,Chicago,IL,USA.New York:ACM Press,2014:13-18.
[49]BOSSHART P,GIBB G,KiIM H S,et al.Forwarding metamorphosis:fast programmable match- action processing in hardware for SDN[C]//ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking(HotSDN),August 12-16,2013,Hong Kong,China.New York:ACM Press,2013:99-110.
[50]MOSHREF M,BHARGAVA A,GUPTA A,et al.Flow-level state transition as a new switch primitive for SDN[C]/The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014:377-378.
[51]KATTA N,ALIPOURFARD O,REXFORD J.Infinite CacheFlow in software-defined networks[C]//The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014.
[52]MOGUL J C,CONGDON P.Hey,you darned counters?。篻et off my ASIC[C]/The First Workshop on Hot Topics in Software Defined Networks,August 13-17,2012,Helsinki,F(xiàn)inland.New York:ACM Press,2012:25-30.
[53]JEYAKUMAR V,ALIZADEH M,GENG Y,et al.Millions of little minions:using packets for low latency network programming and visibility[C]/The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014:17-22.
[54]LI Y,YAO G,BI J.Flowinsight:decoupling visibility from operability in SDN data plane[C]/The 2014 ACM Conference on SIGCOMM,August 17-22,2014,Chicago,IL,USA.New York:ACM Press,2014:137-138.
[55]FOSTER N,HARRISON R,F(xiàn)REEDMAN MJ,et al.Frenetic:a network programming language[J].ACM Sigplan Notices,2011,46(9):279-291.
[56]NetCore[EB/OL].[2015-01-05].http:/www.jgn.nict.go.jp/jgn2ar chive/english/jgn2inde.Html.
[57]MONSANTO C,REICH J,F(xiàn)OSTER N,et al.Composing software defined networks[C]//The 10th USENIX Symposium on Networked Systems Design and Implementation,April 2-5,2013,Lombard,IL,USA.New York:ACM Press,2013:1-13.
[58]Nettle:functional reactive programming for OpenFlow networks[EB/OL].[2015-01-30].http://haskell.cs.yale.edu/wp-content/uploads/2011/03/NettlePADL2011.pdf.
[59]VOELLMY A,KIM H,F(xiàn)EAMSTER N.Procera:a language for high-level reactive network control[C]//The first Workshop on Hot Topics in Software Defined Networks,June 15,2012,Helsinki,F(xiàn)inland.New York:ACM Press,2012:43-48.
[60]Software-defined networking:the new norm for networks[EB/OL].[2015-04-25].https:/www.Opennetworking.org.
[61]OpenFlow-enabled SDN and network functions virtualization[EB/OL].[2014-10-09].https:/www.opennetworking.org/images/stories/downloads/sdn-resources/solution-briefs/sb-sdn-nvf-solution.pdf.
[62]QAZI Z A,TU C C,CHIANG L,et al.Simple-fying middlebox policy enforcement using SDN[C]//The ACM SIGCOMM 2013 Conference on SIGCOMM,August 12-16,2013,Hong Kong,China.New York:ACM Press,2013:27-38.
[63]GEMBER A,PRABHU P,GHADIYALI Z,et al.Toward software-defined middlebox networking[C]/The 11th ACM Workshop on Hot Topics in Networks,October 29,2012,Seattle,WA,USA.New York:ACM Press,2012:7-12.
[64]GEMBER A,VISWANATHAN R,PRAKASH C,et al.OpenNF:enabling innovation in network function control[C]//ACM Conference on Sigcomm,August 19,2014,Chicago,USA.New York:ACM Press,2014:163-174.
[65]MARTINS J,AHMED M,RAICIU C,et al.ClickOS and the art of network function virtualization[C]/The 11th USENIX Symposium on Networked Systems Design and Implementation(NSDI 14),April 2-4,2014,Seattle,WA,USA.New York:ACM Press,2014:459-473.
Research on network programmable technologies
XIE Lijun,HU Yuxiang,WANG Binqiang,LAN Julong,CHENG Guozhen,WANG Zhiming
National Digital Switching System Engineeringamp;Technological Ramp;D Center,Zhengzhou 450002,China
Network programmable technologies enforce the capacity of flexible configuration and resource composition by providing network devices with programmable interfaces.Starting with the discussion on the background in the naissance and developments of network programmable technologies,the initial programmable technologies,frameworks of control and data plane and typical software defined networking(SDN)and network function virtualization(NFV)were reviewed.The research on protocol irrelevance,implementation of flow tables,high-level programming languages and integration with NFV were elaborated.Moreover,the future works were summarized in the end.
network programmability,software defined networking,network function virtualization,protocol irrelevance,programming language
s:The National Basic Research Program of China(973 Program)(No.2012CB315901,No.2013CB329104),The National Natural Science Foundation of China(No.61372121,No.61309019),The National High Technology Research and Development Program of China(863 Program)(No.2013AA013505)
TP393
A
10.11959/j.issn.1000-0801.2016038
2015-06-29;
2015-12-17
國家重點(diǎn)基礎(chǔ)研究發(fā)展計(jì)劃(“973”計(jì)劃)基金資助項(xiàng)目(No.2012CB315901,No.2013CB329104);國家自然科學(xué)基金資助項(xiàng)目(No.61372121,No.61309019);國家高技術(shù)研究發(fā)展計(jì)劃(“863”計(jì)劃)基金資助項(xiàng)目(No.2013AA013505)
胡宇翔(1982-),男,博士,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心講師,主要研究方向?yàn)樾滦途W(wǎng)絡(luò)體系結(jié)構(gòu)。
汪斌強(qiáng)(1963-),男,博士,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心教授,主要研究方向?yàn)樾滦途W(wǎng)絡(luò)體系結(jié)構(gòu)。
蘭巨龍(1962-),男,博士,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心教授,主要研究方向?yàn)樾滦途W(wǎng)絡(luò)體系結(jié)構(gòu)。
程國振(1986-),男,博士,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心講師,主要研究方向?yàn)樾滦途W(wǎng)絡(luò)體系結(jié)構(gòu)。
謝立軍(1988-),男,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心博士生,主要研究方向?yàn)樾滦途W(wǎng)絡(luò)體系結(jié)構(gòu)。
王志明(1986-),男,國家數(shù)字交換系統(tǒng)工程技術(shù)研究中心博士生,主要研究方向?yàn)樾滦途W(wǎng)絡(luò)體系結(jié)構(gòu)。