開源SDN平臺的可擴充套件性與部署要點 丨FNDC演講實錄

TF中文社群發表於2020-08-21

未來網路是什麼樣的?

在剛剛結束的“第四屆未來網路發展大會”上,多位專家就未來網路的架構、生態、創新與發展等話題,進行了富有前瞻性的高峰對話,不僅是5G、雲網融合、工業網際網路等看得見的網路形態,更有充滿想象力的創新構想。

【直播影片回放】
https://v.qq.com/x/page/k3138tyukxl.html

【pdf文件下載】

有專家認為,在萬物互聯的未來網路世界,網路架構將發生進一步演化,如何解決可擴充套件性、移動性、安全性等挑戰,考驗著人們的智慧。

對此,Tungsten Fabric開源社群技術專家Tatsuya Naganawa就“開源SDN平臺的可擴充套件性”問題進行了探討。

Tatsuya多年來一直參與瞻博網路Contrail產品的研發,同時支援客戶開展IaaS、NFVI、5G等方面的專案部署,具有豐富的實踐經驗。

社群連載文章“ Tungsten Fabric入門寶典
和“ Tungsten Fabric知識庫” 即由Tatsuya Naganawa編寫。
4a1fd1ab-0510-4ee7-aacd-4f50056002a3-image.png

回顧Tungsten Fabric的技術發展,Tatsuya提到,最初Tungsten Fabric只是一個支援MPLS over IP的軟體路由器,隨著協議標準和資料平面技術的發展,Tungsten Fabric能夠支援L2/L3 VXLAN,並可作為具有EVPN/VXLAN的VTEP軟體來使用,帶來了更多的可擴充套件性。

透過核心元件vRouter,Tungsten Fabric實際具有很多增加可擴充套件性的功能,Tatsuya主要介紹了其中三個關鍵功能:

1、控制器之間的兩個XMPP連線和iBGP

當vRouter首先啟動時,將基於XMPP連線從控制器接收來往其它虛擬機器的路由。

在有多個控制器可用時,控制器將基於它們之間的iBGP連線交換到其它虛擬機器的路由,以同步它們之間的所有路由,從vRouter的視角可看作是active/active的高可用模式。
958badb4-d778-4466-b8e2-80f27db6513e-image.png
因此對於vRouters,不需要連線到所有控制器節點,並且就其性質而言,即使有更多的控制器節點可用,vRouter也會僅建立兩個XMPP連線。

XMPP的keepalive資料包會消耗大量的CPU週期,如果只使用1個控制器,將16個CPU節點用作控制器節點,則它可以服務有限數量的vRouter,例如500個。如果再新增更多的控制節點(例如15個),CPU使用率將大大降低。

2、路由目標過濾

由於控制程式之間具有iBGP,乍一看,好像每個控制程式在內部具有相同的字首。實際情況並非如此,每個控制程式的字首都略有不同,並且它們的路由表彼此不匹配。

為了理解這種行為,路由目標是一個關鍵概念,它在內部用virtual-network號標記每個字首,以形成每個虛擬網路中每個字首的完整表集,也就是VPNV4表。
a0a34362-6c6c-4d10-8a4c-2fd9f9d4a58a-image.png
當在它們之間建立iBGP時,控制程式首先協商它們當前具有的路由目標,然後請求其它控制程式僅傳送VPNV4表。

因此,即使叢集本身具有大量控制元件和vRouter,每個控制元件和vRouter也只需要知道該表的一部分,這樣可減少RIB表的大小和所需的實體記憶體。

此外,此iBGP行為還允許將流量直接聯合到其它的Tungsten Fabric叢集,因為如果它具有相同的路由目標,則是否在相同的叢集這一點並沒有關係。

路由目標過濾功能允許在多個Tungsten Fabric叢集之間形成更大的VPNV4表,並匯入和匯出字首,這是本地vRouter和控制程式所需要的。

3、ERM-VPN

ERM-VPN是Tungsten Fabric的一個獨特功能,主要是為了面向大量vRouter最佳化BUM複製。

由於BUM需要複製到許多節點,因此即使需要從一個vRouter傳送少量流量,最終也可能是很大的流量,如果有1000個節點,那麼它就需要傳送1000次。
3693219f-a8d7-4b8d-af10-4b913afe6470-image.png
從EVPN標準來看,一種選擇是使用入口複製(ingress-replication),這基本上意味著情況沒變化,vRouter需要將BUM流量傳送到其它節點1000次,這可能導致一個特定vRouter上的CPU峰值。

為了克服此問題,Tungsten Fabric使用了ERM-VPN功能。ERM-VPN的一個要點是首先在一個控制程式中形成BUM樹,然後在控制程式之間透過iBGP來縫合一些邊緣vRouter節點,以形成更大的BUM樹,其中包括所有vRouter。

由於每個vRouter都包含在該BUM樹中,因此當它們需要轉發BUM資料包時,將僅傳送BUM資料包到該BUM樹直接連線的vRouter。接收到BUM資料包的vRouters會將該資料包傳送到BUM樹中的其它節點,最終將傳送到所有vRouter,以滿足BUM複製要求。

有了ERM-VPN,即使需要大量的BUM複製也不是太大的問題,因此vRouter可以作為VTEP控制器的良好來源,尤其是需要支援大量的vRouter和租戶組合的時候。
dc446691-c743-43c9-b0e0-78911d91862e-image.png

作為說明,上圖描述了將3個vRouter連線到control1和control3時將形成的BUM樹。

它首先在一個特定的控制器中形成樹,建立了兩組3個節點的樹,一個是vRouter11、vRouter12、vRouter13,另一個是vRouter21、vRouter22、vRouter23。

之後,ERM-VPN識別該樹中的最後一個路由器ID,並透過連線它們形成更大的BUM樹。

圖中vRouter13和vRouter23已連線,同時形成了一個更大的BUM樹,包括了所有vRouter。

針對上述三個功能,Tatsuya嘗試了幾種設定進行測驗,包括具有15個控制節點的1000個vRouter節點,以及具有5個控制節點的2000個vRouter節點,都證明了Tungsten Fabric具有實現大規模軟體VTEP叢集的良好特性。
325eb12b-c07a-4b78-ad74-cd9e5c59c7a1-image.png

Tatsuya在“控制平面可擴充套件性”及“ERM-VPN”方面的更多討論,歡迎關注“ Tungsten Fabric入門寶典
和“ Tungsten Fabric知識庫” 兩個社群連載系列文章。

開源是通向未來網路的一把鑰匙。Tungsten Fabric作為開源SDN的代表,正積極依靠社群的力量,以“雲原生”為技術方向,探索未來網路的邊界和解決方法。

歡迎大家加入TF中文社群,瞭解開源SDN最新資訊,參與“未來網路”超級工程的建設。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957171/viewspace-2713484/,如需轉載,請註明出處,否則將追究法律責任。

相關文章