VMware VXLAN 解釋:優勢和實施

網絡需求每年都在增長。現代網絡預期能提供高速、低延遲和高可擴展性。另一個常見需求是網絡分段的安全隔離。數據中心中的虛擬化也增加了對物理網絡基礎設施的需求,傳統網絡在潛在的網絡問題下變得不合理。

網絡虛擬化用於從底層物理網絡中抽象出來並創建可擴展和邏輯網絡。它的工作方式類似於計算資源的虛擬化(如處理器、內存和存儲),這使得可以在抽象層上使用這些資源。

VXLAN 是什麼?

虛擬可擴展區域網絡(VXLAN)是一種覆蓋網絡技術。它是一種封裝協議,提供在底層第 3 層(L3)網絡上進行第 2 層(L2)連接的隧道。覆蓋網絡是建立在任何現有網絡之上的網絡。底層網絡是用於現有網絡的物理基礎設施,覆蓋網絡是在其上構建的。

底層物理網絡的組件包括物理硬件、電纜和網絡協議。邊界網關協議(BGP)和開放最短路徑優先(OSPF)是廣泛用於 L3 路由的協議。覆蓋網絡的常見示例包括不同類型的虛擬私人網絡(VPN)、IPSec 隧道和點對點網絡。

VXLAN 規範

VXLAN 是由互聯網工程任務組(IETF)的 RFC 7348 標準所定義。VXLAN 協議的標準化規範是由思科、VMware 和 Arista 合作開發的,雖然該標準並非專屬於某一供應商。VXLAN 受到像 VMware 的虛擬化軟件和來自各個供應商的路由器等硬體設備的支援。

理解 VXLAN

VXLAN 允許您使用多租戶廣播域的支持來創建高度可擴展的邏輯網絡,並跨越物理網絡邊界。這些邏輯網絡是覆蓋網絡。當您將虛擬網絡從物理網絡中解耦時,儘管初始配置復雜,您可以簡化大型網絡的管理。使用 VXLAN 時,您可以重新設計覆蓋網絡,而無需重新配置底層(物理)網絡。可以使用兩個或更多底層 L3 網絡來部署虛擬覆蓋 L2 網絡域。葉-脊網絡拓撲結構是在大型數據中心中配置 VXLAN 覆蓋網絡的良好解決方案。

VXLAN 可以用在哪裡?

VXLAN 最常見的用途是在部署軟體定義的資料中心時,在現有的物理和邏輯網路基礎設施上創建虛擬網路。在軟體定義的資料中心 (SDDC) 中,從底層物理基礎設施中抽象出來以進行虛擬化。VXLAN 和 VMware 虛擬化解決方案使您能夠配置完全虛擬化的資料中心,其中網路和計算資源都是虛擬化的。為此目的而存在的兩個軟體產品是VMware vSphere 和 VMware NSX。VMware 網路虛擬化解決方案有兩個版本:NSX-V 和 NSX-T

有了 VXLAN,運行在 VMware vSphere 中的虛擬機器 (VMs) 可以連接到所需的邏輯網路,即使它們位於不同的 ESXi 主機、不同的叢集甚至不同的資料中心中,它們也可以彼此通信。VXLAN 邏輯網路從底層物理網路中抽象出來,VMs 則從底層硬體中抽象出來。

沒有 VXLAN,對於在運行虛擬機並連接到網絡的數據中心中操作媒體訪問控制(MAC)地址的物理網絡設備有更高的需求。許多現代數據中心(包括具有虛擬化服務器的數據中心)使用葉脊網絡拓撲和頂部機架(ToR)連接方案。當虛擬機使用物理網絡時,即使在第二層上對網絡段進行虛擬網絡(VLAN)隔離,ToR交換機(連接到機架服務器的交換機)也必須與物理網絡設備和虛擬機網絡適配器的 MAC 地址一起操作,以提供 L2 連通性(而不是學習每個鏈路的一個 MAC 地址)。 MAC 地址表變得太大,這導致交換機過載,MAC 地址表的容量需求比非虛擬化環境要大得多。當表格溢出發生時,交換機無法學習新的 MAC 地址,並且會發生網絡問題。

