999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于P4的SDN控制—數據平面流規則一致性校驗

2022-12-31 00:00:00夏計強崔鵬帥李子勇蘭巨龍
計算機應用研究 2022年8期

摘要:針對SDN數據平面的軟/硬件故障、錯誤配置等導致的控制平面和數據平面流規則不一致的問題,提出了基于P4的控制—數據平面流規則一致性校驗機制(P4-based consistency verification mechanism for SDN control-data plane,P4CV)。P4CV首先向數據平面發送特定結構的探針,然后各P4交換機將數據平面實際流規則執行信息嵌入到探針,最后P4CV采用基于符號執行的一致性校驗算法,完成對控制平面流規則配置和數據平面遙測信息的一致性校驗。仿真結果表明,P4CV的單路徑校驗時長不受網絡拓撲結構影響,僅與路徑上交換節點數量線性相關。在同等網絡規模和流規則配置的多路徑轉發場景中,P4CV在僅產生約0.06‰帶寬開銷的同時,比現有方案平均減少了約42%的校驗時長。

關鍵詞:軟件定義網絡;P4; 一致性; 帶內網絡遙測

中圖分類號:TP393文獻標志碼:A

文章編號:1001-3695(2022)08-041-2479-05

doi:10.19734/j.issn.1001-3695.2021.12.0694

P4-based rules consistency verification for SDN control-data plane

Xia Jiqiang, Cui Pengshuai, Li Ziyong, Lan Julong

(Institute of Information Technology Research, People’s Liberation Army Strategic Support Force Information Engineering University, Zhengzhou 450000, China)

Abstract:To solve the inconsistency of flow rules between the control plane and data plane caused by SDN data plane software and hardware faults, configuration faults, etc., this paper proposed a P4-based consistency verification mecha-nism for SDN control-data plane (P4CV). P4CV firstly sent probes with a specific structure to the data plane, and then each P4 switch inserted its runtime information of flow rules in the data plane into the probes. Finally, P4CV adopted the consistency-verification algorithm, based on symbolic execution, to compare the configuration from the control plane and telemetry information from the data plane. The simulation results show that the single path verification time of P4CV is not affected by the network topology and is only linearly related to the number of nodes on the path. In a multipath forwarding scenario, with the same network scale and traffic rules configured, P4CV generates only 0.06‰ of bandwidth overhead and reduces the verification time by 42% compared with the existing scheme.

Key words:SDN; P4; consistency; in-band network telemetry

0引言

傳統網絡架構中控制平面與數據平面緊耦合,軟硬件的更新升級相互制約。軟件定義網絡[1](software defined network,SDN)通過將網絡的管理控制邏輯從設備中抽離出來,解耦控制平面和數據平面,構建了一種高效管控的新型網絡體系結構。SDN在設計之初的可編程性主要體現在控制層。之后隨著P4[2]、POF[3]等數據平面領域特定語言(domain specific language,DSL)的出現,SDN實現了線速處理性能的可編程數據平面。網絡開發人員可以利用P4的抽象轉發模型,靈活地設計數據平面的處理邏輯。基于此,數據平面對新協議的部署更加高效,在流量工程、網絡測量等領域中得到了廣泛應用[4,5]。但P4為數據平面帶來可編程性的同時,也加劇了SDN控制平面和數據平面的一致性安全問題,即數據平面的實際轉發行為與控制平面預期的行為不一致。一方面,作為一種數據平面編程語言,P4本身的程序漏洞可能會導致控制—數據平面出現不一致的情況[6];另一方面,當網絡運行過程中出現軟/硬件故障、網絡管理員錯誤配置或者遭到惡意攻擊時,數據平面仍可能出現與控制平面預期行為不一致的安全問題。

在P4等數據平面編程語言出現之前,SDN 控制平面和數據平面流規則一致性問題已經得到了廣泛關注[7~12]。Monocle[7]通過將交換機轉發表邏輯表述為布爾可滿足性問題來快速生成針對特定規則的探針,不僅能夠完成對網絡穩態下已加載流規則的校驗,還能夠跟蹤重配置時更新流規則的加載情況。針對文獻[8]中指出的商用交換機中存在的流規則優先級故障問題,Rulescope[9]進一步提出了更為精確高效的一致性校驗算法。VeriDP[11]通過收集探針的路徑信息并與控制平面的抽象路徑表進行對比,有效地校驗了真實網絡流量的傳輸路徑,但該方案需要預先構建路徑表,增加了控制器的資源消耗。上述基于主動探測的一致性校驗機制,都能夠對控制器已知或已同步的流規則完成校驗,但無法檢測數據平面未知的或錯誤配置的流規則所導致的故障。同時,此類一致性校驗機制是針對基于OpenFlow的SDN流規則校驗場景設計的,不適用于目前的可編程數據平面場景。

