P4可程式設計裝置能幹啥

SDN,也就是軟體定義網路,強調轉控分離,極大地提升了網路的靈活性。網路的資料面或轉發面承擔著線速流量轉發的艱鉅任務,一直以來採用ASIC交換晶片居多,所以SDN給網路帶來的靈活性,更多的是在控制面做文章,資料面還是強依賴廠家的ASIC晶片能力和SDK開放的API能力。

P4可程式設計裝置的到來,似乎要給資料面或轉發面不可程式設計這段歷史畫上一個句號。下面這幅對比圖,可謂一圖勝千言,讀者自己體會。

P4可程式設計裝置能幹啥

資料面可程式設計,為網路創新提供了一片沃土;P4語言,為在這片沃土上耕作(創新)提供了易用的農具。這樣一來,在這片沃土上碩果累累也就合乎情理,意料之中。下面這幅圖對學術界的成果進行了一個很好的總結,

包括INT、QoS、擁塞控制、多播、負載均衡、加速計算、聚合、網路測量、安全、測試等領域。

需要這篇文獻的讀者加微信IEEE2000留言文獻獲取。

P4可程式設計裝置能幹啥

但是學術界的研究要真正落地,還需要考慮很多其他因素,如可運維性、佔用資源情況、多租戶共享支援、異常場景處理、平滑演進等等。

要體驗新事物、嚐嚐新甜頭,克服一些挑戰也不是不可以。

工業界使用P4可程式設計交換機的場景目前還不算多,主要集中在Overlay分流分發、INT網路測量、無線回傳裝置裝置白盒化等領域,但星星之火,可以燎原。學術界的碩果轉化為工業界的碩果,以不是完全沒有可能。

事實上,一些前衛的企業,已經嚐到了資料面可程式設計帶來的甜頭。比如:

1、Ucloud-一致性雜湊閘道器

NAT64 Access 是 Ucloud 基於Intel 可程式設計晶片 Tofino 設計的一致性雜湊閘道器,以旁掛的方式連線物理交換機,透過Maglev一致性雜湊演算法將去往 NAT64 伺服器叢集的流量進行分發,同時實現限速與DDoS保護功能。

NAT64 Access 與物理交換機組成三層網路,透過BGP釋出地址,物理交換機將網路流量分發到多個NAT64 Access,實現NAT64 Access叢集的負載均衡與高可用。

NAT64 Access 與 NAT64伺服器組成二層網路,伺服器透過BGP向NAT64 Access釋出VIP,NAT64 Access獲得VIP對應的下一跳資訊(MAC地址),透過Maglev演算法將流量分發到叢集的不同伺服器。每個NAT64伺服器配置不同的源IPv4地址,實現返程流量的正確到達。

P4可程式設計裝置能幹啥

NAT64 Access 透過資料面的查詢表與控制面Maglev Hash Engine實現Maglev雜湊演算法。同時,資料面對每個EIP針對TCP SYN報文進行入向和出向PPS限速(目前單個EIP的SYN報文的速率限制在50000,超過50000時會進行丟包,引數可調)實現DDoS安全防護。

NAT64 Access 在Tofino 資料面,主要使用了pipeline串聯、減少表依賴/合表、ingress/egress同時使用等最佳化操作對Tofino表項進行最佳化,以應對 Tofino SRAM 受限的問題。

2、阿里雲-流量分發閘道器

P4可程式設計裝置能幹啥

XGW 是阿里雲基於Intel 可程式設計晶片 Tofino 設計的流量分發閘道器,如上圖所示,其負責公網、專線、跨Region之間

流量匯聚與分發

,支援IPv6。

典型產品有:EIP和共享頻寬限制、專線(比如天貓雙11或某大客戶數10Tbps專線上雲流量)、CEN等。專線的場景示意如下:

P4可程式設計裝置能幹啥

XGW 裝置類似於2U伺服器,主要部件如下:1)Intel Tofino 晶片:負責大流量轉發;2) 網絡卡晶片:負責打表項轉發;3)CPU:業務編排、智慧排程。

另外,XGW在資料面實現了QoS能力,當客戶的流量超出購買頻寬時,丟棄優先順序低的報文,保證高優先順序的報文透過,QoS 限速示意圖如下:

P4可程式設計裝置能幹啥

XGW 在Tofino 資料面,主要使用了pipeline串聯、合表等最佳化操作對Tofino表項進行最佳化,以應對 Tofino SRAM 受限的問題。

更多 XGW 的實現細節,見 SIGCOMM 2021: sailfish: accelerating cloud-scale multi-tenant multi-service gateways with programmable switches

3、京東雲-ToR、匯聚交換機流量視覺化

京東雲將部分資料中心網路的ToR、匯聚交換機(如下圖所示的T0、T1)替換為了P4白盒交換機。

同時,在邊緣雲場景,也對白盒交換機進行了一定規模的部署。

P4可程式設計裝置能幹啥

京東雲使用P4可程式設計裝置實現網路的視覺化方案。由於現階段無法實現傳統裝置的全P4可程式設計化,京東雲採用混合部署方案(部分P4可程式設計裝置、部分傳統裝置),使用Postcards模式部署INT,實現實時的網路丟包探測、擁塞、時延抖動以及路徑的視覺化,部署方案如下圖所示。

P4可程式設計裝置能幹啥

除了流量視覺化,京東雲還透過P4可程式設計實現了LAG/ECMP的鏈路優先順序功能。在進行網路流量轉發時,優先使用高優先順序的鏈路,當高優先順序鏈路滿載時,選擇低優先順序的鏈路分擔流量,如下圖所示。

P4可程式設計裝置能幹啥

京東雲未來將會進一步對IDC、DCI、邊緣節點的網路裝置P4可程式設計化,已讓網路更加的視覺化、運維自動化,實現高階的流量排程、擁塞控制、虛擬網路功能(LB、NAT)解除安裝等。

4、 中國電信-回傳裝置白盒化

中國電信擁有100多人的SONiC開發團隊,正在使用P4可程式設計裝置開發運營商的無線回傳裝置(4G時代,中國電信有5-10萬臺這種裝置),預計今年將在此場景進行P4可程式設計裝置的部分落地。

P4可程式設計裝置能幹啥

P4可程式設計裝置能幹啥

另外,P4可程式設計裝置目前實現了小規模的資料中心網路TOR、匯聚交換機部署,運營商回傳裝置的部署。據說,80%的做網路安全的廠商都在使用P4可程式設計晶片在開發裝置。

P4可程式設計裝置能幹啥,取決於讀者的腦洞有多大,再上個圖,算是對本文標題的一個簡要總結吧。

P4可程式設計裝置能幹啥