傳統 VLAN、生成樹協議(STP)和等價多路徑(ECMP)無法完美解決虛擬化數據中心中的所有網絡問題。使用帶有 VXLAN 的覆蓋網絡有助於解決此問題。虛擬機 MAC 地址僅在虛擬覆蓋網絡(VXLAN 網絡)中運行,並且不會發送到底層網絡的物理交換機。此外,用於 L2 域的網絡隔離和在多租戶環境中使用的 VLAN 提供了比 VLAN 更高的限制。讓我們比較 VXLAN vs VLAN,以查看兩者之間的主要區別。

VXLAN vs VLAN 比較

這些網路協議的主要差異在於 VLAN 使用第 2 層底層網路進行幀封裝,而 VXLAN 則使用第 3 層進行此操作。覆蓋網路的最大數量對於 VXLAN 較高。

VLAN 詳細記錄在 IEEE 802.1Q 標準中。支援的 VLAN 數量最多為 4094,因為有 12 位元的段識別碼:2^12=4096,VLAN ID 為 0 到 4095,2 個保留的 VLAN ID(0 和 4095 為保留)。如今,4094 對於大型 雲服務提供商而言已經不夠用。使用 VLAN 標籤時,以太網幀的大小從 1518 增加到 1522 位元組。使用 VLAN 時,網路通過使用 802.1Q 標籤在 L2 上被邏輯上隔離。物理網路設備的配置用於網路分割。

VXLAN 是 VLAN 的擴展類比。 VLAN 和 VXLAN 之間的主要差異包括:

  • VXLAN 支援的虛擬網路的最大數量超過 1600 萬(2^24= 16,777,216),這是由於網路識別碼的 24 位元長度。
  • VXLAN 和 VLAN 使用不同的封裝技術。VXLAN 不需要幹纜,不像 VLAN 那樣需要,也不需要 STP。當使用 VXLAN 網路識別碼時,不需要使用 VLAN 標籤。
  • 重新配置物理網路設備對於 VXLAN 配置不是必需的。

  • 管理大型 L2 網絡在大型分佈式物理基礎設施中變得困難。管理 L3 網絡更加方便。在現有 L3 網絡上運作的 VXLAN 覆蓋網絡,使管理員能夠避免傳統 L2 網絡通常的缺點,當 L2 網絡被 VXLAN 虛擬化並且不依賴於真實網絡的物理邊界時。

讓我們回顧一下 7 層 OSI 模型,並在本文的下一節中探討 VXLAN 網絡的工作原理。

7 層開放系統互連(OSI)模型:

協定資料單元 協定的例子
7 應用程式 資料 HTTP、FTP、SSH、DNS
6 表現 資料 SSL、IMAP
5 會議 資料 各種 API、插座
4 傳輸 分段、數據報 TCP、UDP
3 網路 封包 IP、IPSec、ICMP、IGMP
2 資料鏈接 Ethernet、PPP、FDDI
1 物理 位元 電線、光纖、無線

空間

VXLAN 的工作原理如何?

VXLAN 通過使用 UDP 數據報將內部 L2 以太網幀封裝為 L3 IP 封包,並通過現有的 IP 網絡傳輸它們。VXLAN 封裝類型稱為 MAC-in-UDP,這是該技術的更精確術語。

為什麼使用 UDP?為什麼不直接將 VXLAN 帧封裝到外部 IP 封包中?L3 網絡對管理非常方便,正如我們之前提到的,L3 網絡是 VXLAN 網絡(即覆蓋網絡)的底層網絡。

