VXLAN:云時代的虛擬化數據中心網絡
VXLAN自2014年引入以來,已成為現代數據中心網絡架構的重要組成部分。本文回顧了 VXLAN 是什么、為什么需要它、如何在數據中心中使用,以及其相較于其他虛擬化技術的優勢。
什么是 VXLAN?
VXLAN (Virtual eXtensible LAN,可擴展虛擬局域網絡) 是一種Internet 標準重疊網絡虛擬化技術,它提供了一種在 IP(第 3 層)網絡上封裝以太網(第 2 層)幀的方法,這一概念通常被稱為“隧道”。
VXLAN技術將已有的三層網絡作為Underlay網絡,在其上構建出虛擬的二層網絡,即Overlay網絡。Overlay網絡通過封裝技術、利用Underlay網絡提供的三層轉發路徑,實現租戶二層報文跨越三層網絡在不同站點間傳遞。對于租戶來說,Underlay網絡是透明的,同一租戶的不同站點就像工作在一個局域網中。
雖然 VXLAN
只是眾多虛擬網絡或隧道技術中的一種,但它比其他技術更好地解決了數據中心網絡中的幾個擴展挑戰。由于這些優勢,用于云計算的現代數據中心網絡架構通常將基于穩健路由協議(例如BGP)的“scale-out”IP
(L3) leaf-spine Underlay與基于 VXLAN 的Overlay相結合,如圖1所示。
圖 1:L3 Underlay和VXLAN Overlay的可擴展數據中心架構
VXLAN 幀格式
下面是 VXLAN 幀格式的簡化視圖。
圖 2:簡化的 VXLAN 幀格式
VXLAN 協議將以太網幀封裝在 VXLAN報頭中,該報頭包含一個VNI (VXLAN 網絡標識符),該值用于區分每個 VXLAN 隧道。由于 VNI 由 24 位組成,因此網絡中可能的 VNI 數量超過 1600 萬,與VLAN(虛擬局域網) 技術相比,提供了重要的可擴展性優勢。VXLAN 幀隨后被封裝在IP網絡上的UDP中,以便它們可以通過第 3 層網絡進行路由。
VXLAN 隧道端點 (VTEP)
封裝和解封裝幀的隧道端點稱為 VTEP(VXLAN Tunnel End Point,VXLAN隧道端點)。這種封裝可以在托管虛擬機 (VM) 或容器化應用程序的服務器上完成,也可以在以太網交換機的網絡處理器中實現。圖 2 顯示了基于服務器和基于交換機的 VTEP。在該圖中,VXLAN Overlay Fabric連接了基于服務器和交換機的 VTEP,并跨越兩個地理位置分離的數據中心,通過第3層路由廣域網(WAN)或其他數據中心互連(DCI)傳輸連接。
圖 3:多站點數據中心網絡架構中的 VXLAN 隧道和 VTEP
基于服務器的 VTEP 可以支持更多分布式Overlay網絡服務,例如用于安全的細粒度微分段。但是,在軟件中運行的基于服務器的 VTEP 會使用本應由應用程序使用的服務器 CPU 周期。在交換機中實現的 VTEP 通常是硬件加速的,因此它們消除了性能瓶頸。
現在有一個新興的選擇,它將硬件加速的優點與高度分布式服務相結合:DPU(數據處理單元)。DPU是安裝在服務器中的一種網卡,它集成了強大的數據處理芯片來加速網絡功能,包括 VXLAN 覆蓋。預計將來會有更多的高性能數據中心網絡架構將在交換機和 DPU 中混合使用硬件加速的 VTEP,如圖 3 所示。
VXLAN vs. 其他方案
VXLAN 不是第一個或唯一的網絡虛擬化技術,但與其他數據中心網絡虛擬化替代方案相比,它提供了巨大的優勢。概括來說,VXLAN 最重要的目標是:
- 可以使用具有高彈性、高可用性和可預測性能的可擴展三層架構來構建Underlay網絡。
- 虛擬連接可以在軟件中定義,實現SDN自動化,以提高網絡運營的靈活性和效率,并減少人為錯誤。
- 虛擬化可以擴展到數百萬個隧道和端點,從而在應用程序和租戶之間實現細粒度、安全的分段。
當與適當的控制平面技術和網絡自動化框架相結合時,VXLAN 比許多其他虛擬化技術能更有效地實現這些目標。
VXLAN vs. VLAN
傳統數據中心網絡是使用以太網交換機構建的,沒有任何用于虛擬化的Overlay協議。在這種架構中,每臺交換機都充當以太網 MAC 橋接器,并實現生成樹協議,以避免網絡中的環路。在最簡單的實現中,所有設備和虛擬機都連接到相同的第二層廣播域。如果需要對這些網絡中的應用程序或租戶進行分段或隔離,則由VLAN提供,由添加到以太網幀報頭的 12 位 VLAN ID 表示(類似于 VXLAN 虛擬網絡標識符)。這個額外的報頭有時被稱為“.1Q 標簽”,意為IEEE 802.1Q標準。
這種類型的網絡對于小規模的單租戶數據中心來說已經足夠,但對于更大規模的數據中心,尤其是多租戶數據中心來說,它有很多缺點。由于只有 4000 個唯一的 VLAN ID 可用,分段選項是有限的。更重要的是,生成樹協議不太適合橫向擴展的數據中心網絡架構,因為它對冗余鏈路的使用效率低下,而且其彈性遠低于第三層路由技術。大型二層網絡很容易受到廣播風暴的影響,這可能會導致整個網絡癱瘓。
VXLAN 標準更詳細地討論了這些限制,并詳細說明了如何使用VXLAN overlay和三層Underlay來解決這些問題。
VLAN 標簽堆疊、Q-in-Q
避免只有 4000 個 VLAN 標識符限制的一種方法是添加第二個 VLAN 標記,這種方法稱為標記堆疊或“Q-in-Q”(由于使用兩個“.1Q 標簽”),并在IEEE Provider Bridges標準中。其允許服務提供商使用外部標簽 (S-tag) 在其客戶或租戶之間提供分段或隔離,而內部標簽 (C-tag) 由客戶使用,因此每個客戶都可以使用約 4000 個 VLAN,而無需擔心其他客戶正在使用什么。
圖 4:簡化的 QinQ 幀格式
使用兩個標簽可以實現多達 1600 萬個不同的組合(比VXLAN的24 位 VNI靈活性稍差),從而解決了 VLAN 可擴展性問題。然而,它并沒有解決二層網絡固有的低效率和低彈性的問題。
TRILL 和SPB
被稱為“TRILL”和“SPB”的后續標準試圖通過借鑒三層鏈路狀態路由來解決生成樹的效率和彈性問題,特別是廣泛使用的IS-IS路由協議,它不需要IP網絡。這些方法有時被稱為“MAC-in-MAC”,因為第二個以太網 MAC 地址被添加到幀中,用于在啟用 TRILL 或啟用 SPB 的網橋之間進行轉發。
這兩個標準都受到了關注,并經常進行比較,但都沒有達成共識。它們也有一個明顯的缺點,那就是需要專門的硬件。
基于 MPLS 的數據中心網絡架構
MPLS 二層 VPN (L2VPN) 提供了跨三層網絡的二層連接,但不是任何三層網絡都可以,網絡中的路由器必須都是 IP/MPLS 路由器。虛擬網絡使用 MPLS 偽線封裝進行隔離,并且可以堆疊 MPLS 標簽,類似于 VLAN 標簽堆疊,以支持大量虛擬網絡。
IP/MPLS 常用于電信服務提供商網絡,因此許多服務提供商的 L2VPN 服務都是使用 MPLS 實現的。其中包括點對點 L2VPN,以及根據虛擬專用 LAN 服務(VPLS) 標準實施的多點 L2VPN。這些服務通常分別符合E-Line(點對點)和 E-LAN(多點)的MEF運營商以太網服務定義。
由于 MPLS 及其相關控制平面協議專為高度可擴展的三層服務提供商網絡而設計,一些數據中心運營商已在其數據中心網絡中使用 MPLS L2VPN 來克服二層交換網絡的擴展性和彈性限制,如圖 4 所示。
圖 5:基于 MPLS 的數據中心網絡架構
由于以下幾個原因,這種方法沒有得到普及:
- 支持 MPLS 的路由器往往比不支持MPLS 的路由器更昂貴,并且比數據中心級第三層交換機的成本更高。而VXLAN 支持,包括硬件加速的 VTEP 功能,現已廣泛用于 Broadcom 和其他公司的交換芯片,以及基于服務器的新型 DPU。
- 基于 MPLS 的 VPN 解決方案需要邊緣設備和核心設備緊密耦合,因此數據中心網絡中的每個節點都必須支持 MPLS。相比之下,VXLAN 僅需要邊緣節點(例如leaf交換機或 DPU)中的 VTEP,并且可以使用任何支持 IP 的設備或 IP 傳輸網絡來實現數據中心spine和數據中心互連 (DCI)。
- 在大型服務提供商之外,MPLS 技術學習難度較大,相對較少的網絡工程師能夠輕松構建和運營基于 MPLS 的網絡。而VXLAN相對簡單,正在成為數據中心網絡工程師廣泛掌握的基礎技術。
鑒于以上種種,在數據中心網絡中,VXLAN比MPLS具有壓倒性的優勢。(事實上,VXLAN 甚至被證明是 MPLS 的可行替代方案,可在某些服務提供商網絡中提供運營商以太網服務。)
VXLAN vs. 其他Overlay 協議
VXLAN 并不是第一次嘗試定義能夠跨純三層Underlay網絡擴展二層服務的Overlay協議。
- VXLAN vs. OTV:OTV是 Cisco 專有的方法,與 VXLAN 有許多相似之處。OTV 采用控制平面協議來擴展 MAC 地址學習、減少流量泛洪并隔離二層故障域。與具有 SDN 或 BGP EVPN 控制平面的 VXLAN 相比,OTV 在負載均衡和收斂方面還存在一些缺點。
- VXLAN vs. NVGRE:NVGRE建立在 GRE 之上,GRE 是路由器廣泛支持的長期封裝標準。GRE是一種長期存在的封裝標準,在路由器中得到廣泛支持。與 VXLAN 一樣,它包含一個 24 位網絡標識符,可用于多達 1600 萬個子網。VXLAN 和 NVGRE 大約在同一時間推出,但隨著 VXLAN 因其簡單性而起飛,NVGRE 在很大程度上被甩在了后面。
- VXLAN vs. GENEVE:GENEVE是一種相對較新的協議,旨在成為一種“統一”的方法,其結合了 NVGRE 的靈活性,同時解決了 VXLAN 的一些感知限制,包括缺少協議標識符,對操作、管理和維護 (OAM) 數據包的支持有限,并且沒有標準化擴展機制。對于大多數 VXLAN 用例,尤其是在數據中心Fabric 中,這些并不是重要的限制,因此 GENEVE 似乎不太可能在短期內超過VXLAN,但它在一些供應商解決方案中獲得了支持,例如 VMware 的 NSX-T。
從技術上講,VXLAN、NVGRE 和 GENEVE 都提供了非常相似的功能,它們都可以使用相同的控制平面,例如 SDN 或 BGP EVPN,但到目前為止,VXLAN 的實施要廣泛得多。
虛擬化技術總結
下表總結了上述VXLAN 與其他虛擬化技術比較的一些關鍵點。
VXLAN 控制平面和自動化
原則上,VXLAN Overlay可以手工配置靜態MAC到VTEP的IP地址映射,但在實踐中,需要某種類型的控制平面或自動化框架來實現有意義的網絡可伸縮性和靈活性。VXLAN 標準描述了一種數據平面學習方法,并強調其他可能的控制平面選項。
使用 IP 組播的 VXLAN 數據平面學習
VXLAN 標準中描述的方法擴展了標準 MAC 地址學習,以創建 MAC 到 VTEP IP 地址的映射,而不會從根本上改變學習的工作方式。Underlay中的 IP組播用于傳輸二層廣播/未知/多播 (BUM) 流量。與下面描述的其他方法相比,這種方法有一些缺點。首先,它擴展了二層廣播和故障域,而不是隔離它們。其次,與典型的 IP(單播)網絡相比,IP 組播的使用將Underlay網絡與Overlay網絡緊密耦合,增加了管理的復雜性。
用于VXLAN 的 BGP EVPN 控制平面
BGP EVPN提供了一種日益流行的、基于標準的方法來創建 VXLAN Overlay網絡,以滿足以下幾個目標:
- 從數據平面移除MAC地址學習,包含二層廣播域和故障域。
- 通過選擇性轉發減少廣播和組播流量負載。
- 支持跨Underlay IP網絡的最佳轉發、負載均衡和收斂。
BGP EVPN 使用運行在每臺交換機中的 BGP 協議在網絡節點之間傳遞 MAC 地址和其他信息,因此我們將其稱為“protocol-based”的控制平面。
在網絡中的每臺交換機上配置 BGP EVPN 業務可能比較復雜、耗時且容易出錯,因此一些網絡運營商將目光投向網絡自動化工具,其中可能包括SDN自動化,以降低復雜性并提高配置速度。
VXLAN 的 SDN 控制平面和自動化
SDN 不僅可用于自動化 BGP EVPN,還可以為BGP EVPN提供一種無協議的替代方案。SDN 控制平面可以實現 BGP EVPN 上述的所有目標,而無需在每個交換機上配置 BGP EVPN。在支持 SDN 的 VXLAN Overlay中,SDN 控制平面負責 MAC 地址學習和高效轉發,同時還提供全面的端到端網絡自動化,這可以使網絡的配置和操作簡單幾個數量級.。
圖 6 比較了跨 128 節點 VXLAN Overlay Fabric上配置單個服務的操作復雜性(在本例中三層虛擬路由和轉發,或 VRF 實例)。將 SDN 自動化應用于 BGP EVPN 配置可以比手動配置簡化一個數量級,而采用完整的 SDN 自動化方法可以簡化大約三個數量級的任務。
圖 6:VXLAN Overlay配置的 SDN 自動化優勢
總結
VXLAN 已成為數據中心網絡架構中最流行的Overlay網絡虛擬化協議,因為它優于眾多替代方案。基于硬件的VTEP在交換機和DPU中實施,并與BGP EVPN或SDN控制平面和網絡自動化相結合時,基于VXLAN的Overlay網絡在可預見的未來可以提供分布式云網絡所需的可伸縮性、敏捷性、高性能和彈性。