針對SDN可編程數據平面流規則一致性校驗場景,近年來研究人員提出了一系列P4程序漏洞檢查方案[13~15]。與傳統的程序分析方法類似,這些方案主要通過對P4源代碼的斷言檢查,實現對P4程序的靜態漏洞分析。顯然,此類方法無法檢測程序編譯后運行時出現的錯誤和導致的不一致問題。因此,可編程數據平面領域的最新研究嘗試圍繞網絡實際運行時的一致性問題開展工作。文獻[16]開創了對 P4 支持的智能網卡的控制—數據平面不一致性的研究,該工作分析了只關注 P4 程序漏洞會對網絡延遲、吞吐量等性能造成嚴重影響。P4RL[17]通過引入基于強化學習的模糊測試,實現了單個P4交換機在運行時的自動化驗證,但該機制不適用于SDN網絡規模的控制—數據平面的一致性校驗。該團隊進一步提出了一種面向P4 SDN的控制—數據平面一致性校驗方法P4Consist[18]。與SDN中數據平面測量的傳統方法類似[7,10],P4Consist需要向網絡注入大量的探針以檢查所有規則或路徑,不僅對網絡正常通信造成影響,還會增加數據平面測量時延,進而使測試結果缺乏實時性。同時,由于P4Consist需要遍歷源目節點間的所有路徑,其校驗時長隨網絡結構的復雜化急劇增長。

所以,如何快速完成對運行時的SDN可編程數據平面場景下的流規則一致性校驗,成為可編程數據平面領域亟待解決的安全難題。對此,本文提出了基于P4的SDN控制—數據平面流規則一致性校驗機制(P4-based rules consistency verification mechanism for SDN control-data plane,P4CV),并基于BMv2軟件交換機[19]完成了原型系統的開發和評估;提出了基于P4的SDN控制—數據平面流規則一致性校驗機制,完成了對運行時的SDN可編程數據平面轉發行為的快速一致性校驗;提出了基于P4的網絡遙測機制和基于符號執行的一致性校驗算法,完成了對可編程數據平面流規則執行信息的快速收集和高效準確的一致性校驗;搭建了仿真模擬系統,實驗結果顯示,在單路徑校驗場景中,P4CV校驗時長不受網絡拓撲結構復雜性影響,僅與校驗路徑上的交換節點數量線性相關。在多路徑校驗場景中,P4CV在僅產生約0.06‰帶寬開銷的情況下,比P4Consist平均減少了約42%的校驗時長。

1相關背景和研究動機

1.1P4抽象轉發模型

不同于SDN的傳統OpenFlow模型[1],P4抽象轉發模型設計了可編程的解析器和包處理動作,支持自定義的協議類型,實現了對數據報文的靈活處理。在文獻[2]中給出的P4抽象轉發模型中,交換機轉發數據包的過程主要依賴可編程的數據包解析器、多級匹配—動作流水線和緩沖區三部分組件。

a)解析器。在P4轉發模型中,解析器首先對數據包進行處理,將包頭從數據包中提取出來,與余下的載荷分開緩存。管理員可以定制數據包頭結構和解析流程,解析流程會被編譯器編譯為數據包頭解析圖并配置到解析器上,被提取的包頭部分按照解析圖進行解析。

b)多級流水線。經解析器解析后的數據包頭部會經過多級匹配—動作表,這些匹配—動作表可以順序、并行或者兩者結合的方式執行,以流水線的形式組織起來,分為入口流水線和出口流水線。入口流水線用于確定數據包的輸出端口和隊列,出口流水線則負責修改數據包頭部的信息。從邏輯上看,P4的多級流水線是由一系列匹配—動作表(match-action table)組成的一個有向無環圖。加載P4程序的底層平臺對數據包的處理過程嚴格按照有向無環圖的邏輯進行。

c)緩沖區。緩沖區用于臨時存儲已解析但尚未進入流水線處理階段的數據包頭部,以及解析后余下的載荷部分。

從P4程序的工作流程來看,P4抽象轉發模型包括配置階段和運行階段。配置階段主要是設計解析器解析流程,設置匹配—動作表的執行順序,并指定每個匹配—動作表處理的頭部字段。這些配置決定了交換機支持哪些協議以及交換機如何處理數據包。運行階段可以向配置階段指定的匹配—動作表中增刪條目,并在特定時間調用配置階段生成的運行時控制接口(P4Runtime),將匹配規則下發至數據平面,以便將配置策略作用于數據報文。