VXLAN 標頭長度為 8 個字節,添加到原始以太網帧(內部帧)中。這個 VXLAN 標頭是必需的,以便另一側的交換機識別帧所屬的 VXLAN 網絡標識符(VNI)。我們大多數人可能希望將帶有 VXLAN 標頭的原始帧打包到 IP 封包中,類似於通用路由封裝(GRE)協議,該協議是 L3 隧道協議。

IP 標頭中有一個 Protocol 字段(請參見下面的圖像),用於定義打包到當前 IP 封包中的高層協議數據(參見上面的 OSI 模型表)。 GRE 具有協議號 47,該號碼定義在外部 IP 封包的 Protocol 字段中。 VXLAN 沒有任何相關的協議號,直接將其封裝到外部 IP 封包中會導致問題。因此,VXLAN 通過使用 UDP 進行封裝,然後封裝到 IP 封包中。通用分组封装协议(GTP)採用了類似的方法。 VXLAN 的 UDP 端口號是 4789。這個 VXLAN 端口號應該作為默認的目標 UDP 端口使用。

你可能在想:TCP 更可靠。为什么不使用 TCP,而是使用 UDP 呢? TCP 有一种机制,用于检查数据是否已成功接收和传输而无损失。如果数据丢失,数据将被重新发送。UDP 没有这些机制。如果数据由于连接问题而丢失,这些数据将永远不会被重新发送。UDP 不像 TCP 那样使用会话和超时。

如果我们在 TCP 上使用 TCP,并且在底层会话中丢失了数据,那么在上层会话中也会丢失这些数据。在底层和上层 TCP 会话中启动数据包重新传输,这会导致网络性能下降。UDP 不启动点对点(P2P)会话的事实在 VXLAN 封装的情况下是一个优势。请注意,对于 TCP 连接,点对多点(P2MP)会话不可用。

VNIVNID 是 VXLAN 网络标识符。使用 24 位 VXLAN 网络标识符(也称为段 ID),它定义了支持的 VXLAN 网络的最大数量。

VXLAN 隧道端点(VTEP) 是负责封装和解封 L2 帧的对象。VTEP 是提供者边缘(PE)路由器的类比,它是服务聚合的节点。VTEP 可以作为硬件网关或像 VMware NSX(软件 VTEP)这样的虚拟化解决方案来实现。VXLAN 隧道在 VXLAN 隧道端点上开始和结束。

VMs連接到相同的VXLAN段可以彼此通信。如果主機1(VM1)位於VTEP A後面,而主機2(VM2)位於VTEP B後面,則這兩台主機(VM)必須都有連接到相同VNI的網絡接口(類似於主機在使用VLAN時必須使用相同的VLAN ID進行網絡配置)。

VXLAN框架封裝

現在是時候詳細探索VXLAN框架封裝的結構了。在下面的圖像中,您可以看到一個VXLAN封裝帧的結構。顯示了VXLAN網絡中使用的外部以太網頭、外部IP頭、UDP頭、VXLAN頭和內部以太網帧。

外部以太網(MAC)頭

  • 外部目標MAC是最近路由器本地的目標VTEP的MAC地址,或者如果VTEP位於路由器後面,則是路由器的MAC地址。
  • 外部源MAC是源VTEP的MAC地址。
  • VLAN類型(可選)是可選字段。0x8100表示帧已VLAN標記。
  • 外部802.1 VLAN標記是定義VLAN標記的可選字段(VXLAN網絡不需要)。
  • 以太類型定義此帧所攜帶的分组類型。0x800指的是IPv4包。

外部IP頭

  • IP頭其他數據 包含版本、標頭長度、服務類型和其他數據。
  • IP協議。此字段用於定義IP分組所攜帶的底層網絡協議。0x11定義了UDP。
  • 標頭檢查和確認資料完整性僅用於 IP 標頭。
  • 外部來源 IP是源 VTEP 的 IP 位址。
  • 外部目的地 IP是目標 VTEP 的 IP 位址。

