本文轉載自【微信公眾號:通信百科,ID:Txbaike】經微信公眾號授權轉載,如需轉載與原文作者聯繫
NVGRE和VXLAN都是網絡虛擬化技術,傳統的VLAN僅允許在特定時間分配多達4096個網絡ID,這對於大型雲計算環境而言還不夠。因此以上兩種主流的Overlay技術旨在擴展VLAN,以解決大型雲計算部署中虛擬網絡數量不足的問題。
VXLAN
VXLAN規範最初是由Cisco,VMware和Arista Networks創建的,全稱 Virtual eXtensible Local Area Network。簡單的說VXLAN就是擴充了的 VLAN,其包頭有一個24bit的ID段,即意味著1600萬個獨一無二的虛擬網段從而解決當前大型雲計算數據中心虛擬網絡不足的問題。VXLAN通過封裝、轉發2層報文,可以使得多個網絡的一臺一臺物理交換機通過三層直接連接,處於網絡中的同一個VLAN。
上圖所示為 VXLAN 的工作模型,它創建在原來的 IP 網絡(三層)上,只要是三層可達(能夠通過 IP 相互通信)的網絡就能部署VXLAN。在VXLAN 網絡的每個端點都有一個 VTEP 設備,負責 VXLAN 協議報文的解包和封包,也就是在虛擬報文上封裝 VTEP 通信的報文頭部。
但是,無論是二層還是三層網關,均涉及到查錶轉發、VXLAN報文的解封裝和封裝操作。從轉發效率和執行性能來看,都只能在物理網絡設備上實現,並且傳統設備無法支持,必須通過新的硬體形式來實現。以上設備均是物理網絡的邊緣設備,而有三種邊緣設備構成了VXLAN Overlay 網絡,對於應用系統來說,只與這三種設備相關,而與底層物理網絡無關。
NVGRE
首先NVGRE標準是由Microsoft、Intel、HP和Dell提出的。NVGRE的全稱是Network Virtualization using Generic Routing Encapsulation,即使用通用路由協議封裝的網絡虛擬化。NVGRE通過使用封裝策略來創建大量的VLAN子網,這些子網可以擴展到分散的數據中心和2、3層網絡。
NVGRE標準的重要特點包括指定24位的租賃網絡標誌符(TNI),使得NVGRE也可以支持1600萬個虛擬網絡,以此解決了一些和多租戶網絡相關的問題。並且通過使用GRE來創建一個獨立的虛擬2層網絡,限制物理2層網絡或擴展超過子網邊界。另外,NVGRE網關可以作為一個網絡地址轉換組件,將應用程式伺服器發布到Internet上,儘管這些服務實際上位於軟體定義網絡的虛擬伺服器當中。
NVGRE與VXLAN的區別
支持者和傳輸協議
NVGRE主要由Microsoft支持,而VXLAN主要由Cisco驅動。與使用標準傳輸協議(TCP / UDP)的VXLAN不同,NVGRE協議是GRE(通用路由封裝)。
封包格式
數據包格式是NVGRE和VXLAN之間最明顯的區別。VXLAN數據包頭包括一個24位ID段,代表1600萬個唯一的虛擬段。該ID通常是通過UDP埠上的偽隨機算法生成的。通過將數據包中的MAC組映射到唯一的UDP埠組,這有助於保持基於5元組的負載平衡,並保持VM之間的數據包順序。VXLAN封裝將數據包大小擴展到50個字節,如下所示。
與VXLAN不同的是,NVGRE沒有採用標準傳輸協議(TCP/UDP),而是藉助通用路由封裝協議(GRE)。NVGRE使用GRE頭部的低24位作為租戶網絡標識符(TNI),與VXLAN一樣也可以支持1600萬個虛擬網絡。為了提供描述帶寬利用率的流級別粒度,傳輸網絡需要使用GRE報頭。但是這導致NVGRE與傳統的負載平衡不兼容,這是NVGRE的主要缺點,同時還是有很多的防火牆和三層網絡設備無法解析 GRE Header,因此它們無法對 GRE 封裝包做合適的過濾和負載均衡。
兩種協議的格式區別匯總如下:
傳輸方式
VXLAN利用傳輸網絡中的組播來模擬第2層網段中廣播,未知單播和組播的泛洪行為,這對於MAC地址學習以及整個VXLAN工作過程中的協議(如ARP和Neighbor Discovery)非常重要。對於NVGRE,為了增強負載平衡功能,建議在每個NVGRE主機中使用多個IP位址,以確保可以平衡更多流量。NVGRE支持通過縮減數據包最大傳輸單元以減小內部虛擬網絡數據包大小,不要求傳輸網絡支持傳輸有效負載超過IEEE 802.3標準所限制的1500位元組的乙太網幀,即巨型幀jumbo frames。
分片
NVGRE支持分片最大數據包傳輸單位,以進一步減小內部虛擬網絡的數據包規模。不需要傳輸網絡支持大幀。但是,VXLAN需要支持大幀的傳輸網絡來承受數據包規模的擴展。也就是說,VXLAN不支持分片。
結論
綜上可以看出:第一,NVGRE和VXLAN都是用三層協議封裝二層協議,允許第2層數據包在第3層網絡上傳輸;第二,這兩項技術都解決了VLAN規模固定的問題,不再局限於4094個,而是將虛擬網絡的規模從4096增加到1600萬。
寫在最後,隨著各種新技術的興起,一項標準已經無法滿足需求,技術巨頭們爭先恐後地想讓自己的標準成為業內統一的標準,文章中的NVGRE和VXLAN就是典型的例子。