1.2研究動機

在SDN運行過程中,網絡內部和外界的種種擾動都可能引起可編程數據平面的不一致轉發行為(如硬件故障、惡意攻擊等)。圖1給出了一個典型的SDN可編程數據平面不一致轉發行為的示例。控制平面通過P4Runtime接口為數據平面配置了一條轉發路徑S1→S3→S2→S4(圖中實線所示),以及相應的P4處理邏輯和流規則。網絡管理人員在交換機S3中配置了防火墻規則,以保護下游的服務器資源。如果交換機S1受到惡意攻擊(或未知的硬件故障等)使流規則被竄改,致使流量的實際轉發路徑轉為S1→S2→S4(圖中虛線所示)。這會導致流量繞過交換機S3中的防火墻,進而可能對下游的服務器資源造成損害。

此外,流規則優先級錯誤[8,20]同樣會導致類似的不一致轉發行為,例如PicOS 2.1.3中設定了交換機在硬件表滿時用軟件緩存流表。對于一組轉發路徑重疊的流規則r1(高優先級)和r2(低優先級),如果r1緩存在交換軟件中而r2存儲在硬件表中,則流量會違背流規則的優先級,執行r2的匹配—動作表中的指定動作。類似地,HP 5406zl 商用交換芯片不支持流規則優先級,對數據報文的處理始終按照最新的流規則而忽略優先級。這些情況會導致網絡管理人員開發的可編程數據平面處理邏輯無法得到有效和一致地執行。

2P4CV設計

2.1總體框架

由于上述可編程數據平面的不一致轉發行為是在網絡運行時產生,所以控制平面無法通過針對P4程序的靜態分析方法來獲取這些危及網絡安全的錯誤配置。對此,本文提出了面向可編程數據平面的一致性校驗方法P4CV。

P4CV工作流程如圖2所示。

首先,由流量生成器向網絡數據平面輸入探針流,為降低對網絡帶寬的影響,探針由簡單的五元組信息(即源/目IP地址、源/目MAC地址及傳輸層協議)和必要的源路由端口序列構成。然后,探針流依據數據平面流規則配置和指定的源路由端口序列到達目的節點,途中經過的每一個交換機都將五元組匹配的流規則信息添加到探針中。之后,當探針流到達目的節點時,P4CV采用現有的sFlow[21]方法對探針流進行采樣。探針收集的遙測數據(包括實際的轉發路徑和流規則信息)被解析出來并交付給一致性校驗模塊。最后,一致性校驗模塊依據數據平面收集的遙測數據和控制平面返回的可達路徑圖,通過采用對轉發路徑分析和符號執行的方式,完成對數據平面轉發行為一致性的校驗。

P4CV由以下四個功能模塊構成:

a)數據平面模塊。設計實現基于P4的數據包處理邏輯,完成對網絡流量的轉發,并將遙測數據壓入探針。

b)控制平面模塊。對給定的探針和源目節點,依據網絡拓撲和配置信息,返回可達路徑圖。

c)一致性校驗模塊。依據可達路徑圖和遙測數據,完成對數據平面轉發行為一致性的校驗。

d)輸入/輸出模塊。 P4CV的輸入為一個探針流量生成器,輸出為轉發路徑上所有的不一致信息(或數據平面不存在不一致轉發行為)。

2.2數據平面模塊

為減少遙測過程對網絡正常通信造成的影響,同時提高流規則一致性校驗的準確性,本文提出了一種高效的基于P4的網絡遙測機制。傳統的帶內網絡遙測(INT)[22]是一種被動遙測技術,采用將遙測指令和數據封裝到正常數據分組中的方式,探測路徑上特定的遙測數據。這樣的方式降低了數據分組的有效載荷比,增加了數據平面開銷,對網絡中的正常數據通信造成影響。對此,本文通過采用特定數量和結構的探針來收集正常數據分組轉發過程匹配的流規則ID、出入端口號等流規則執行信息,在簡化探針結構、降低數據平面開銷的同時,實現了對一致性校驗所需的必要信息的收集。

在基于P4的可編程數據平面中,數據包的解析過程被抽象為一個有限狀態機(finite state machine,FSM),每個狀態節點代表數據包頭的一個字段,邊代表狀態間的切換。解析器按序遍歷數據包頭,并在執行過程中提取各字段值,由預定義的匹配—動作表進行處理。P4CV對探針的解析過程由圖3中的解析圖(parser graph)表示。從圖中可以看出,P4CV數據平面中各交換節點對網絡中數據分組的處理包含兩種邏輯:

a)對正常數據分組的處理。與傳統網絡中對IP數據包的處理流程一致(圖3中虛線),P4CV依據三層路由或二層交換轉發正常的數據分組,以保證網絡正常的通信業務。

b)對探針的處理。如圖3中實線所示,P4CV依據探針包頭中的源路由端口序列(SrcRoute字段),從指定的出端口轉發探針。同時在轉發探針之前,將遙測數據嵌入探針包中。這些數據被記錄在SW_Trace字段,包括當前交換機ID、探針包入端口號和探針依據三層路由或二層交換進行轉發時匹配的流規則ID以及相應的出端口號,即真實數據流轉發時流規則執行情況,具體格式將在2.5節中詳細闡述。

2.3控制平面模塊

在P4CV中,控制平面主要提供一致性校驗的對照數據(包括轉發路徑和流規則),它將網絡配置抽象為一個三元組結構G={V,E,R}。其中,V表示網絡中的所有節點,E表示V中節點間的有向邊,R表示轉發規則。對于G中的一條有向邊(s, t),R(s, t)表示節點s中存在s→t的轉發規則。對于給定的探針和源目節點,控制平面模塊依據網絡拓撲和流規則配置信息,將三元組結構的源目交換節點間的可達路徑圖交付給一致性校驗模塊以完成最終的校驗工作。

此外,P4中的控制平面下發給數據平面的流規則存儲在相應的配置文件中(通常為JSON格式),各交換節點對應于彼此間相互獨立的配置文件。這些文件包含各交換節點對應的所有匹配—動作表(即轉發規則)的名稱、參數等信息。控制平面模塊負責解析其存儲的交換機配置文件信息。當一致性校驗模塊從數據平面接收到探針(五元組流)時,由控制平面解析配置文件信息,解析結果轉存為一個字典,其中鍵是交換機ID,值是該交換機的JSON配置文件中所有可用規則的一個列表。最后由一致性校驗模塊以符號執行的方式,對控制平面解析后的配置信息和數據平面遙測數據進行對比,以檢測控制—數據平面的不一致性。

本文通過對控制平面和數據平面采用模塊化設計,延續了SDN中將控制平面與數據平面解耦的基本準則。因此,控制平面如何管理數據平面各網絡設備相關規則的方式是設備無關的。實際上,基于JSON格式的配置文件是特定于本文實驗采用的軟件交換機模型(BMv2)[19],而本文所提一致性校驗方法是通用的。如果控制平面使用其他文件格式來存儲轉發規則,只需要調整控制平面模塊中的解析方式即可。

2.4一致性校驗模塊

一致性校驗模塊負責對比來自數據平面的遙測數據和控制平面的配置信息,以完成對數據平面轉發行為一致性的校驗。一致性校驗模塊由轉發路徑分析和符號執行兩部分功能組成。

如圖2所示,當收到數據平面遙測數據時,一致性校驗模塊向控制平面模塊發送探針信息并獲取對應的可達路徑圖。發送的探針信息包括探針包結構和給定的源目節點,其格式為[packet,src,dst]。轉發路徑分析功能模塊采用DFS搜索算法,以src為起點遍歷可達路徑圖,獲取(src,dst)間所有符合網絡配置的路徑,進而判斷探針遙測路徑是否為給定源目節點間符合配置的轉發路徑。同時,為加快遍歷過程,搜索算法采用剪枝DFS算法(depth為探針轉發路徑的長度)。

為提高P4CV校驗結果的準確性,一致性校驗模塊在完成對轉發路徑的校驗后,還需要對轉發過程匹配的流規則進行校驗。符號執行功能模塊根據探針包五元組信息生成一個具有相同報頭的符號包(symbolic packet,SP),然后沿探針轉發路徑逐跳模擬該SP的轉發過程。對SP的模擬轉發過程采用上述布爾函數實現,已在2.2節中詳細闡述。對轉發路徑圖中的一條有向邊(u, v),如果節點u中存在轉發規則r(u, v)且與控制平面流規則一致,則將節點u標記為TRUE并更新SP。

算法1一致性校驗算法(符號執行)

輸入:符號包SP,校驗路徑path_spec,流規則配置信息Rules。

輸出:校驗結果PATHS_CHECK,不一致的交換節點信息Error_Report。

1. for switch∈path_spec do

2.if (last switch) then

3.for rule∈Rules do

4.if check (SP, rule) == TRUE then

5. PATHS_CHECK ← TRUE//該路徑不存在一致性問題

6.else if (last rule) then

7. SWITCH_CHECK ← FALSE

8. PATHS_CHECK ← FALSE//不一致路徑

9. Error_Report

10. else

11.for rule∈Rules do

12.if check (SP, rule) == TRUE then