UDP 標頭

  • UDP 來源埠是由傳輸資料的 VTEP 設定的埠。
  • UDP 目的地埠是由 VXLAN IANA 指定的埠 (4789)。
  • UDP 長度是 UDP 標頭加上 UDP 資料的長度。
  • UDP 校驗和應設為 0x0000 以供 VXLAN 使用。在這種情況下,接收的 VTEP 避免校驗和驗證,避免在校驗和不正確時丟棄框架 (如果丟棄框架,封裝的資料就無法解封)。

VXLAN 標頭

  • VXLAN 旗標是不同的旗標。I 旗標設為 1。其他 7 位元現在保留並必須設為 0。
  • 保留 – 尚未使用的保留欄位,設為 0。
  • VNI 是用來定義 VNI 的 24 位元欄位。
  • 幀檢查序列 (FCS)是用來偵測和控制錯誤的 4 位元欄位。

VXLAN 間接負擔

  • 當使用 VXLAN 時,讓我們計算負擔:

8 位元組 (VXLAN 標頭) + 8 位元組 (UDP 標頭) + 20 位元組 (IPv4 標頭) + 14 位元組 (外部 L2 標頭) = 50 位元組 (如果內部封裝的框架中未使用 VLAN 標記)。如果客戶端使用 VLAN 標記,則必須添加 4 位元組,結果為 54 位元組。

  • 讓我們計算物理網路外框的整個大小:

1514(內框架)+ 4(內VLAN標籤)+ 50(VXLAN)+ 4(VXLAN傳輸VLAN標籤)= 1572位元組

  • 如果使用IPv6,IP標頭大小增加20位元組:

1514(內框架)+ 4(內VLAN標籤)+ 70(IPv6 VXLAN)+ 4(VXLAN傳輸VLAN標籤)= 1592位元組

  • IPv6 可選擇額外增加 8 位元組。在這種情況下,外框大小為 1600 位元組。
  • 您可以相應地更改交換機配置中的最大傳輸單位(MTU)值(例如增加 50、54、70 或 74 位元組)。在這種情況下,需要支援巨幅框架(大小超過標準 1518 位元組的框架)。

建議您在實際網路中使用虛擬 VXLAN 網路時增加框架大小。VMware 建議您將 MTU 設置為 1600 位元組或更多以在分佈式虛擬交換機上使用。

注意以太網框架大小和 MTU 是框架的重要特徵。MTU 指的是封裝到以太網框架中的有效載荷的最大大小(IP 封包大小,在不使用巨幅框架時的默認值為 1500 位元組)。以太網框架大小包括有效載荷大小、以太網頭部大小和 FCS。

VXLAN 數據傳輸示例

讓我們考慮一個在具有 VMware VXLAN 的網路中傳輸數據的示例,以更好地了解 VXLAN 配置和工作原理。

在 VMware vSphere 環境中配置了 VMware NSX 的兩個 ESXi 主機。 VM1正在第一個ESXi主機上運行,而VM2正在第二個ESXi主機上運行。這兩個VM的虛擬網絡適配器都連接到具有VNI 121的相同VXLAN網絡。ESXi主機連接到物理網絡的不同子網。

階段1

VM1想要發送一個封包給VM2。讓我們來探討這種情況下會發生什麼。

  1. VM1發送ARP封包以請求具有IP地址192.168.5.22的主機的MAC地址。
  2. 位於第一個ESXi主機上的VTEP1將ARP封包封裝到與VNI 121關聯的多播封包中。
  3. 接收到多播封包的其他VTEP將關聯VTEP1-VM1添加到其VXLAN表中。
  4. VTEP2收到封包,解封這個封包,並在與VNI 121和相應的VXLAN網絡關聯的虛擬交換機端口組上發送廣播。
  5. 位於其中一個端口組上的VM2接收到ARP封包,並以其MAC地址(VM2的MAC地址)發送回應。
  6. 位於第二個ESXi主機上的VTEP2創建一個單播封包,將VM2的ARP回應封裝到此封包中,並通過IP路由發送該封包回到VTEP1。
  7. VTEP1解封接收到的封包,並將解封的數據傳遞給VM1。

