開源SDN平臺的可擴充套件性與部署要點 丨FNDC演講實錄
未來網路是什麼樣的?
在剛剛結束的“第四屆未來網路發展大會”上,多位專家就未來網路的架構、生態、創新與發展等話題,進行了富有前瞻性的高峰對話,不僅是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編寫。
回顧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的高可用模式。
因此對於vRouters,不需要連線到所有控制器節點,並且就其性質而言,即使有更多的控制器節點可用,vRouter也會僅建立兩個XMPP連線。
XMPP的keepalive資料包會消耗大量的CPU週期,如果只使用1個控制器,將16個CPU節點用作控制器節點,則它可以服務有限數量的vRouter,例如500個。如果再新增更多的控制節點(例如15個),CPU使用率將大大降低。
2、路由目標過濾
由於控制程式之間具有iBGP,乍一看,好像每個控制程式在內部具有相同的字首。實際情況並非如此,每個控制程式的字首都略有不同,並且它們的路由表彼此不匹配。
為了理解這種行為,路由目標是一個關鍵概念,它在內部用virtual-network號標記每個字首,以形成每個虛擬網路中每個字首的完整表集,也就是VPNV4表。
當在它們之間建立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次。
從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和租戶組合的時候。
作為說明,上圖描述了將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叢集的良好特性。
Tatsuya在“控制平面可擴充套件性”及“ERM-VPN”方面的更多討論,歡迎關注“
Tungsten Fabric入門寶典”
和“
Tungsten Fabric知識庫” 兩個社群連載系列文章。
開源是通向未來網路的一把鑰匙。Tungsten Fabric作為開源SDN的代表,正積極依靠社群的力量,以“雲原生”為技術方向,探索未來網路的邊界和解決方法。
歡迎大家加入TF中文社群,瞭解開源SDN最新資訊,參與“未來網路”超級工程的建設。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957171/viewspace-2713484/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 可擴充套件性套件
- 企業網路演進與SDN生態丨2020 OpenInfra Days China演講實錄
- kestra: 無限可擴充套件的開源編排和排程平臺套件
- SDN在5G和WAN中的應用,它是否具備可擴充套件性套件
- Bittrex與受監管的交易平臺Rialto合作擴充套件平臺套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 簡要剖析:可擴充套件的微服務架構套件微服務架構
- iOS一個靈活可擴充套件的開源Log庫iOS套件
- ZenML:可擴充套件的開源機器學習MLOps框架套件機器學習框架
- MySQL 複製 - 效能與擴充套件性的基石 2:部署及其配置MySql套件
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- Kubernetes 節點彈性擴充套件實踐元件 Amazon Karpenter:部署 GPU 推理應用套件元件GPU
- 微信公眾平臺/擴充套件套件
- WINDOWS平臺上擴充套件SGA (zt)Windows套件
- 讀構建可擴充套件分散式系統:方法與實踐15可擴充套件系統的基本要素套件分散式
- 如何為SAP WebIDE開發擴充套件(Extension),並部署到SAP雲平臺上WebIDE套件
- 實用的可選項(Optional)擴充套件套件
- dubbo是如何實現可擴充套件的?套件
- 教你 4 步搭建彈性可擴充套件的 WebAPI套件WebAPI
- 提高擴充套件性套件
- 讀構建可擴充套件分散式系統:方法與實踐09可擴充套件資料庫基礎套件分散式資料庫
- 開源可觀測性平臺SigNoz
- 開源 | SOFAMesh 的通用協議擴充套件協議套件
- 開源 | FLUI : Flutter 的元件擴充套件集UIFlutter元件套件
- 讀構建可擴充套件分散式系統:方法與實踐03分散式系統要點套件分散式
- 實現近乎無限可擴充套件性的7種設計模式套件設計模式
- dubbo是如何實現可擴充套件的?(二)套件
- Edge要相容 Chrome 擴充套件Chrome套件
- 雲端CRM系統排名:靈活性與可擴充套件性的較量套件
- 寫個Markdown外掛,講講Chrome擴充套件開發Chrome套件
- 乾貨丨如何水平擴充套件和垂直擴充套件DolphinDB叢集?套件
- Chrome 擴充套件的開發實戰Chrome套件
- OAM v1alpha2 新版:平衡標準與可擴充套件性套件
- 直播預告丨開源SDN互通實戰演示與經驗分享
- bash的特有擴充套件屬性套件
- 編寫可擴充套件程式套件
- 開源 - Ideal庫 - 列舉擴充套件設計思路及實現難點(三)Idea套件
- 記錄Laravel開發常用擴充套件包Laravel套件