13. SWITCH_CHECK ← TRUE

14. Go to next switch//繼續校驗下一節點

15.else if (last rule) then

16. SWITCH_CHECK ← FALSE

17. PATHS_CHECK ← FALSE//不一致路徑

18. Error_Report

19. Go to next switch//繼續校驗下一節點

此外,為了模擬數據包在交換機中實際的查表轉發行為,符號執行采用順序查表的方式(不考慮流表優先級的情況)。同時,為保證校驗結果的準確性,P4CV對流規則信息的校驗包括目的IP、出/入端口號、流規則ID等。如果流規則匹配,則該交換機被標記為TRUE,并更新SP中各字段信息,之后繼續校驗下一節點;如果流規則匹配失敗,則該節點和相應轉發路徑被標記為FALSE,輸出故障信息之后,同樣繼續校驗下一節點,以檢測該路徑上其他交換節點是否存在流規則不一致錯誤。

2.5輸入/輸出模塊

本節將介紹P4CV的輸入/輸出模塊。

1)輸入模塊

P4CV采用INT[22]的方式來獲取數據平面實際的轉發行為信息,需要向網絡中輸入探針流,因此,本文方案的輸入模塊即為探針流量生成器。為了避免探針流占用過多的鏈路帶寬,每個探針僅包含基本的五元組信息和必要的源路由端口序列,探針包格式如圖4所示。其中,探針包的轉發路徑由給定的源路由端口序列確定(即指定探針在各交換節點的出端口),五元組信息則用于確定真實數據流依據三層路由或二層交換轉發時所匹配的流規則信息,各信息字段設置如下:

a)SrcRoute(n Byte)。源路由端口序列,以棧結構存儲探針在各交換節點轉發時的出端口(7 bit),以及相應的棧底標志位bos(1 bit),占n Byte(n≤N,N為路徑上交換節點數量)。

b)IPOption_INT(4 Byte)。IP可選字段的遙測數據標志字段,同時記錄簡要的遙測信息。

c)SW_Trace(4 Byte)。記錄轉發過程中收集的流規則信息,包括節點ID、流規則ID和出入端口號等。

2)輸出模塊

本文方案在一致性校驗過程中,會逐個對比探針經過的每一臺交換機,并標記出現流規則不一致的交換機。在一致性校驗模塊完成一致性校驗工作后,將輸出每條轉發路徑的校驗結果。若其中某些路徑存在不一致的情況,則同時輸出該路徑相應故障節點信息(包含節點ID、流規則信息等)。此外,本文的一致性校驗算法在發現路徑上不一致交換節點時,仍會繼續校驗路徑下游其他交換節點。因此在給定路徑存在不一致情況時,會輸出該路徑所有的故障節點信息。

3實驗評估

3.1實驗設置

為驗證本文提出的可編程數據平面一致性校驗機制的可行性和有效性,本文設置了兩組實驗:如圖5所示的單路徑校驗場景和如圖6所示的多路徑校驗場景。其中,第一組實驗以圖5(a)拓撲的實驗結果作為單路徑校驗場景的基準值,第二組實驗采用目前數據中心廣泛部署的胖樹拓撲(fat-tree)。每組實驗以10次實驗結果的平均值作為最終結果。

實驗環境和參數設置如下:實驗選用BMv2軟件交換機[19]構建網絡拓撲,在虛擬機中的Mininet[23]仿真器上進行測試。虛擬機配置為Ubuntu 18.04-LTS操作系統,搭載Intel Core i7-9700 3.00 GHz處理器,8 GB內存。在單次實驗中,分別給各網絡交換節點配置了相同數量的轉發規則(15K,30K,60K)。為保證校驗結果的實時性,同時減小探針流發送時延,源節點探針發送速率設定為100 pps。此外,實驗中錯誤配置的注入采用與圖1中示例相同的方式,即通過可編程交換機的命令行配置接口修改其中的流規則。這些錯誤配置隨機地分布在轉發路徑上的各節點中。

3.2單路徑校驗

為了評估本文方案在單路徑場景下的一致性校驗性能,搭建了如圖5所示的網絡拓撲。圖5(a)中,S1作為源節點,S3、S5、S7、S9依次作為目的節點。首先由源節點將給定單條路徑對應的源路由端口序列壓入探針頭部(格式如圖4所示),然后周期性地發送一組探針,目的節點收到探針后進行采樣、解析并完成一致性校驗。從探針發出到P4CV完成一致性校驗的時間記為完成單條路徑校驗的總時長T, 校驗過程中的符號執行時長記為T_se。從圖7中實驗結果可以看出,單條路徑符號執行時間和校驗總時長都與該路徑上交換節點的數量線性相關。由于符號執行采用順序查表的方式,且每臺交換機內配置了相同數量的流規則,所以符號執行時長以及配置文件解析時延均與路徑上交換機數量線性相關。同時,由于探針遙測時間為微秒級(以1 Gbps鏈路計算),可忽略不計,所以校驗總時長同樣與路徑交換機數量線性相關。從圖7(a)中可以看出,當校驗路徑上的節點不超過8個、單個節點流規則數量為15K時,P4CV能夠在30 s內完成對所有錯誤配置的精確定位,校驗結果具有較強的實時性和可靠性,從而保證了校驗結果的準確性。

