*本文系SDNLAB編譯自《A Survey on P4 Challenges in Software Defined Networks: P4 Programming》一文。
在過去的十年中,SDN (軟件定義網(wǎng)絡(luò)) 極大地提高了網(wǎng)絡(luò)的可編程性。SDN 理念的核心是將應(yīng)用、控制和數(shù)據(jù)平面解耦,以提高網(wǎng)絡(luò)的可編程性。與控制平面和應(yīng)用平面相比,數(shù)據(jù)平面受到的關(guān)注較少。傳統(tǒng)上,數(shù)據(jù)平面依賴于固定功能,僅能使用有限數(shù)量的協(xié)議來轉(zhuǎn)發(fā)數(shù)據(jù)包。P4(獨(dú)立于編程協(xié)議的數(shù)據(jù)包處理器)語言的出現(xiàn)使得對SDN數(shù)據(jù)平面進(jìn)行編程成為可能,這將SDN推向了一個(gè)新的水平。
本文回顧了網(wǎng)絡(luò)從傳統(tǒng)網(wǎng)絡(luò)到可編程數(shù)據(jù)平面的演變,解釋了可編程交換機(jī)的基本原理,并總結(jié)了從傳統(tǒng)網(wǎng)絡(luò)到可編程網(wǎng)絡(luò)的發(fā)展歷程。作者從P4 的角度出發(fā)探討了 SDN的發(fā)展,共分為六個(gè)部分:
1.TB 級帶寬時(shí)代的 SDN 和 P4 連接;
2.SDN 的演進(jìn)以及P4 在網(wǎng)絡(luò)技術(shù)中的興起;
3.對P4 的詳細(xì)解析;
4.數(shù)據(jù)平面的可編程性;
5.研究的挑戰(zhàn)和機(jī)遇;
6.總結(jié)以及未來的趨勢。
網(wǎng)絡(luò)的發(fā)展歷程
在開始之前,我們需要先了解導(dǎo)致數(shù)據(jù)平面可編程性需求產(chǎn)生的一系列發(fā)展動(dòng)態(tài)。本節(jié)將進(jìn)一步介紹網(wǎng)絡(luò)如何從傳統(tǒng)網(wǎng)絡(luò)轉(zhuǎn)變?yōu)榭删幊叹W(wǎng)絡(luò),以及P4 在 SDN 中的重要性。
傳統(tǒng)網(wǎng)絡(luò)
傳統(tǒng)網(wǎng)絡(luò)運(yùn)行于諸如路由器、交換機(jī)和應(yīng)用交付控制器等固定功能設(shè)備之上,通常采用專用設(shè)備來執(zhí)行特定任務(wù)。SDN則為網(wǎng)絡(luò)提供了靈活性,使其能夠適應(yīng)不斷增長的網(wǎng)絡(luò)規(guī)模和安全需求。傳統(tǒng)網(wǎng)絡(luò)一直面臨靈活性方面的挑戰(zhàn),且部署和管理成本較高。在傳統(tǒng)網(wǎng)絡(luò)中,控制平面和數(shù)據(jù)轉(zhuǎn)發(fā)平面緊密耦合且功能較為固化。傳統(tǒng)網(wǎng)絡(luò)是面向硬件的,SDN是面向軟件的。
圖1 傳統(tǒng)的可編程網(wǎng)絡(luò)
軟件定義網(wǎng)絡(luò)
SDN由控制器、南向和北向API組成,已在網(wǎng)絡(luò)行業(yè)應(yīng)用超過十年。當(dāng)網(wǎng)絡(luò)需要具備可編程能力時(shí),便會實(shí)施SDN策略。網(wǎng)絡(luò)控制平面和數(shù)據(jù)轉(zhuǎn)發(fā)平面解耦,控制平面可以控制多臺設(shè)備。如上圖所示,控制平面內(nèi)嵌有SDN技術(shù),因此具有可編程性,但數(shù)據(jù)轉(zhuǎn)發(fā)平面尚不具備靈活性,因?yàn)榭删幊绦陨形赐耆采w到這一層面。不過,管理和配置工作已轉(zhuǎn)移到集中式控制臺進(jìn)行。目前,SDN已被亞馬遜、Facebook和谷歌數(shù)據(jù)中心等廣泛采用。下面將帶大家了解SDN的演化歷程,以及數(shù)據(jù)轉(zhuǎn)發(fā)層是如何逐漸變得更加靈活的。
OpenFlow
隨著SDN技術(shù)的成熟穩(wěn)定,OpenFlow協(xié)議開始流行并被證明是最具影響力的SDN協(xié)議之一。OpenFlow協(xié)議用于配置支持SDN的設(shè)備,是開發(fā)SDN解決方案中的關(guān)鍵組件。作為SDN控制器中的通信協(xié)議,OpenFlow協(xié)議直接與數(shù)據(jù)轉(zhuǎn)發(fā)平面中的網(wǎng)絡(luò)設(shè)備進(jìn)行交互。所有與SDN控制器通信的設(shè)備都必須兼容OpenFlow協(xié)議。近年來,協(xié)議標(biāo)準(zhǔn)變得越來越復(fù)雜。通過此接口,SDN控制器將變更發(fā)送至交換機(jī)/路由器的流表,從而允許網(wǎng)絡(luò)管理員對流量進(jìn)行分段、管理流以獲得最佳性能以及配置和應(yīng)用新信息。
SDN的演進(jìn)
SDN 也經(jīng)歷了許多試錯(cuò)方法。SDN 1.0版本引入了OpenFlow協(xié)議。由于第一版存在一些局限性,SDN 2.0版本解耦了overlay。最后,SDN 3.0版本采用了n-centric 。隨著IT和SDN的發(fā)展。然后,技術(shù)領(lǐng)域發(fā)生了很多變化。
為了理解可編程網(wǎng)絡(luò)的演變,我們需要理解圖1。在圖1中,可以看到從傳統(tǒng)架構(gòu)(左側(cè))向SDN架構(gòu)(中間)以及采用P4的具有可編程數(shù)據(jù)平面的SDN架構(gòu)(右側(cè))的轉(zhuǎn)變過程。在傳統(tǒng)架構(gòu)中,控制平面和數(shù)據(jù)平面緊密綁定,被稱為“緊耦合”。隨著SDN的出現(xiàn),控制平面和數(shù)據(jù)平面被分離,形成了自下而上的設(shè)計(jì)方式,兩者之間的信息通過OpenFlow協(xié)議進(jìn)行共享。當(dāng)前,新型架構(gòu)追求的是在SDN中使用可編程數(shù)據(jù)平面,它采取了自上而下的設(shè)計(jì)方法。這種可編程芯片可以根據(jù)用戶需求進(jìn)行配置,而傳統(tǒng)的SDN架構(gòu)則具備固定的一組功能。
在SDN虛擬化演進(jìn)的過程中,虛擬化之王“VMware”收購了Nicira,并將其更名為VMware NSX。NSX代表SDN,在全球數(shù)據(jù)中心內(nèi)的數(shù)以十萬計(jì)的虛擬機(jī)中得到了廣泛應(yīng)用。
表1 IT 和 SDN 的演變
SDN現(xiàn)狀如何?
SDN并未消亡,相反,它依然活躍并且在應(yīng)對當(dāng)前網(wǎng)絡(luò)市場的需求方面表現(xiàn)出色。盡管許多研究者認(rèn)為SDN已經(jīng)不存在了,但這并不準(zhǔn)確。實(shí)際上,SDN存在于所有的虛擬化網(wǎng)絡(luò)和軟件定義網(wǎng)絡(luò)之中,并通過包含SDN的理念和技術(shù)實(shí)現(xiàn)了對前代產(chǎn)品的超越。這與分析師過去對SDN未來的預(yù)測類似:**雖然不再單獨(dú)強(qiáng)調(diào)“SDN”這個(gè)術(shù)語,但SDN的概念已經(jīng)被融入到各類網(wǎng)絡(luò)工具與解決方案之中。**因此,我們會在諸如SD-WAN(軟件定義廣域網(wǎng))等具體工具或技術(shù)中會看到SDN的身影。
SDN為什么需要P4?
SDN面臨著諸多挑戰(zhàn)。首先,實(shí)現(xiàn)新協(xié)議和擴(kuò)展現(xiàn)有協(xié)議的功能需要耗費(fèi)時(shí)間。其次,像SDN中的“OpenFlow”等協(xié)議在操作和管理界面方面存在不足。最重要的一點(diǎn)在于,在OpenFlow協(xié)議中添加新協(xié)議是一個(gè)耗時(shí)的研究驅(qū)動(dòng)過程。
相比之下,P4的可編程性為網(wǎng)絡(luò)堆棧的靈活性帶來了全新的可能性,使其可以從7層OSI模型或5層TCP/IP模型中獲得前所未有的改變。其次,對于升級性需求(硬件解決方案無法滿足),通過更新運(yùn)行在設(shè)備上的P4軟件,可以在不購買新交換機(jī)及其框架的情況下,向網(wǎng)絡(luò)設(shè)備添加功能和協(xié)議??傊?,SDN已成為一種頗具前景的集中化管理網(wǎng)絡(luò)架構(gòu)的方法,使得網(wǎng)絡(luò)變得動(dòng)態(tài)化、集中化、靈活且可編程。因此,在SDN環(huán)境中集成P4技術(shù)是必要的。
數(shù)據(jù)平面編程
可編程數(shù)據(jù)平面是一種靈活的轉(zhuǎn)發(fā)數(shù)據(jù)包的方式,可以處理多種格式和協(xié)議。在實(shí)現(xiàn)交換機(jī)執(zhí)行復(fù)雜數(shù)據(jù)包操作的過程中,可編程數(shù)據(jù)平面是一個(gè)關(guān)鍵的步驟。然而,它們不能單獨(dú)執(zhí)行所有任務(wù)。
P4 是一種編程語言,允許用戶編寫自定義協(xié)議、構(gòu)建復(fù)雜的匹配/動(dòng)作pipeline并在代碼中引入外部函數(shù)。P4可用于配置轉(zhuǎn)發(fā)動(dòng)作,是為數(shù)據(jù)平面編程而創(chuàng)建的。因此,P4定義了能夠在數(shù)據(jù)包上執(zhí)行的動(dòng)作,此時(shí)控制平面和應(yīng)用平面已經(jīng)具備了可編程性,而數(shù)據(jù)平面編程則是缺失的一環(huán),P4填補(bǔ)了這一空白。
P4的崛起
隨著數(shù)據(jù)流量的急劇增長、新協(xié)議的涌現(xiàn)以及公有云和私有云的普及,網(wǎng)絡(luò)世界的創(chuàng)新速度正在加速。從傳統(tǒng)交換機(jī)過渡到靈活可編程交換機(jī)的過程現(xiàn)已基本完成,而這需要一種新的標(biāo)準(zhǔn)語言來支撐。這種新語言應(yīng)滿足以下三個(gè)基本要求:
1.該語言應(yīng)使網(wǎng)絡(luò)具備靈活性,能夠根據(jù)需求快速適應(yīng)變化。
2.使用的語言應(yīng)具有表達(dá)力強(qiáng)、涵蓋面廣的特點(diǎn),能夠全面描述和控制網(wǎng)絡(luò)行為。
3.這種語言必須具有良好的移植性,能在不同架構(gòu)之間平滑遷移和使用。
P4是一種特定領(lǐng)域語言,用于控制發(fā)送至網(wǎng)絡(luò)設(shè)備數(shù)據(jù)平面的數(shù)據(jù)包。它由計(jì)數(shù)器、寄存器、報(bào)頭字段規(guī)范以及匹配-動(dòng)作表支持等結(jié)構(gòu)組成。P4專門設(shè)計(jì)用于數(shù)據(jù)平面,用以檢查SDN交換機(jī)行為的正確性。
通過P4,可以定義自定義的報(bào)頭格式,并能執(zhí)行動(dòng)態(tài)的報(bào)頭解析。P4程序采用特定格式編寫,必須包括以下部分:報(bào)頭、解析器、逆解析器、匹配-動(dòng)作、校驗(yàn)和驗(yàn)證、入口處理(ingress)、出口處理(egress)以及校驗(yàn)和計(jì)算。程序中各個(gè)部分相互依賴,共同完成相應(yīng)的功能。
圖2描繪了P4語言的演變和發(fā)展歷程。P4語言草案于2014年提交,并于2015年5月首次在全球推出。2016年,經(jīng)過許多誤解后,P4社區(qū)明確了OpenFlow與P4語言之間的區(qū)別。同年5月,推出了P4語言的第二個(gè)版本,即P416;在此之前的老版本被稱為P414。2017年7月,為了運(yùn)行P4程序,P4Runtime被引入并嵌入到了控制平面中。由于其可擴(kuò)展性、可行性和可重新配置性,許多大規(guī)模網(wǎng)絡(luò)都已采用P4語言。P4Runtime v1.0在2019年發(fā)布,P4Runtime v1.2在2020年發(fā)布。
圖2 P4語言的演變和歷史
如表2所示,自2013年以來已經(jīng)開發(fā)了多個(gè)版本的P4。這一初始構(gòu)想始于一個(gè)研究團(tuán)隊(duì),他們在2013年5月開始著手研究。最終,在2014年7月,該團(tuán)隊(duì)向SIGCOMM提交了首個(gè)P4草案提議。獲得批準(zhǔn)后,他們對論文進(jìn)行了修訂并于同年8月再次提交。最終,P4作為一種可編程語言被接受,這個(gè)版本被稱為P414。P414共發(fā)布了四個(gè)不同的版本。然而,為了填補(bǔ)P414中的漏洞,后續(xù)推出了包含新的數(shù)據(jù)類型和控制語句的P416版本。
表2 P4 版本
為什么社區(qū)青睞 P4?
P4 能夠描述利用可編程轉(zhuǎn)發(fā)細(xì)節(jié)處理的數(shù)據(jù)包,它是一種允許網(wǎng)絡(luò)設(shè)備使用新功能進(jìn)行編程的編程語言。P4 提供了一組簡單的工具,使得開發(fā)者能夠在交換硬件上實(shí)施自定義協(xié)議棧。
P4并不理解以太網(wǎng)或IP頭部的具體結(jié)構(gòu),只有開發(fā)者才能告知硬件如何解析、匹配和生成以太網(wǎng)頭部,以及最終應(yīng)將數(shù)據(jù)包轉(zhuǎn)發(fā)到哪個(gè)端口。相較于傳統(tǒng)的固定功能,這種可編程性為網(wǎng)絡(luò)堆棧帶來了新的靈活性機(jī)會。通過P4,網(wǎng)絡(luò)設(shè)備可以通過添加新功能和協(xié)議進(jìn)行升級,而不是購買全新的交換機(jī),從而開啟了新的可能性。
P4生態(tài)系統(tǒng)
本節(jié)將對P4進(jìn)行深入探討。在編寫P4程序時(shí),需要滿足三個(gè)主要目標(biāo):
目標(biāo)獨(dú)立性:P4編譯器在將與目標(biāo)無關(guān)的P4描述轉(zhuǎn)化為針對特定交換機(jī)配置的與目標(biāo)相關(guān)的程序時(shí),應(yīng)當(dāng)考慮交換機(jī)的實(shí)際功能和性能。
協(xié)議獨(dú)立性:交換機(jī)不需要受特定數(shù)據(jù)包格式的約束。但是,控制器應(yīng)能夠指定以下內(nèi)容:數(shù)據(jù)包嗅探器可以提取具有特定名稱和類型的報(bào)頭字段;這些報(bào)頭區(qū)域是使用“匹配-動(dòng)作”表的集合進(jìn)行處理的。
可重配置性:控制器應(yīng)該能夠細(xì)化數(shù)據(jù)包的包分析過程和包頭區(qū)域的處理過程,以便根據(jù)需求進(jìn)行調(diào)整和重新配置。
P4架構(gòu)
P4 會進(jìn)入并處理不同的功能塊,而理解P4如何進(jìn)入不同功能處理塊至關(guān)重要。圖3和圖4描述了數(shù)據(jù)包在各種轉(zhuǎn)發(fā)設(shè)備(如以太網(wǎng)交換機(jī)、負(fù)載均衡器、路由器)上的傳輸情況。目前存在兩種不同的架構(gòu):P414架構(gòu)和P416架構(gòu)。
P414架構(gòu)
P414架構(gòu)被稱為“P4抽象轉(zhuǎn)發(fā)模型”。P414主要針對類似于PISA的設(shè)備,而P416則超出了 PISA 的范圍。在P4~14 ~架構(gòu)中,PISA 架構(gòu)是一種與協(xié)議無關(guān)的交換機(jī)架構(gòu),采用single-pipeline轉(zhuǎn)發(fā)設(shè)計(jì)。該架構(gòu)的局限性在于,它不知道如何表達(dá)在pipeline中被處理的數(shù)據(jù)包的具體過程。
圖3 P414 架構(gòu)圖
P416架構(gòu)
P416采用了一種可移植的交換機(jī)架構(gòu),使其能夠針對具有不同架構(gòu)的多個(gè)可編程設(shè)備進(jìn)行目標(biāo)設(shè)定。P416使用可編程解析器并執(zhí)行多階段匹配動(dòng)作過程來轉(zhuǎn)發(fā)傳入數(shù)據(jù)包。
P416遵循可移植交換架構(gòu),可以在任何交換機(jī)目標(biāo)上實(shí)現(xiàn)。PSA 中實(shí)現(xiàn)的多個(gè)網(wǎng)絡(luò)功能被組合到一個(gè)pipeline中。該pipeline具有以下組件:解析器、校驗(yàn)和驗(yàn)證、入口匹配操作、數(shù)據(jù)包緩沖區(qū)、出口匹配操作、校驗(yàn)和更新、解析器和緩沖區(qū)排隊(duì)引擎。
圖4 P416 架構(gòu)圖
P4 工作流程
本節(jié)將詳細(xì)討論P(yáng)4的工作流程。P4程序主要包括兩個(gè)操作:配置和下發(fā)。配置操作決定了“匹配執(zhí)行動(dòng)作”各階段的順序,并指定了各階段要處理的協(xié)議頭區(qū)域。通過配置交換機(jī),可以確定支持哪些網(wǎng)絡(luò)協(xié)議以及如何處理數(shù)據(jù)包。發(fā)出的操作包括向“匹配-動(dòng)作”表中添加或移除條目。該表本身也是配置操作期間明確指定的一部分。發(fā)出操作的過程決定了在任何給定時(shí)刻數(shù)據(jù)包執(zhí)行策略的選取。
圖5 P4程序的工作流程
P4程序的工作流程如圖5所示。P4程序的每個(gè)部分都與執(zhí)行特定功能的不同塊關(guān)聯(lián)。P4程序分為四個(gè)主要部分:數(shù)據(jù)聲明、解析邏輯、具有控制流的匹配-動(dòng)作表和逆解析邏輯。成功運(yùn)行 P4 程序需要解析器、入口處理、調(diào)度器、出口處理和逆解析器。
數(shù)據(jù)包解析器首先處理到達(dá)的數(shù)據(jù)包并從數(shù)據(jù)包報(bào)頭中搜索特定區(qū)域,從而確定交換機(jī)所支持的協(xié)議。該模型不對協(xié)議頭的含義做出任何假設(shè)。相反,解析后的數(shù)據(jù)包表示定義了一組報(bào)頭區(qū)域,在這些報(bào)頭區(qū)域上執(zhí)行“匹配執(zhí)行動(dòng)作”過程。
數(shù)據(jù)包中包含元數(shù)據(jù),這是一種可以在處理階段之間傳遞的額外信息。元數(shù)據(jù)也可以用作數(shù)據(jù)包標(biāo)頭區(qū)域。元數(shù)據(jù)的示例包括入口端口號、傳輸目的地和隊(duì)列信息、用于數(shù)據(jù)包調(diào)度的時(shí)間戳,以及在不同表之間傳遞的數(shù)據(jù)。簡言之,元數(shù)據(jù)是對數(shù)據(jù)包內(nèi)容之外的輔助信息進(jìn)行描述,它們在數(shù)據(jù)包的處理過程中起到關(guān)鍵作用,但不影響數(shù)據(jù)包的基礎(chǔ)傳輸屬性。
匹配-動(dòng)作表接收解析出的報(bào)頭區(qū)域。匹配-動(dòng)作表中有兩個(gè)部分:入口表和出口表。入口表決定了數(shù)據(jù)包將被放入哪一個(gè)隊(duì)列中。數(shù)據(jù)包可以根據(jù)入口處理的流控機(jī)制進(jìn)行轉(zhuǎn)發(fā)、復(fù)制、丟棄或其他操作。當(dāng)數(shù)據(jù)包通過多播方式進(jìn)行復(fù)制時(shí),對于數(shù)據(jù)包頭部上的每一個(gè)動(dòng)作目標(biāo),都會分別修改出口“匹配-動(dòng)作”規(guī)則。
研究差距和挑戰(zhàn)
作者審查了75篇論文,發(fā)現(xiàn)在P4可編程交換機(jī)領(lǐng)域存在著研究空白,他們計(jì)劃通過展示基于P4的解決方案來填補(bǔ)這些空白,這些方案針對DDoS檢測、負(fù)載均衡、數(shù)據(jù)包聚合與解聚。
圖6展示了研究論文在不同類別中的分布情況。這些論文廣泛涉及以下類別:SDN、P4、大規(guī)模網(wǎng)絡(luò)、數(shù)據(jù)平面編程、P4 交換機(jī)、數(shù)據(jù)平面負(fù)載平衡、數(shù)據(jù)中心網(wǎng)絡(luò)和網(wǎng)絡(luò)性能。
圖6 基于不同類別的研究論文分布
研究差距
從審閱的論文中發(fā)現(xiàn)的研究缺口主要包括以下幾點(diǎn):
大多數(shù)研究人員在非功能性 BMv2 交換機(jī)上測試其操作,因?yàn)檫@些交換機(jī)不支持諸如OpenConfig、gNMI和gNOI等配置、監(jiān)控和運(yùn)行協(xié)議。此外,與物理硬件交換機(jī)相比,BMv2交換機(jī)的計(jì)算能力相當(dāng)有限。而基于Stratum等生產(chǎn)就緒平臺的交換機(jī)將使得研究社群能夠測試基于P4的解決方案。Stratum這類平臺的支持將促進(jìn)更接近真實(shí)環(huán)境的實(shí)驗(yàn),提高研究成果的實(shí)用性和可遷移性到實(shí)際網(wǎng)絡(luò)部署中。
當(dāng)前可用的基于P4的解決方案無法有效區(qū)分突發(fā)流量(flash traffic)與攻擊流量,這讓攻擊者有機(jī)會利用低頻次的DDoS攻擊來規(guī)避安全防護(hù)措施。
一些DDoS防御方案依賴于本地流量生成工具產(chǎn)生的合成數(shù)據(jù)集,但目前缺乏既包含惡意流量也包含正常流量的參考數(shù)據(jù)集。這導(dǎo)致了評估和比較不同防御方法時(shí)缺乏真實(shí)性和全面性。此外,部分研究論文在實(shí)驗(yàn)中使用了較小的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),這限制了其研究成果的適用性和有效性驗(yàn)證,使得在更大規(guī)模的實(shí)際網(wǎng)絡(luò)環(huán)境中難以實(shí)施和驗(yàn)證這些方案的效果。
對于交換機(jī)ASIC,一些研究者已經(jīng)使用P4實(shí)現(xiàn)了負(fù)載均衡算法。然而,數(shù)據(jù)連接需要在交換機(jī)中占用大量內(nèi)存進(jìn)行存儲。另一個(gè)研究方向是針對數(shù)據(jù)平面交換機(jī),尤其是在內(nèi)存資源有限的情況下,開發(fā)高效的負(fù)載均衡解決方案。
盡管基于P4的解決方案能夠減少控制平面的計(jì)算和通信開銷,但它可能會增加或減少數(shù)據(jù)平面中交換機(jī)的復(fù)雜性。仍需進(jìn)一步研究來確定如何在交換機(jī)中部署基于P4的算法,同時(shí)有效地最小化其復(fù)雜性。
目前,研究重點(diǎn)集中在可編程交換機(jī)上。然而,完全部署這些解決方案面臨的真正挑戰(zhàn)在于用具有固定功能的可編程交換機(jī)替換所有現(xiàn)有交換機(jī)。如何在保持固定功能交換機(jī)與可編程交換機(jī)并行工作的同時(shí)整合它們,并檢驗(yàn)網(wǎng)絡(luò)性能,仍然是一個(gè)未解決的研究問題。
挑戰(zhàn)
在本節(jié)中,我們將根據(jù)最前沿的文獻(xiàn)討論研究中面臨的一些挑戰(zhàn)。
P4的設(shè)計(jì)問題
P4 最初不支持循環(huán)結(jié)構(gòu)、指針、引用或動(dòng)態(tài)內(nèi)存分配。因此,需要深度包檢測的算法很難實(shí)現(xiàn)。此外,由于P4不支持算術(shù)對數(shù)函數(shù),因此DDoS檢測算法是通過估計(jì)熵值而非利用最長前綴匹配表計(jì)算精確熵值來實(shí)現(xiàn)的。
成本和 P4 可編程交換機(jī)的可用性
目前只有少數(shù)公司生產(chǎn) P4 ASIC ,而且用可編程設(shè)備替換固定功能設(shè)備的成本要高于在現(xiàn)有網(wǎng)絡(luò)中添加傳統(tǒng)設(shè)備。此外,還需要P4專業(yè)人員來定義可編程交換機(jī)的行為,而將SDN(軟件定義網(wǎng)絡(luò))與傳統(tǒng)網(wǎng)絡(luò)的集成仍然是一個(gè)研究挑戰(zhàn)。隨著可編程數(shù)據(jù)平面的加入,SDN網(wǎng)絡(luò)的復(fù)雜性也在增加。為了解決這些問題,采用增量部署的方式至關(guān)重要,即逐步將可編程及固定功能的SDN設(shè)備作為可行選項(xiàng)引入到傳統(tǒng)網(wǎng)絡(luò)中。
Paxos協(xié)議是多個(gè)容錯(cuò)分布式系統(tǒng)和服務(wù)的基礎(chǔ),其在P4上的實(shí)現(xiàn)是一個(gè)關(guān)鍵應(yīng)用場景,有助于塑造一般數(shù)據(jù)平面語言的需求。PISCES是一款源于OpenvSwitch (OVS)的軟件交換機(jī),它借助P4可以自定義原本硬連線的hypervisor交換機(jī)行為。PISCES并未硬編碼綁定任何特定協(xié)議,因此很容易添加新特性。
數(shù)據(jù)平面安全
上世紀(jì)90年代末,主動(dòng)網(wǎng)絡(luò)是首次對可編程網(wǎng)絡(luò)進(jìn)行研究的嘗試。因此,可編程網(wǎng)絡(luò)的概念相對較新。但由于存在安全性問題,這一技術(shù)并未得到廣泛采納。類似地,P4可編程數(shù)據(jù)平面也存在一些安全問題。相較于硬件應(yīng)用,在軟件應(yīng)用中bug更為常見。另外,通常是由經(jīng)驗(yàn)較少且較為輕率的最終用戶而非供應(yīng)商來決定數(shù)據(jù)平面的轉(zhuǎn)發(fā)行為。其次,攻擊者可能會利用可編程性改變設(shè)備的轉(zhuǎn)發(fā)行為以發(fā)起新的攻擊方式。因此,有必要在程序中添加斷言并通過驗(yàn)證來提高可編程數(shù)據(jù)平面的安全性。
為了保護(hù)基于P4的SDN交換機(jī)之間的網(wǎng)絡(luò)鏈路,計(jì)劃部署MACsec——一種廣泛應(yīng)用于保障第2層基礎(chǔ)設(shè)施安全的IEEE標(biāo)準(zhǔn)。MACsec得到了眾多交換機(jī)和路由器制造商的支持,并且相較于IPsec等VPN技術(shù),在這些設(shè)備上的性能影響相對較小。P4-MACsec是一項(xiàng)關(guān)于MACsec數(shù)據(jù)平面實(shí)施的提議。
可重構(gòu)性
從OpenFlow轉(zhuǎn)向P4的是為了靈活且高效地展現(xiàn)交換機(jī)的處理能力,包括可編程的數(shù)據(jù)包解析以及通用調(diào)度和隊(duì)列系統(tǒng)。這超出了數(shù)據(jù)包處理規(guī)則在數(shù)據(jù)平面的建模方式,包括數(shù)據(jù)包如何與特定的處理操作進(jìn)行關(guān)聯(lián)。特別是,在不影響數(shù)據(jù)包處理的情況下,要在運(yùn)行時(shí)改變數(shù)據(jù)平面行為是非常困難的。
數(shù)據(jù)平面漏洞
當(dāng)前的問題還涉及到從意圖層向下映射數(shù)據(jù)平面。面對網(wǎng)絡(luò)環(huán)境的變化,自動(dòng)化調(diào)整網(wǎng)絡(luò)的難度與驗(yàn)證配置調(diào)整的正確性及其預(yù)期效果密切相關(guān)。在這個(gè)過程中,控制流程不僅要能從意圖層向下映射數(shù)據(jù)平面,同時(shí)也要確保數(shù)據(jù)平面的安全運(yùn)行,因?yàn)榭删幊坦δ芸赡軙霛撛诘陌踩┒础?/p>
最新的研究發(fā)現(xiàn)表明,在設(shè)計(jì)和構(gòu)建網(wǎng)絡(luò)時(shí),應(yīng)從一開始就充分考慮安全性和可驗(yàn)證性。這意味著需要采用新的抽象方法,并保證其安全執(zhí)行,因?yàn)楦叩目删幊绦詴黾右肼┒春皖~外攻擊面的風(fēng)險(xiǎn)。
結(jié)論和未來趨勢
本文對可編程數(shù)據(jù)平面進(jìn)行了調(diào)查,并簡要介紹了 P4 語言,以及該領(lǐng)域的研究空白和未來趨勢。本次調(diào)查詳細(xì)考察了從傳統(tǒng)網(wǎng)絡(luò)到SDN,再到利用P4實(shí)現(xiàn)可編程SDN的過渡過程。接下來,文章詳細(xì)討論了網(wǎng)絡(luò)的演變和數(shù)據(jù)平面可編程性的重要性。在研究挑戰(zhàn)部分,我們討論了多種未來發(fā)展趨勢和創(chuàng)新舉措。由此得出結(jié)論,在未來,開源架構(gòu)和數(shù)據(jù)網(wǎng)絡(luò)編程將在網(wǎng)絡(luò)領(lǐng)域占據(jù)主導(dǎo)地位。因此,SDN+P4 將成為未來幾年的理想環(huán)境。
原文鏈接:
https://ieeexplore.ieee.org/document/10130445
-
寄存器
+關(guān)注
關(guān)注
31文章
5290瀏覽量
119783 -
交換機(jī)
+關(guān)注
關(guān)注
20文章
2610瀏覽量
99055 -
sdn
+關(guān)注
關(guān)注
3文章
254瀏覽量
44728 -
可編程網(wǎng)絡(luò)
+關(guān)注
關(guān)注
0文章
7瀏覽量
5203
原文標(biāo)題:P4 還有未來嗎?
文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論