空間

階段2

現在VM1知道VM2的MAC地址,並且可以像上圖所示進行VM到VM的通信。

  1. VM1 從其 IP 地址(192.168.5.21)向 VM2 的 IP 地址(192.168.5.22)發送 IP 封包。
  2. VTEP1 封裝此封包並添加標頭:
    1. 具有 VNI=121 的 VXLAN 標頭
    2. 具有 VXLAN 端口(UDP 4789)的標準 UDP 標頭
    3. 包含 VTEP 的目標 IP 地址和用於封裝的 UDP 協議的 0x011 值的標準 IP 標頭
    4. 具有下一個 L2 裝置(下一跳)的 MAC 地址的標準 MAC 標頭。在此示例中,這是具有 MAC 地址 00:10:11:AE:33:A1 的路由器接口。該路由器執行路由,將封包從 VTEP1 轉移到 VTEP2。
  3. VTEP2 收到封包,因為 VTEP2 的 MAC 地址被定義為目的地地址。
  4. VTEP2 解封封包並檢測到有 VXLAN 數據(VTEP2 識別 UDP 端口 4789,然後識別攜帶的 VXLAN 標頭)。
  5. VTEP 驗證目標 VM2 是否被允許從 VNI 121 接收幀,並且是否連接到正確的端口組。
  6. 解封後,內部 IP 封包被傳輸到與 VNI 121 連接的 VM2 虛擬網卡。
  7. VM2 接收內部封包並處理此封包,就像處理任何普通 IP 封包一樣。
  8. 封包以相同方式從 VM2 傳輸到 VM1。

多播支持

VXLAN疊加網絡在網絡中支持單播、廣播和多播通信模式。

  • 單播通信用於在網絡中的兩個主機之間傳輸數據。遠程VTEP通常是靜態定義的。
  • 廣播通信是一個主機向網絡中的所有主機發送數據的模式。
  • 多播通信是另一種一對多的通信類型。數據被發送到網絡中選定的主機,而不是所有主機。使用多播的常見示例是在線視頻流式傳輸。Internet Group Management Protocol(IGMP)用於多播通信。必須啟用L2交換機上的IGMP節流和路由器(L3)上的IGMP查詢器。

請注意,使用VXLAN進行多播流量的能力來自MAC-in-UDP封裝方法(如上所述),該方法允許建立P2MP連接。在多播模式下,遠程VTEP可以自動找到,無需手動定義所有鄰居。您可以定義與VNI關聯的多播組,然後VTEP開始聽取該組。其他VTEP的行為類似,如果VNIs正確設置,它們將開始聽取該組。

VMware VXLAN組件

VMware vSphere,包括ESXi主機、vCenter和NSX,是配置帶有VXLAN支持的網絡虛擬化所需的軟件套件。讓我們解釋一下VMware VXLAN組件及其在部署VXLAN網絡中的角色。

NSX-V是一個解決方案,用於在具有VMware vSphere的數據中心構建虛擬網絡。

在 VMware vSphere 中使用 VMware NSX-V,使用 VXLAN 进行网络抽象时使用 分布式虚拟交换机(分布式 vSwitch 或 DVS)。不建议使用标准 vSwitch

在虚拟机(VM)的虚拟接口控制器(NIC)和分布式 vSwitch 的逻辑端口之间进行 VXLAN 封装,为底层 L3 网络和 VM 提供透明度。

NSX Edge 服务网关设备 用作 VXLAN 主机(VM)和非-VXLAN 主机之间的网关。非-VXLAN 主机的示例包括互联网路由器、连接到物理网络的物理服务器等。边缘网关可以翻译 VXLAN 网络段的 VXLAN ID,以允许非-VXLAN 主机与 VXLAN 网络中的主机或 VM 进行通信。