此外,為進一步驗證P4CV中控制—數據平面一致性校驗時長僅與路徑上交換節點數量線性相關,而與網絡拓撲結構無關,本文同樣在圖5(b)的網絡拓撲中進行了單路徑一致性校驗。從表1的實驗結果可以看出,在轉發路徑上交換節點數量相同的情況下,P4CV在不同網絡拓撲中的單路徑校驗時長基本相等,誤差范圍不超過3%。

3.3多路徑校驗

數據中心網絡是可編程數據平面目前應用最廣泛的網絡場景。因此,本文實驗搭建了如圖6所示的數據中心網絡的胖樹拓撲(pod=4),以驗證本文提出的可編程數據平面一致性校驗機制在實際部署中的可行性和有效性。該拓撲由核心層、匯聚層和邊緣層的各交換節點構成,包括四個核心節點、八個匯聚節點和八個邊緣節點,每個邊緣節點連接兩臺服務器。在經過剪枝DFS算法計算后(depth=7),該拓撲中任意一對不同pod下的邊緣交換節點間存在20條不同的轉發路徑。

如圖6所示,實驗選取pod1和pod3中的兩臺服務器分別作為探針的發送和接收節點。圖中給出了兩節點間的一條轉發路徑(圖中虛線所示)。每次實驗通過bash腳本在源目節點間的n條轉發路徑中注入20個錯誤配置(2≤n≤20),并記錄檢測到每個錯誤配置所需要的時間。

圖8給出了實驗中P4CV和P4Consist兩種校驗方法的錯誤配置檢測時間的累積分布函數(cumulative distribution function,CDF)。從圖中可以看出,兩者均能夠完成對網絡中所有錯誤配置的檢測,但P4CV始終比P4Consist先檢測到各路徑上的錯誤配置。通過引入源路由轉發機制,P4CV加快了探針流對轉發路徑的遍歷過程。同時,P4CV的一致性校驗算法在發現路徑中存在錯誤配置時,仍繼續校驗轉發路徑上的其他下游節點。因此,單個探針足以完成對單條路徑的一致性校驗工作,極大地縮短了探針流對錯誤配置的探測時間。此外,從圖8的實驗結果可以看出,兩者校驗總時延的差值隨節點中流規則數量的增多而擴大。在各交換節點中流規則數量分別為15K、30K、60K時,P4Consist分別需要7 min、18 min和36 min以完成對所有錯誤配置(20個)的檢測。而對于同等規模的網絡配置,P4CV分別只需要4 min、10 min和20 min的檢測時間,檢測效率平均提高了42%。

3.4數據平面開銷

不同于傳統方案依靠探針丟包率、延遲等指標的校驗方式,本文方案數據平面采用基于P4的網絡遙測機制收集數據平面的實際轉發行為信息。由于源路由機制明確了遙測路徑,單個探針足以收集單條路徑的流規則信息。探針的格式如圖4所示,單個探針總長度最長為46+5N Byte(N為路徑上交換機個數)。以圖6中的四層胖樹拓撲為例(N=7),探針長度最長為84 Byte,探針流以100 pps的速率注入網絡,對1 Gbps鏈路帶寬最高僅產生約0.06‰的帶寬消耗。

4結束語

本文針對SDN中控制平面和數據平面流規則不一致問題,提出了基于P4的SDN控制—數據平面流規則一致性校驗機制P4CV。P4CV采用了基于P4的網絡遙測機制,充分發揮了可編程數據平面包處理過程靈活可定義的優勢,進而完成了對數據平面流規則執行信息的快速收集。同時,本文提出了基于符號執行的一致性校驗算法,完成了對給定源目交換節點間單路徑和多路徑轉發場景的流規則一致性校驗工作。仿真結果表明,與現有的流規則一致性校驗機制相比,P4CV的單路徑校驗時長僅與路徑上交換節點數量線性相關,而不受網絡拓撲結構變化影響。同時對于多路徑轉發場景的流規則一致性校驗,P4CV在進一步降低數據平面開銷的同時,大幅提高了校驗效率。此外,本文所提方案面向基于P4的SDN網絡場景設計,其核心校驗模型能夠在所有支持P4編程的交換設備中實現快速部署,具有良好的可擴展性。后續工作將繼續優化校驗算法,進一步降低校驗時長。

