將來網絡是什麼樣的?html
在剛剛結束的「第四屆將來網絡發展大會」上,多位專家就將來網絡的架構、生態、創新與發展等話題,進行了富有前瞻性的高峯對話,不只是5G、雲網融合、工業互聯網等看得見的網絡形態,更有充滿想象力的創新構想。安全
【直播視頻回放】
https://v.qq.com/x/page/k3138tyukxl.html
網絡
【pdf文檔下載】
https://tungstenfabric.org.cn/assets/uploads/files/tungstenfabric-for-scalabiilty-deployment.pdf
架構
有專家認爲,在萬物互聯的將來網絡世界,網絡架構將發生進一步演化,如何解決可擴展性、移動性、安全性等挑戰,考驗着人們的智慧。ide
對此,Tungsten Fabric開源社區技術專家Tatsuya Naganawa就「開源SDN平臺的可擴展性」問題進行了探討。優化
Tatsuya多年來一直參與瞻博網絡Contrail產品的研發,同時支持客戶開展IaaS、NFVI、5G等方面的項目部署,具備豐富的實踐經驗。url
社區連載文章「Tungsten Fabric入門寶典」
和「Tungsten Fabric知識庫」 即由Tatsuya Naganawa編寫。
回顧Tungsten Fabric的技術發展,Tatsuya提到,最初Tungsten Fabric只是一個支持MPLS over IP的軟件路由器,隨着協議標準和數據平面技術的發展,Tungsten Fabric可以支持L2/L3 VXLAN,並可做爲具備EV P N/VXLAN的VTEP軟件來使用,帶來了更多的可擴展性。
spa
經過核心組件vRouter,Tungsten Fabric實際具備不少增長可擴展性的功能,Tatsuya主要介紹了其中三個關鍵功能:.net
一、控制器之間的兩個XMPP鏈接和iBGP
當vRouter首先啓動時,將基於XMPP鏈接從控制器接收來往其它虛擬機的路由。scala
在有多個控制器可用時,控制器將基於它們之間的iBGP鏈接交換到其它虛擬機的路由,以同步它們之間的全部路由,從vRouter的視角可看做是active/active的高可用模式。
所以對於vRouters,不須要鏈接到全部控制器節點,而且就其性質而言,即便有更多的控制器節點可用,vRouter也會僅創建兩個XMPP鏈接。
XMPP的keepalive數據包會消耗大量的CPU週期,若是隻使用1個控制器,將16個CPU節點用做控制器節點,則它能夠服務有限數量的vRouter,例如500個。若是再添加更多的控制節點(例如15個),CPU使用率將大大下降。
二、路由目標過濾
因爲控制進程之間具備iBGP,乍一看,好像每一個控制進程在內部具備相同的前綴。實際狀況並不是如此,每一個控制進程的前綴都略有不一樣,而且它們的路由表彼此不匹配。
爲了理解這種行爲,路由目標是一個關鍵概念,它在內部用virtual-network號標記每一個前綴,以造成每一個虛擬網絡中每一個前綴的完整表集,也就是V P NV4表。
當在它們之間創建iBGP時,控制進程首先協商它們當前具備的路由目標,而後請求其它控制進程僅發送V P NV4表。
所以,即便集羣自己具備大量控件和vRouter,每一個控件和vRouter也只須要知道該表的一部分,這樣可減小RIB表的大小和所需的物理內存。
此外,此iBGP行爲還容許將流量直接聯合到其它的Tungsten Fabric集羣,由於若是它具備相同的路由目標,則是否在相同的集羣這一點並無關係。
路由目標過濾功能容許在多個Tungsten Fabric集羣之間造成更大的V P N V4表,並導入和導出前綴,這是本地vRouter和控制進程所須要的。
三、ERM-V P N
ERM-V P N是Tungsten Fabric的一個獨特功能,主要是爲了面向大量vRouter優化BUM複製。
因爲BUM須要複製到許多節點,所以即便須要從一個vRouter發送少許流量,最終也多是很大的流量,若是有1000個節點,那麼它就須要發送1000次。
從EV P N標準來看,一種選擇是使用入口複製(ingress-replication),這基本上意味着狀況沒變化,vRouter須要將BUM流量發送到其它節點1000次,這可能致使一個特定vRouter上的CPU峯值。
爲了克服此問題,Tungsten Fabric使用了ERM-V P N功能。ERM-V P N的一個要點是首先在一個控制進程中造成BUM樹,而後在控制進程之間經過iBGP來縫合一些邊緣vRouter節點,以造成更大的BUM樹,其中包括全部vRouter。
因爲每一個vRouter都包含在該BUM樹中,所以當它們須要轉發BUM數據包時,將僅發送BUM數據包到該BUM樹直接鏈接的vRouter。接收到BUM數據包的vRouters會將該數據包發送到BUM樹中的其它節點,最終將發送到全部vRouter,以知足BUM複製要求。
有了ERM-V P N,即便須要大量的BUM複製也不是太大的問題,所以vRouter能夠做爲VTEP控制器的良好來源,尤爲是須要支持大量的vRouter和租戶組合的時候。
做爲說明,上圖描述了將3個vRouter鏈接到control1和control3時將造成的BUM樹。
它首先在一個特定的控制器中造成樹,建立了兩組3個節點的樹,一個是vRouter十一、vRouter十二、vRouter13,另外一個是vRouter2一、vRouter2二、vRouter23。
以後,ERM-V P N識別該樹中的最後一個路由器ID,並經過鏈接它們造成更大的BUM樹。
圖中vRouter13和vRouter23已鏈接,同時造成了一個更大的BUM樹,包括了全部vRouter。
針對上述三個功能,Tatsuya嘗試了幾種設置進行測驗,包括具備15個控制節點的1000個vRouter節點,以及具備5個控制節點的2000個vRouter節點,都證實了Tungsten Fabric具備實現大規模軟件VTEP集羣的良好特性。
Tatsuya在「控制平面可擴展性」及「ERM-V P N」方面的更多討論,歡迎關注「Tungsten Fabric入門寶典」
和「Tungsten Fabric知識庫」兩個社區連載系列文章。
開源是通向將來網絡的一把鑰匙。Tungsten Fabric做爲開源SDN的表明,正積極依靠社區的力量,以「雲原生」爲技術方向,探索將來網絡的邊界和解決方法。
歡迎你們加入TF中文社區,瞭解開源SDN最新信息,參與「將來網絡」超級工程的建設。