NSX 控制器,被称为中央控制平面,是一个分布式状态管理系统,用于控制覆盖传输隧道和虚拟网络,提供路由和逻辑交换功能。必须将 NSX 控制器部署为高度可用的虚拟设备集群,以配置 VXLAN 网络。VXLAN VIB 软件包必须安装在 ESXi 主机上,以支持包括 VTEP 功能在内的 VXLAN 功能。

vmknic 虚拟适配器承载控制流量,响应 DHCP 请求、ARP 请求和多播加入请求。在每个 ESXi 主机上,唯一的 IP 地址用于在创建的主机到主机隧道中承载 VXLAN 流量的 VTEP。

VXLAN 端口组 在虚拟交换机上配置,定义了通过 VTEP 和 ESXi 主机的物理网络适配器传输输入和输出 VXLAN 流量的方式。

每个 ESXi 主机上的 VTEP 配置在 vCloud 网络和安全管理器 中进行管理,这是管理虚拟化网络的中央位置。在部署带有 VMware VXLAN 支持的 VMware NSX 时,建议在 VMware vSphere 中规划分布式虚拟交换机上的 NIC Teaming 策略、故障转移设置和负载平衡。VXLAN 优缺点摘要覆盖了 VXLAN 配置的工作原理和 VMware VXLAN 实现,让我们来看看 VXLAN 的优缺点。VXLAN 优点:

虛擬交換機上的VXLAN端口組被配置為定義輸入和輸出VXLAN流量如何通過VTEP和ESXi主機的物理網絡適配器進行傳輸。

每個ESXi主機上的VTEP配置在<vCloud網絡和安全管理器中進行管理,這是管理虛擬化網絡的中心位置。

在部署支持VMware VXLAN的VMware vSphere中,建議您計劃分佈式虛擬交換機上的網卡隊列政策、故障切換設置和負載平衡。

VXLAN優勢和劣勢總結

通過介紹VXLAN配置和VMware VXLAN實施的工作原理,讓我們來看看VXLAN的優勢和劣勢。

VXLAN優勢:

  • 高度可擴展的網絡:可以在多個數據中心之間延伸大量的L2域。
  • 支持組播、多租戶和網絡分割。
  • 靈活性:不需要STP。L3網絡被用作底層網絡。
  • 第二層物理網絡不會過載。在將VM連接到網絡時,避免物理交換機上的MAC表溢出。
  • 集中的網絡管理。部署和配置後方便的管理。

VXLAN劣勢:

  • 部署和初始VXLAN配置複雜。
  • 用於管理覆蓋網絡的集中式控制器可能難以擴展。
  • 由於封裝技術,標頭存在開銷。
  • 底層網路必須支援組播以進行廣播、未知單播和多播(BUM)流量。

結論

VXLAN是一種網路封裝協議,適用於需要將大量VM連接到網路的虛擬化環境。VXLAN允許您通過使用MAC-in-UDP封裝技術,在現有L3物理網路上構建虛擬L2網路。VXLAN網路虛擬化是在虛擬化計算資源部署軟體定義資料中心之後的下一步。VMware NSX VXLAN支持VMware網路虛擬化,結合VMware vSphere是達成此目的的正確解決方案。這種組合在雲服務提供商中被廣泛使用,特別是在大型數據中心中。

如果您在伺服器室或資料中心使用VMware vSphere VM,請選擇像NAKIVO Backup & Replication這樣的全面VMware ESX備份解決方案。NAKIVO的解決方案提供強大功能,包括增量、應用感知備份。

NAKIVO Backup & Replication可以以多租戶模式安裝,提供備份服務和災難恢復服務。MSP客戶可以安全地備份其數據,而不會影響其他客戶。

下載NAKIVO Backup & Replication的免費版本並嘗試這個解決方案!

Source:
https://www.nakivo.com/blog/vxlan-vmware-basics/