參考文獻:

[1]McKeown N, Anderson T, Balakrishnan H, et al. OpenFlow: enabling innovation in campus networks [J]. ACM SIGCOMM Compu-ter Communication Review, 2008, 38(2): 69-74.

[2]Bosshart P, Daly D, Izzard M, et al. P4: programming protocol-independent packet processors [J]. ACM SIGCOMM Computer Communication Review, 2013, 44(3): 87-95.

[3]Song Haoyu. Protocol-oblivious forwarding: unleash the power of SDN through a future-proof forwarding plane [C]// Proc of the 2nd ACM SIGCOMM Workshop on Hot Topics in Software Defined Networking. New York: ACM Press, 2013: 127-132.

[4]Hauser F, Hberle M, Merling D, et al. A survey on data plane programming with P4: fundamentals, advances, and applied research [EB/OL]. (2021-08-04). http://doi.org/10.48550/arxiv.2101.10632.

[5]林耘森簫, 畢軍, 周禹, 等. 基于P4的可編程數據平面研究及其應用 [J]. 計算機學報, 2019, 42(11): 2539-2560. (Lin Yunsenxiao, Bi Jun, Zhou Yu, et al. Researches and applications of programmable data plane based on P4 [J]. Chinese Journal of Computers, 2019, 42(11): 2539-2560.)

[6]Dumitru M V, Dumitrescu D, Raiciu C. Can we exploit buggy P4 programs? [C]// Proc of Symposium on SDN Research. New York: ACM Press, 2020: 62-68.

[7]Pereíni P, Kuz'niar M, Kostic' D. Monocle: dynamic, fine-grained data plane monitoring [C]// Proc of the 11th ACM Conference on Emerging Networking Experiments and Technologies. New York: ACM Press, 2015: 1-13.

[8]Kuz'niar M, Pereíni P, Kostic' D. What you need to know about SDN flow tables [C]// Proc of International Conference on Passive and Active Network Measurement. Berlin: Springer, 2015: 347-359.

[9]Wen Xitao, Bu Kai, Yang Bo, et al. Rulescope: inspecting forwar-ding faults for software-defined networking [J]. IEEE/ACM Trans on Networking, 2017, 25(4): 2347-2360.

[10]Zhao Yu, Wang Huazhe, Lin Xin, et al. Pronto: efficient test packet generation for dynamic network data planes [C]// Proc of the 37th IEEE International Conference on Distributed Computing Systems. Washington DC: IEEE Computer Society, 2017: 13-22.

[11]Zhang Peng, Li Hao, Hu Chengchen, et al. Mind the gap: monitoring the control-data plane consistency in software defined networks [C]// Proc of the 12th International on Conference on Emerging Networking Experiments and Technologies. New York: Association for Computing Machinery, 2016: 19-33.

[12]趙會, 呂光宏, 楊洋, 等. SDN故障分析研究綜述 [J]. 計算機應用研究, 2020, 37(10):2895-2901. (Zhao Hui, Lyu Guanghong, Yang Yang, et al. SDN fault analysis research [J]. Application Research of Computers, 2020, 37(10) :2895-2901.)

[13]Liu J, Hallahan W, Schlesinger C, et al. P4v: practical verification for programmable data planes [C]// Proc of Conference of the ACM Special Interest Group on Data Communication. New York: ACM Press, 2018: 490-503.

[14]Freire L, Neves M, Leal L, et al. Uncovering bugs in P4 programs with assertion-based verification [C]// Proc of Symposium on SDN Research. New York: ACM Press, 2018: 1-7.

[15]Stoenescu R, Dumitrescu D, Popovici M, et al. Debugging P4 programs with vera [C]// Proc of Conference of the ACM Special Interest Group on Data Communication. New York: ACM Press, 2018: 518-532.

[16]Gray N, Grigorjew A, Hosssfeld T, et al. Highlighting the gap between expected and actual behavior in P4-enabled networks [C]// Proc of IFIP/IEEE Symposium on Integrated Network and Service Management. Piscataway, NJ: IEEE Press, 2019: 731-732.

[17]Shukla A, Hudemann K N, Hecker A, et al. Runtime verification of P4 switches with reinforcement learning [C]// Proc of Workshop on Network Meets AI amp; ML. New York: ACM Press, 2019: 1-7.

