SONiC(Software for Open Networking in the Cloud,云中開放網(wǎng)絡(luò)軟件)是一個基于 Linux 的開源網(wǎng)絡(luò)操作系統(tǒng) (NOS),旨在為現(xiàn)代網(wǎng)絡(luò)環(huán)境帶來靈活性和效率。與傳統(tǒng)的專有網(wǎng)絡(luò)操作系統(tǒng)相比,SONiC的核心思想是引入開放網(wǎng)絡(luò)原則,即將硬件與軟件解耦,使得網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)可以在各種硬件平臺上運行,從而促進(jìn)了互操作性。SONiC是最受歡迎的網(wǎng)絡(luò)開源項目之一。 SONiC-DASH是SONiC NOS的擴展,全稱為Disaggregated API for SONiC Hosts,簡稱DASH。它是一款開源軟件,旨在利用各種智能網(wǎng)卡(SmartNIC)、智能交換機(SmartSwitch)、數(shù)據(jù)處理單元(DPU)、IPU、加速器和其他網(wǎng)絡(luò)設(shè)備,為云應(yīng)用提供企業(yè)級網(wǎng)絡(luò)性能。
DASH的設(shè)計目標(biāo)是將SONiC擴展到標(biāo)準(zhǔn)功能之外,允許在邊緣或者定制網(wǎng)絡(luò)路徑上使用。通過DASH,管理員能夠利用外部處理元件來卸載CPU并加速各種任務(wù),例如人工智能/機器學(xué)習(xí)、數(shù)據(jù)分析、深度數(shù)據(jù)包檢測、媒體和信號處理、虛擬現(xiàn)實以及科學(xué)和軍事應(yīng)用等。DASH還提供了一個框架,用于編寫這些服務(wù)的行為模型,以及測試用例。 DASH 的主要目標(biāo)是讓可編程技術(shù)足夠具體,以優(yōu)化網(wǎng)絡(luò)性能并充分利用商用硬件技術(shù),從而實現(xiàn)10倍甚至100倍的狀態(tài)連接性能。
SONiC 和 DASH 架構(gòu)
SONiC 是一款專為交換機(包括TOR交換機、spine交換機和邊界leaf交換機)量身定制的網(wǎng)絡(luò)操作系統(tǒng),為網(wǎng)絡(luò)設(shè)備管理提供了強大的框架,實現(xiàn)了網(wǎng)絡(luò)操作的可編程性和自動化。 另一方面,DASH主要運行在智能設(shè)備上,專注于從CPU上卸載處理任務(wù)以提升任務(wù)加速。DASH 利用 SONiC 提供的現(xiàn)有 API 擴展其功能來與基于 SONiC 的網(wǎng)絡(luò)環(huán)境集成。 DASH 建立在 SONiC 的基礎(chǔ)系統(tǒng)架構(gòu)之上。它仍然依賴于 redis-db 作為數(shù)據(jù)和模塊的中心點,這些數(shù)據(jù)和模塊打包到容器中,發(fā)布/訂閱數(shù)據(jù)并與外部環(huán)境進(jìn)行交互。DASH 由 SONiC 模塊組成,并進(jìn)行了一些擴展,可以與現(xiàn)有 SONiC 生態(tài)系統(tǒng)無縫集成。 下圖展示了 DASH 擴展或添加的模塊以及它們之間的交互:
圖 1:SONiC 和 DASH 架構(gòu) 如果我們將 DASH 視為與外部環(huán)境交互的黑盒軟件,則會涉及兩個主要組件用于通信。第一個是北向API,稱為DASH API,它方便SDN控制器對DASH的管理。第二個是南向 API,它是一種擴展的 SAI API(交換機抽象接口 API),提供獨立于供應(yīng)商的機制來控制轉(zhuǎn)發(fā)元件。 DASH擴展的組件:
gNMI容器:負(fù)責(zé)實現(xiàn)gNMI協(xié)議的組件,基于gRPC和Protocol Buffers。它支持使用基于 gNMI 的網(wǎng)絡(luò)管理工具和平臺遠(yuǎn)程管理和配置 SONiC-DASH 設(shè)備。
Redis DB:主要用于存儲實時操作數(shù)據(jù)以及SONiC生態(tài)系統(tǒng)內(nèi)各個組件之間的通信。
orchagent:負(fù)責(zé)將高級配置轉(zhuǎn)換為低級操作的關(guān)鍵組件。Orchagent 抽象了網(wǎng)絡(luò)設(shè)備配置,使 SONiC 能夠通過與 SAI API 接口在各種硬件平臺上無縫工作,SAI API 提供了用于訪問特定于硬件的功能的標(biāo)準(zhǔn)化接口。
交換機抽象接口(SAI)API:提供標(biāo)準(zhǔn)化編程接口,抽象不同底層交換ASIC和硬件平臺的功能。
DASH 配置由 SDN 控制器編排,管理基礎(chǔ)設(shè)施物理層(underlay)之上建立的overlay層。SDN 控制器和 DASH 設(shè)備之間的通信通過托管在新 SONiC-DASH 容器內(nèi)的基于 gRPC 的 gNMI 端點進(jìn)行。在 DASH 容器中,在 gNMI 中建模的 SDN 配置被轉(zhuǎn)換為 Redis DB 中的 DASH_APP_DB 對象。
隨后,交換機狀態(tài)服務(wù) (SWSS) 容器內(nèi)的 SONiC orchagent得到增強,可將這些對象轉(zhuǎn)換和解釋為 ASIC_DB 對象,包括新引入的 DASH 特定 SAI 對象。然后,改進(jìn)的syncd利用供應(yīng)商特定的SAI 庫來配置數(shù)據(jù)平面。
DASH管道
DASH 在傳統(tǒng) SONiC 管理的底層基礎(chǔ)設(shè)施之上建立了overlay服務(wù)。這種overlay服務(wù)或應(yīng)用利用管道作為自適應(yīng)處理單元,允許創(chuàng)建自定義處理邏輯,每個階段都描述了一系列表,表項根據(jù)指定的標(biāo)準(zhǔn)匹配數(shù)據(jù)包并執(zhí)行相應(yīng)的操作。這些管道位于數(shù)據(jù)平面(例如SmartNIC, DPU),支持動態(tài)配置。 此外,還可以對管道進(jìn)行編程,以動態(tài)適應(yīng)不斷變化的網(wǎng)絡(luò)需求。這種靈活性支持定義針對特定數(shù)據(jù)包行為的操作,如丟棄、轉(zhuǎn)發(fā)、修改或保存。例如,入站數(shù)據(jù)包處理管道可以管理發(fā)往虛擬網(wǎng)絡(luò) (VNET) 內(nèi)的虛擬機 (VM) 的流量。
圖2:入站數(shù)據(jù)包處理管道 DASH 是一個相對較新的項目,目前已經(jīng)為云提供了一些初始服務(wù)。 以下是支持的應(yīng)用程序:
VNET 到 VNET - 允許 VNET 中的 VM 到 VM 通信、路由支持、LPM 支持、ACL 支持;
VNET 對等互連 - 連接兩個或多個虛擬網(wǎng)絡(luò);
高可用性 (HA) - 在故障轉(zhuǎn)移的情況下提高可用性;
負(fù)載均衡 - 使用虛擬機之間的直接路徑在端點之間分配傳入網(wǎng)絡(luò)流量以確保高效利用;
服務(wù)隧道和專用鏈路 - 在允許訪問的 VNET 的專用鏈路之間建立連接;
加密網(wǎng)關(guān) - 管理網(wǎng)絡(luò)內(nèi)數(shù)據(jù)流量的加密和解密的服務(wù);
快速路由網(wǎng)關(guān) - 允許客戶建立云服務(wù)的私有和專用連接。
P4和 DASH
P4是一種特定于領(lǐng)域的編程語言,旨在定義交換機和路由器等轉(zhuǎn)發(fā)設(shè)備如何處理網(wǎng)絡(luò)數(shù)據(jù)包。與傳統(tǒng)的網(wǎng)絡(luò)語言不同,P4 專注于提供高水平的抽象來對數(shù)據(jù)平面進(jìn)行編程,讓網(wǎng)工能夠自定義和優(yōu)化數(shù)據(jù)包處理,無需依賴于特定的硬件或協(xié)議。
P4 是協(xié)議無關(guān)的,這意味著它允許用戶定義數(shù)據(jù)包處理的行為,無需綁定到特定的網(wǎng)絡(luò)協(xié)議。在快速發(fā)展的網(wǎng)絡(luò)環(huán)境中,新的協(xié)議和技術(shù)不斷涌現(xiàn),P4 的靈活性顯得尤其有價值。借助 P4,網(wǎng)絡(luò)運營商可以調(diào)整其基礎(chǔ)設(shè)施來支持這些變化,無需進(jìn)行大量硬件升級或更換。
P4 的主要用例之一是SDN環(huán)境。SDN將控制平面與數(shù)據(jù)平面分離,允許網(wǎng)絡(luò)管理員動態(tài)地控制和管理網(wǎng)絡(luò)行為。P4 支持在數(shù)據(jù)平面中對自定義數(shù)據(jù)包處理邏輯進(jìn)行編程,從而促進(jìn)高度靈活和可編程的網(wǎng)絡(luò)架構(gòu)的創(chuàng)建。
DASH 定義了數(shù)據(jù)平面設(shè)備處理數(shù)據(jù)包的方法,主要通過管道來實現(xiàn)。而P4 用于建模和描述 DASH 管道。通過P4,網(wǎng)工可以定義在硬件中執(zhí)行的自定義數(shù)據(jù)包處理邏輯,從而減輕通用 CPU 的工作負(fù)擔(dān)并加快數(shù)據(jù)包處理速度。
P4代碼是數(shù)據(jù)平面行為的最終規(guī)范。具體來說,通過使用P4代碼或由P4編譯器生成的P4Info,可以自動生成DASH SAI頭文件,從而建立P4代碼與相應(yīng)的DASH-SAI API之間的連接。此外,用于測試overlay服務(wù)的SAIThrift代碼也是自動生成的。這種集成突顯了P4作為數(shù)據(jù)平面行為的單一來源的重要性。 需要注意的是,P4用于描述數(shù)據(jù)平面的行為,用于生成頭文件,但數(shù)據(jù)平面本身的實現(xiàn)并不一定要在P4中進(jìn)行。如何實現(xiàn)數(shù)據(jù)平面取決于硬件供應(yīng)商,但必須符合P4中描述的模型。
圖 3:帶有 P4 的 DASH 管道
如前所述,DASH是SONiC的擴展,其代碼庫和API有單獨的存儲庫。盡管有這些單獨的存儲庫,但構(gòu)建過程通過其指定的構(gòu)建環(huán)境(稱為SONiC-buildimage)與SONiC無縫集成。在啟動SONiC構(gòu)建時,DASH代碼會自動包含并編譯,以確保其集成到SONiC生態(tài)系統(tǒng)中。為了確保操作功能的完整性,某些組件必須與DASH一起構(gòu)建。 DASH旨在通過增強硬件編程來實現(xiàn)廣泛的網(wǎng)絡(luò)功能,它借助SONiC的架構(gòu)和關(guān)鍵組件,并遵循SDN方法來實現(xiàn)數(shù)據(jù)平面。盡管DASH仍處于開發(fā)階段,但已經(jīng)與SONiC的主流基線集成。當(dāng)前,硬件供應(yīng)商還需要更多時間來發(fā)布符合DASH標(biāo)準(zhǔn)的設(shè)備。我們看到了這項技術(shù)的巨大潛力,它將成為未來網(wǎng)絡(luò)實施的一個重要組成部分。
審核編輯:黃飛
-
交換機
+關(guān)注
關(guān)注
20文章
2610瀏覽量
99111 -
網(wǎng)絡(luò)設(shè)備
+關(guān)注
關(guān)注
0文章
307瀏覽量
29584 -
Sonics
+關(guān)注
關(guān)注
0文章
2瀏覽量
6201 -
DASH
+關(guān)注
關(guān)注
0文章
8瀏覽量
2674
原文標(biāo)題:SONiC-DASH:網(wǎng)絡(luò)可編程的進(jìn)化之路
文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論