在軟件化時代,SDN正在展開其邊界,各行各業(yè)正專注于將網(wǎng)絡控制置于金字塔頂端 - 從復雜的硬件到軟件應用程序。P4已經(jīng)通過提供低至ASIC的網(wǎng)絡可編程性來控制金字塔的底部(轉發(fā)平面)。近年來,一些概念和協(xié)議也開始統(tǒng)治金字塔的頂端(控制平面),但有了 P4,歷史似乎要改變!
網(wǎng)絡設備控制平面
控制平面是網(wǎng)絡設備的大腦。它具有各種應用程序,可以學習和填充數(shù)據(jù)平面定義的表。在傳統(tǒng)的網(wǎng)絡設備中,用于配置數(shù)據(jù)包控制移動的控制平面或軟件位于同一設備上。因此,對于任何更改,網(wǎng)絡管理員必須通過單獨連接到每個設備來配置交換機。為了增加復雜性,每個芯片供應商都提供了自己的專有接口/API來控制數(shù)據(jù)平面。為了使網(wǎng)絡管理員的生活變得輕松,目標是將網(wǎng)絡設備的控制平面和數(shù)據(jù)平面分開。這催生了SDN(軟件定義網(wǎng)絡)技術。SDN使用軟件應用程序通過集中式控制器對交換機進行編程,從而解耦控制平面和數(shù)據(jù)平面。這使得通過集中式控制器配置網(wǎng)絡變得容易。但是,由于來自不同供應商的不同接口,不可能使用單個控制平面API來控制來自不同芯片供應商的交換機ASIC。在解決這個問題的一段時間內,引入了不同的協(xié)議/標準化來使API開源。
開放流: OpenFlow是ONF(開放網(wǎng)絡基金會)在控制平面和數(shù)據(jù)平面之間的第一個標準開源通信協(xié)議,旨在促進SDN的采用。OpenFlow是SDN網(wǎng)絡的解決方案,它在流量方面為控制器和交換機之間提供了標準接口。流包含以表格形式組織的匹配字段、優(yōu)先級和操作。提供的API是通用的,不依賴于目標,因此適用于任何與OpenFlow兼容的控制平面軟件。
SAI(交換機抽象接口): SAI提供開源標準C API對OCP(開放計算項目)正式接受的網(wǎng)絡芯片數(shù)據(jù)平面進行編程。SAI抽象了底層芯片,因此允許任何相同的控制平面軟件插入任何設備,使SAI目標獨立。
為什么選擇 P4 運行時?
OpenFlow和SAI存在各種限制。兩者都考慮到了固定交換機的設計,這使得它在未來無法擴展到新的協(xié)議。它們與目標無關,但依賴于協(xié)議。添加新協(xié)議需要大量的時間和精力以及社區(qū)參與。SAI 專為控制平面位于交換機內的交換機而設計。兩者都不能使用可編程數(shù)據(jù)平面進行自我擴展。使用P4可編程數(shù)據(jù)平面時,控制平面接口沒有標準。很少有供應商開發(fā)自己的專有工具來自動生成API,這些API可以從P4程序或JSON填充表。但是,對于如何定義這些 API 沒有標準。因此,p4.org 決定成立API工作組,創(chuàng)建獨立于硅的API,用于控制交換機的轉發(fā)平面。P4運行時架構使其獨立于協(xié)議以及底層轉發(fā)交換機。同一 API 可用于控制支持不同協(xié)議的不同交換機。P4 運行時有助于控制任何轉發(fā)平面,無論是固定的、半可編程的還是完全可編程的。P4 運行時可用于任何交換機,無論是本地還是遠程控制平面。它足夠靈活,可以同時支持 OpenFlow API 和 SAI API。
P4運行時的功能
P4 運行時 API 支持兩個主要功能:
管理匹配操作表:通過添加、刪除、修改、顯示匹配操作表中的條目來管理數(shù)據(jù)平面的行為
更新轉發(fā)平面邏輯:使用新的 P4 代碼更新 P4 可編程交換機的轉發(fā)行為
SDN網(wǎng)絡中P4運行時的架構
圖 1:不同設備的 SDN 網(wǎng)絡中的 P4 運行時流
P4 Runtime 的架構使其足夠靈活,適用于本地或遠程控制平面基礎設施,以及固定和可編程網(wǎng)絡設備。
對于本地控制平面,從 P4 編譯器生成的 P4 運行時 API 可以直接用于控制 ASIC,包括基于 ASIC 類型(固定或可編程)的條目編程和表創(chuàng)建和刪除。同樣,對于遠程控制平面,P4 編譯器生成的 P4 運行時 API 可用于通過控制平面控制交換機。P4 編譯器將根據(jù)控制平面的需要生成架構。
對于固定功能開關,可以首先使用 P4 語言來模擬開關的行為,然后可以使用 P4 運行時 API 來控制固定功能開關。運行時 API 可用于在由 P4 語言定義的表中插入/刪除條目,這與實際硬件類似。
如果開關是可編程的,則可以將其擴展到控制所有可編程實體,例如添加新表、插入條目、刪除條目以使用編譯器生成的 P4 運行時 API 在運行時更新轉發(fā)平面。
圖 1 顯示了獨立于轉發(fā)平面的 SDN(遠程控制平面)網(wǎng)絡中的通用 P4 運行時架構。
P4 和 P4 運行時 – SDN 可編程性的新視野
對于可編程網(wǎng)絡設備,P4 運行時通過使用 P4 從上到下編程直到 ASIC 數(shù)據(jù)平面,開啟了真正的 SDN 可編程性。P4 語言可用于描述轉發(fā)管道,P4 運行時可用于控制轉發(fā)和從遠程更新轉發(fā)邏輯運行時。借助 P4,SDN 控制器能夠重新定義表、條目、解析器、匹配操作和數(shù)據(jù)包處理邏輯。從而完全控制網(wǎng)絡。
P4 運行時提供了一種使用可編程和固定功能交換機組合構建網(wǎng)絡的無縫方法。P4 編譯器自動生成填充表所需的 API。P4 運行時使大型網(wǎng)絡編程變得更加容易。VOLANSYS為您的網(wǎng)絡設備提供端到端的解決方案,包括編譯器開發(fā),P4運行時與NOS的集成,添加對新功能/協(xié)議的支持以及完整的測試。
審核編輯:郭婷
-
控制器
+關注
關注
112文章
16037瀏覽量
176692 -
asic
+關注
關注
34文章
1177瀏覽量
120144 -
交換機
+關注
關注
20文章
2600瀏覽量
98893
發(fā)布評論請先 登錄
相關推薦
評論