[18]Shukla A, Fathalli S, Zinner T, et al. P4Consist: toward consistent P4 SDNs [J]. IEEE Journal on Selected Areas in Communications, 2020, 38(7): 1293-1307.

[19]Behavioral Model Repository. P4 language consortium [EB/OL]. (2021-10-11). https://github. com/p4lang/behavioral-model.

[20]Zhang Peng, Zhang Cheng, Hu Chengchen. Fast data plane testing for software-defined networks with RuleChecker [J]. IEEE/ACM Trans on Networking, 2018, 27(1): 173-186.

[21]Phaal P, Panchen S, McKee N. RFC3176, InMon corporation’s sFlow: a method for monitoring traffic in switched and routed networks [S].United States:RFC Editor,2001.

[22]Zhu Yibo, Kang Nanxi, Cao Jiaxin, et al. Packet-level telemetry in large datacenter networks [C]// Proc of ACM Conference on Special Interest Group on Data Communication. New York: ACM Press, 2015: 479-491.

[23]Pal C, Veena S, Rustagi R P, et al. Implementation of simplified custom topology framework in Mininet [C]// Proc of Asia-Pacific Conference on Computer Aided System Engineering. Piscataway, NJ: IEEE Press, 2014: 48-53.

收稿日期:2021-12-13;修回日期:2022-02-07基金項目:國家重點研發計劃項目;國家自然科學基金資助項目

作者簡介:夏計強(1996-),男,安徽宿州人,碩士研究生,主要研究方向為新型網絡體系結構、可編程數據平面;崔鵬帥(1990-),男(通信作者),河南安陽人,助理研究員,主要研究方向為新型網絡體系結構、可編程數據平面(mainblack@126.com);李子勇(1995-),男,安徽蚌埠人,博士研究生,主要研究方向為軟件定義網絡內生安全架構;蘭巨龍(1962-),男,河北人,教授,博導,主要研究方向為新一代信息網絡關鍵理論與技術、信息網絡安全.

主站蜘蛛池模板: 思思热精品在线8| 九九九精品视频| 少妇高潮惨叫久久久久久| 国产乱子精品一区二区在线观看| 亚洲品质国产精品无码| 精品国产Ⅴ无码大片在线观看81| 天天操天天噜| 国产成人高清精品免费| 极品国产在线| 欧美一区二区丝袜高跟鞋| av尤物免费在线观看| 亚洲高清无在码在线无弹窗| 伊人久久久久久久| 久久窝窝国产精品午夜看片| 国产后式a一视频| 波多野结衣AV无码久久一区| 国产在线观看91精品| 久久黄色免费电影| 免费国产在线精品一区| 狠狠色狠狠综合久久| 乱人伦视频中文字幕在线| 91在线一9|永久视频在线| 色吊丝av中文字幕| 激情网址在线观看| 亚洲看片网| 国产又粗又猛又爽| 久久精品无码国产一区二区三区| 久久综合五月| 9966国产精品视频| 九九九国产| 亚洲一级毛片在线观播放| 色哟哟国产成人精品| 麻豆精品在线视频| 麻豆精选在线| 国产福利小视频高清在线观看| 久久久噜噜噜久久中文字幕色伊伊 | 天堂岛国av无码免费无禁网站| 好紧太爽了视频免费无码| 91探花国产综合在线精品| 国产精品v欧美| 久久人妻xunleige无码| 亚洲动漫h| 91免费精品国偷自产在线在线| 午夜福利在线观看成人| 中美日韩在线网免费毛片视频| 99视频免费观看| 国产色伊人| 免费女人18毛片a级毛片视频| 99久久精品免费视频| 亚洲天堂.com| m男亚洲一区中文字幕| 国产二级毛片| 国产在线视频自拍| 国产精品视频猛进猛出| 狠狠色噜噜狠狠狠狠奇米777| 欧美日韩免费观看| 国产第二十一页| 久热这里只有精品6| 国产成人综合亚洲欧洲色就色| 97国产在线播放| 国产中文一区二区苍井空| 国产丝袜无码一区二区视频| 亚洲视频免| 日韩二区三区无| 亚洲中字无码AV电影在线观看| 欧美日韩一区二区三| 成人在线观看不卡| 男人天堂伊人网| 国产精品yjizz视频网一二区| 亚洲有码在线播放| 欧美精品影院| 精品伊人久久久香线蕉| 午夜人性色福利无码视频在线观看 | 日韩美女福利视频| 国产欧美日韩视频怡春院| 色亚洲成人| 97精品伊人久久大香线蕉| 无码精品福利一区二区三区| 欧美一级在线| a毛片在线免费观看| 99伊人精品| 亚洲成人网在线播放|