什麼是VXLAN-CSDN的同學說是尷尬的VXLAN

什麼是VXLAN-CSDN的同學說是尷尬的VXLAN

VXLAN(Virtual eXtensible Local Area Network)技術是由VMware、思科、Arista、Broadcom、Citrix和紅帽共同提出的IETF草案,用以解決數據中心多租戶間通信和隔離時解決vlan不夠的問題;Vxlan草案裏給出的封裝格式是MAC-IN-UDP,即將原始報文封裝在UDP報文裏,其本意是在用於不同數據中心之間的VM(Virtual Machine)之間進行通信時數據報文封裝格式。但是這種技術到底是否是一種完美的解決方案哪?

先對VXLAN的技術的提出其標準裏主要想解決以下幾個問題進行說明:

1)STP協議缺陷和VLAN ID數目少帶來的限制

對於國內互聯網的公司如BAT的數據中心,STP協議多數是不開啓的,明顯的缺陷是vxlan標準中所提及的,會導致鏈路帶寬的大量浪費,並且一旦拓撲變化到二三百臺網絡設備的時候,收斂性能會明顯變慢;所以大型數據中心會通過對網絡的合理規劃,來避免環路。

2)雲計算[注]中多租戶環境下的通信和隔離

對於爲了提高CPU的使用率以及服務器維護/遷移等操作便捷的雲計算來說,不同租戶的雲主機需要進行私網隔離,對於同一個租戶的多個雲主機私網內需要二層數據隔離而可以通過三層轉發進行通信,並且當雲主機在多個數據中心之間的進行熱遷移時爲了保持其提供服務的不間斷需要保證遷移前後在一個vlan內,即多個數據中心組成的二層某個VLAN網路有多大,那麼着裏面的VM就能遷移有多遠,也就是所謂的大二層技術。然而一個數據中心的物理服務器規模十萬級在國內已經出現,國外Google等已有百萬級規模的數據中心,此類環境下僅有12bit的VLAN數目對於雲計算的租戶數目來講是遠遠不夠的;其實vlan數目不夠很早就被意識到,並提出了 Q-IN-Q之類的技術(還有靈活Q-IN-Q等),爲什麼這些技術不直接被拿來在雲計算虛擬網絡環境裏使用哪?因爲雖然我們可以在數據中心內部控制報文的TAG情況,但是一旦報文到了公網,其路徑經過的網絡設備是路由器還是交換機無法得知,根本無法保證讓帶各種不同TAG的報文安然通過公網達到對端數據中心;然後就看有了vxlan的技術被提出和應用。

3)TOR交換機的MAC地址表不充足

再討論一下雲計算環境下TOR交換機MAC地址表不足的問題,在以前TOR因爲走三層轉發,只會學習到與其之戀直連設備及二層相連設備的MAC;而隨着大二層的出現,不僅要學習本數據中心二層的設備MAC地址,還有更多其他數據中心二層範圍內的地址,包括海量的虛擬機的MAC地址都有可能要被TOR學習到,這無疑大大增加了TOR的MAC表項容量的要求。我們知道對於傳統的商業交換芯片如Broadcom的ESW系列芯片,基本都有128K的MAC表項大小,這個容量相對於現代一個數據中心十萬級甚至百萬級設備的數據量真不算太大。

4)針對VXLAN技術的內容有以下幾點討論:

a)沒有說明同一個租戶下不同VNID之間如何通信;以前對於同一個vlan或不同的vlan來說兩個主機通過交換機進行通信,需要添加或刪除報文的vlan TAG;但是對於同一個同一個VNID或不同的VNID的主機進行通信,封裝VXLAN報文還需要額外提供一個從L2以太網到L4 UDP的頭部,始終讓人感覺非常的怪異;

b)VLXAN技術將隔離區域數目從原來的12bit的VLAN ID擴展到現在24bit的VNI,可能猶如原先VLAN提出時看待其12bit的大小覺得已經很多了,但是現在網絡規模越來越大,隨着業務的需求擴展比如多個行星之間的星際通信發展後,可能很快又無法滿足需求;這種擴展的方式始終是有缺陷的;

c)對原有VLAN技術的兼容

Vxlan技術如其他革命性的網絡技術的出現(OSPF代替RIP或IPV6代替IPV4),應該取代vlan,並且兼容vlan,這點VXLAN技術標準文檔裏也有提及,即如何讓VXLAN裏的設備與VLAN裏的設備進行通信,也可以考慮將vlan作爲VXLAN一個子域的PVLAN技術;但是兼容性其他方面依然是個值得考慮的問題,比如三層交換機現有的IP轉發時基於vlan創建三層接口的,可以簡單理解爲DIP VLAN進行查找表項,然後更改報文的VLAN ID號轉發到另一個VLAN裏轉出;當VXLAN代替VLAN後,如何芯片基於VXLAN的VNID進行三層轉發時VXLAN標準裏沒有提及的內容(+微信關注網絡世界),還有如QOS中vlan shapping的映射等技術也存在這個問題;而且封裝後還會有報文轉發效率、對轉發負載均衡性能等方面的影響;

d)對於vxlan技術的出現,現有網絡設備支持度也不夠;僅有盛科、BCM的T2等芯片,值得一提的是Openvswitch是支持的;VXLAN技術應該常規的傳統L3芯片類似,應提供同一個VNI範圍內的主機二層互通,不同VNI範圍內的主機通過IP地址三層轉發互通(一個租戶有兩個VNID),跨數據中心的主機流量進行二層或三層通信時需要添加含有公網IP地址的outer ip header來走外網進行通信,當然有需求可以提出在VXLAN下trunk、hybrid、access的端口屬性,但是這些都沒有做出規定;這個功能安裝基於vlan的三層轉發來講不是什麼高級的特性;但是這個技術都必須在新的交換芯片上來做,而新出的芯片都是比較高級的,比如broadcom的trident系列和Marvell的lion系列,如果在上面加這些功能,暫時沒有出現Vxlan與某些技術比如MPLS、TRILL等技術兼容的方案,即如果用了vxlan,這些技術雖然被芯片支持,但很大可能是芯片的表項及其支持的功能就被浪費了;硬件支持工作還有相當大的。

爲了解決vlan不夠的問題,類似VXLAN的技術還有微軟的NVGER和STT等,個人意見是這種技術解決問題方式是非常不徹底的,是革命性替代技術,但是兼容性不足且治標不治本。最當初利用vlan技術對網絡進行隔離的選擇可能是網絡技術發展史上最大的一個錯誤,現在因爲在其基礎上建立的三層轉發和受其限制而引發的一系列挽救技術都顯得蹩腳,尤其在現在得雲計算趨勢下;我們是不是應該考慮從根上解決該問題而不是每次都做補丁,因爲這樣導致了技術的複雜性越來越大,報文的這種天價頭部的多次封裝又導致了傳輸效率的降低,慢慢的又會引入新的限制從而影響新技術被應用到各種領域,比如逐漸成熟的移動互聯網。所以讓我們回到二層,回到vlan沒有出現的時候所遇到的網絡廣播風暴和安全隔離的問題上,可能會提出更好的解決辦法,衍生更多的好技術,以避免今天網絡的痛苦和無奈。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章