VMware VXLAN 詳解:優勢與實作

網路需求逐年持續增長。現代網路被期望能提供高速、低延遲及高擴展性。 另一項常見需求是對網路區段進行安全的隔離。資料中心的虛擬化也增加了對實體網路基礎架構的需求,而傳統的網路架構在面對潛在的網路問題時,已顯得不合時宜。

網路虛擬化用於抽象化底層的實體網路,並建立可擴展的邏輯網路。其運作方式類似於運算資源(例如處理器、記憶體和儲存裝置)的虛擬化,這使得我們能夠在抽象層面上管理這些資源。

NAKIVO for VMware vSphere 備份

NAKIVO for VMware vSphere 備份

為 VMware vSphere 虛擬機器提供全面資料保護及快速還原選項。支援本地、異地及雲端的備份目標。具備防勒索軟體功能。

什麼是 VXLAN?

Virtual Extensible Local Area Network (VXLAN) 是一種覆蓋網路技術。它是一種封裝協定,可在底層第三層(L3)網路之上建立第二層(L2)連線的隧道(下方有一張包含七項的表格) OSI (層)。覆蓋網路是在任何現有網路之上建立的網路。底層網路則是現有網路所使用的實體基礎設施,覆蓋網路即建構於此基礎設施之上。

底層物理網路的組成部分包括實體硬體、纜線及網路協定。 Border Gateway Protocol (BGP) 以及 Open Shortest Path First (OSPF) 是第 3 層路由中廣泛使用的協定。覆蓋網路的常見例子包括各種虛擬私人網路(VPN), IPSec 隧道及點對點網路。

VXLAN 規格

VXLANRFC 7348 的標準 Internet Engineering Task Force (IETF). 該的標準化規格 VXLAN 該協定是由思科、VMware 和 Arista 共同開發的,但此標準並未綁定特定供應商。 VXLAN 此功能由 VMware 的虛擬化軟體等解決方案,以及各家供應商所生產的路由器等硬體設備所支援。

理解 VXLAN

VXLAN 允許您建立高度可擴展的邏輯網路,並支援多租戶廣播域,同時能跨越實體網路邊界。這些邏輯網路即為覆蓋網路。當您將虛擬網路與實體網路解耦時,儘管初始設定較為複雜,卻能簡化大型網路的管理。當 VXLAN 若採用此方法,您即可重新設計覆蓋網路,而無需重新配置底層(實體)網路。您可以使用兩個或更多底層 L3 網路來部署一個虛擬的覆蓋 L2 網路域。該 Leaf-Spine network 拓撲結構是配置底層網路的理想解決方案 VXLAN 大型資料中心的覆蓋網路。

哪裡可以 VXLAN 被使用?

最常見的用途是 VXLAN 旨在於部署軟體定義資料中心時,利用現有的實體與邏輯網路基礎架構建立虛擬網路。在軟體定義資料中心中,透過抽象化處理底層實體基礎架構來實現虛擬化(SDDC). VXLAN 此外,VMware 虛擬化解決方案可讓您建置一個完全虛擬化的資料中心,其中網路與運算資源皆已虛擬化。用於此目的的兩款軟體產品是 VMware vSphere 以及 VMware NSX. VMware 網路虛擬化解決方案共有兩個版本: NSX-V 以及 NSX-T.

透過 VXLAN, 在 VMware vSphere 中運行的虛擬機器 (VM) 的位置可能位於不同叢集中的不同 ESXi 主機上,甚至位於不同的資料中心,但它們仍可連接到所需的邏輯網路並相互通訊。 VXLAN 邏輯網路是從底層的實體網路中抽象出來的,而虛擬機器則是從底層的硬體中抽象出來的。

沒有 VXLAN, 對操作方面有更高的要求 Media Access Control (MAC) 運行虛擬機器並連接到網路的資料中心中,實體網路設備上的位址。許多現代資料中心(包括配備虛擬化伺服器的資料中心)採用葉脊式網路拓撲,以及 top-of-rack (ToR) 連線方案。當虛擬機器使用實體網路時,即使搭配虛擬網路(VLAN) 在第二層上隔離網路區段,該 ToR 交換器(機架伺服器連接至該交換器)必須與 MAC 實體網路裝置與虛擬機器網路介面的位址,以提供第二層連線能力(而非僅學習其中一個) MAC (每個連結對應一個網址)。 MAC 位址表變得過大,導致交換機過載,並使容量需求大幅增加 MAC 與非虛擬化環境相比,位址表。當發生位址表溢出時,交換器將無法學習新的 MAC 發生網址及網路問題。

傳統 VLAN, spanning tree protocol (STP),以及 Equal-Cost Multipath (ECMP) 無法在虛擬化資料中心中完美解決所有網路問題。使用覆蓋網路與 VXLAN 有助於解決此問題。VM MAC 這些位址僅在虛擬覆蓋網路中運作(VXLAN 網路),且不會傳送至底層網路的實體交換器。此外, VLANs 這些用於 L2 網域網路隔離,並在多租戶環境中提供比 VLAN. 讓我們來比較一下 VXLAN vs VLAN 以了解兩者之間的主要差異。

VXLAN vs VLAN 比較

這些網路協定之間的主要差異在於 VLAN 在進行幀封裝時,採用第二層底層網路,而 VXLAN 為此目的,它使用第 3 層。對於 VXLAN.

VLAN 已記錄於 IEEE 802.1Q 標準。最大數量為 VLANs 由於段識別碼為 12 位元,因此支援的值為 4094: 2^12=4096, VLAN IDs 0 – 4095, 預留 2 席 VLAN IDs (0 和 4095 為保留值)。如今,對於大型 雲端供應商. 使用時 VLAN 標記、大小 Ethernet 幀大小從 1518 位元組增加至 1522 位元組。當使用 VLAN, 透過使用 802.1Q 標籤。為進行網路分段,需對實體網路設備進行配置。

VXLAN vs VLAN – a standard Ethernet frame and VLAN Ethernet frame

VXLAN 是……的擴展類比 VLAN. 兩者之間的主要差異包括 VLAN 以及 VXLAN 包括:

  • 由 VMware 支援的最大數目虛擬網路 VXLAN 超過 1,600 萬(2^24= 16,777,216) 這是因為網路識別碼的長度為 24 位元。
  • VXLAN 以及 VLAN 採用不同的封裝技術。 VXLAN 與……不同,它不需要中繼傳輸 VLAN,以及, STP 並非需求。無需使用 VLAN 在使用 VXLAN 網路識別碼時,會使用這些標籤。
  • 對於一個 VXLAN 設定。

VXLAN vs VLAN – comparing a VLAN frame and an encapsulated VXLAN frame

  • 在大型分散式實體基礎架構中,管理大型 L2 網路變得相當困難。相較之下,管理 L3 網路則更加便利。 VXLAN 在現有 L3 網路之上運作的覆蓋網路,讓管理員能夠避免傳統 L2 網路在虛擬化時所帶來的常見缺點,這透過 VXLAN 且不受實體網路物理邊界的限制。

讓我們回顧一下七層模型 OSI 建立模型並探討其運作原理 VXLAN 本篇部落格文章的下一節將探討網路。

7 層 Open System Interconnection (OSI) 型號:

協定資料單元 通訊協定的範例
7 應用 資料 HTTP、FTP、SSH、DNS
6 簡報 資料 SSL、IMAP
5 會期 資料 各種 API、套接字
4 運輸 分段、數據包 TCP、UDP
3 網路 封包 IP、IPSec、ICMP、IGMP
2 資料鏈路 框架 乙太網路、PPP、FDDI
1 物理 位元 有線、光纖、無線

空格

如何 VXLAN 工作?

VXLAN 封裝內部 L2 Ethernet 幀轉為 L3 IP 透過使用 UDP 資料包,並透過現有的 IP 網路傳輸它們。該 VXLAN 封裝類型稱為 MAC-in-UDP,這是對這項技術更精確的稱謂。

為什麼 UDP 使用?為什麼封裝 VXLAN 將幀直接封裝到外部 IP 封包中嗎?L3 網路在管理上相當方便,而且正如我們先前提到的,L3 網路是 VXLAN 網路(即覆蓋網路)。

VXLAN 長度為 8 位元的標頭被加入原始資料中 Ethernet 框架(內框)。這 VXLAN 需要這個標頭,以便另一端的交換器能夠識別該 VXLAN Network Identifier (VNI) 該框架所屬的。我們大多數人大概都希望將原始框架與 VXLAN 將標頭封裝進 IP 封包中,類似於 Generic Routing Encapsulation (GRE) 即 L3 隧道協議。

其中有 Protocol IP 標頭中的該欄位(見下圖)用於定義更高層協定的資料(請參閱附有 OSI (如上圖所示)並封裝至當前的 IP 封包中。 GRE 其協定編號為 47,該編號定義於 Protocol 外部 IP 封包的字段。 VXLAN 沒有對應的協定編號,且若將此類封裝直接封裝到外部 IP 封包中,將會引發問題。因此, VXLAN 是透過使用 UDP 隨後,它會被封裝成 IP 封包。 GPRS Tunneling Protocol (GTP) 採用了類似的方法。該 VXLAN UDP 埠號是 4789. 這個 VXLAN 應將端口號用作目的地 UDP 預設端口。

您可能會想: TCP 更可靠。為什麼 UDP 已使用,而非 TCP? TCP 具備一種機制,用於檢查資料是否已成功接收並傳輸,且無資料遺失。若發生資料遺失,系統將重新傳送該資料。 UDP 沒有這些機制。如果因連線問題導致資料遺失,這些資料將不會被重新傳送。 UDP 不像……那樣使用工作階段和超時設定 TCP.

倘若我們要使用 TCP 超過 TCP,若封包在底層連線中遺失,則在覆蓋層連線中也會遺失。封包重傳將在底層與覆蓋層中啟動 TCP 會話,這會導致網路效能下降。事實上, UDP 不會啟動點對點(P2P) 會話在以下情況下具有優勢: VXLAN 封裝。請注意,點對多點(P2MP) 無法使用 TCP 連結。

VNIVNIDVXLAN 網路識別碼。24 位元 VXLAN 使用網路識別碼(亦稱為區段 ID),它定義了支援的最大數量為 VXLAN 網路。

VXLAN Tunnel Endpoint (VTEP) 是一個負責 L2 幀封裝與解封裝的物件。VTEP 相當於一個 Provider Edge (PE) Router,這是一個用於服務聚合的節點。該 VTEP 可以作為硬體閘道器或虛擬化解決方案來實現,例如 VMware NSX (該軟體 VTEP). VXLAN 隧道起點與終點位於 VXLAN Tunnel Endpoints.

連接至同一台 VXLAN 各個區段之間可以相互通訊。如果主機 1(VM1)的位置是在後面 VTEP A 而主機 2(VM2)的位置是在後面 VTEP B, 兩台主機(虛擬機器)都必須具備一個連接到同一網路的網路介面 VNI (類似於主機必須使用相同的 VLAN ID 在使用時,其網路設定中 VLAN).

VXLAN Frame Encapsulation

現在是時候來探討一個 VXLAN 詳細說明框架封裝。在下圖中,您可以看到一個 VXLAN 封裝幀。外層 Ethernet 標題,外層 IP 標題, UDP 標題, VXLAN 標題、以及內層 Ethernet 用於一個 VXLAN 顯示網路資訊。

VXLAN explained – the frame encapsulation scheme

外部乙太網路 (MAC) 頁首

  • Outer Destination MAC 是目的地的 MAC 位址 VTEP 如果 VTEP 位於最近的路由器上,或者 MAC 路由器的位址若 VTEP 路由器後方。
  • Outer source MAC 是來源的 MAC 位址 VTEP.
  • VLAN Type (optional) 是可選欄位。 0x8100 指出一個框架是 VLAN 已標記。
  • Outer 802.1 VLAN Tag 是用於定義一個 VLAN 標籤(非必填) VXLAN (網路)。
  • Ether type 定義此幀所攜帶封包的類型。 0x800 被稱為 IPv4 封包。

外部 IP 標頭

  • IP Header misc. data 包含版本、標頭長度、服務類型及其他資料。
  • IP protocol. 此欄位用於定義 IP 封包所採用的底層網路協定,該協定負責傳輸資料。 0x11 定義 UDP.
  • Header check sum 僅用於確保 IP 標頭的資料完整性。
  • Outer source IP 是來源的 IP 位址 VTEP.
  • Outer destination IP 是目標的 IP 位址 VTEP.

UDP 標頭

  • UDP source port 是由正在傳輸資料的 VTEP 所設定的埠。
  • UDP destination port 這是 VXLAN IANA 指派的埠號 (4789)。
  • UDP length 是長度為 UDP Header Plus UDP 資料。
  • UDP checksum 應設定為 0x0000 因為 VXLAN. 在這種情況下,接收端的 VTEP 會跳過校驗和驗證,並避免在校驗和不正確時丟棄幀(若幀被丟棄,封裝資料將不會被解封裝)。

VXLAN 標頭

  • VXLAN 標誌是不同的標誌。該 I flag 位元設為 1。其餘 7 個位元現已保留,必須設為 0。
  • Reserved – 尚未使用且設定為 0 的保留欄位。
  • VNI 是定義該項目的 24 位元欄位 VNI.
  • Frame Check Sequence (FCS) 這是用於偵測和控制錯誤的 4 位元組欄位。

VXLAN 間接費用

  • 讓我們計算一下使用 VXLAN:

8 位元組 (VXLAN header) + 8 位元組 (UDP header) + 20 位元組 (IPv4 header) + 14 位元組 (outer L2 header) = 50 位元組(若 VLAN (封裝在內的框架中不使用標籤)。如果客戶端使用 VLAN 加上標籤後,必須增加 4 位元組,總共為 54 位元組。

  • 讓我們計算實體網路中所有外框的總大小:

1514(內部幀)+ 4(內部 VLAN 標籤)+ 50(VXLAN) + 4 (VXLAN Transport VLAN Tag) = 1572 位元組

  • 如果 IPv6 若使用此功能,IP 標頭大小將增加 20 位元組:

1514(內部幀)+ 4(內部 VLAN 標籤)+ 70(IPv6 VXLAN)+ 4(VXLAN Transport VLAN Tag) = 1592 位元組

  • 可選擇性地額外增加 8 位元組,用於 IPv6. 在這種情況下,外框大小為 1600 位元組。
  • 您可以更改 Maximum Transmission Unit (MTU) 請據此調整交換機設定中的數值(例如 50、54、70 或 74 位元組)。支援 Jumbo 在此情況下,需要使用幀(大小超過標準 1518 位元組的幀)。

建議您在使用虛擬環境時增加幀大小 VXLAN 實際網路中的網路。VMware 建議您設定 MTU 在分散式虛擬交換機上設定為 1600 位元組或更多。

:Ethernet 畫框尺寸與 MTU 是框架的重要特徵。 MTU 表示封裝至 Ethernet 幀(IP 封包大小,其預設值為 1500 位元組,當 Jumbo (不使用框架)。該 Ethernet 幀大小由有效載荷大小組成, Ethernet 標頭大小,以及 FCS.

資料傳輸範例 VXLAN

讓我們以在網路中傳輸資料為例,其中 VMware VXLAN 為了理解 VXLAN 更清楚地了解其設定與運作原理。

假設我們在 VMware vSphere 環境中有兩台 ESXi 主機,且使用 VMware NSX 已設定完成。VM1 正在第一個 ESXi 主機上執行,而 VM2 則在第二個 ESXi 主機上執行。這兩台虛擬機的虛擬網路介面卡皆連接到同一個 VXLAN 與……建立聯繫 VNI 121. 這些 ESXi 主機連接到實體網路中的不同子網。

VMware VXLAN – the working principle

第一階段

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

  1. VM1 傳送 ARP 封包以請求 MAC 主機的 IP 位址 192.168.5.22.
  2. VTEP1,其位置位於第一個 ESXi 主機上,封裝了 ARP 將封包封裝進與該虛擬網路相關的多播封包中,並 VNI 121.
  3. 其他 VTEPs 收到多播封包後,新增關聯 VTEP1-VM1 對他們的 VXLAN 表格。
  4. VTEP2 接收該封包,對此封包進行解封裝,並在與該虛擬交換機相關聯的埠群組上發送廣播 VNI 121 以及適當的 VXLAN 網路。
  5. VM2 的位置位於其中一個埠群上,它接收到了 ARP 封包,並傳送一則包含其 MAC 地址 (MAC VM2 的位址)。
  6. VTEP2在第二台 ESXi 主機上,建立一個單播封包,並將 ARP 將 VM2 的回應寫入此封包,並透過 IP 路由將封包傳回 VTEP1.
  7. VTEP1 將接收到的封包進行解封裝,並將解封裝後的資料傳遞給 VM1。

空格

第二階段

現在 VM1 已經知道 MAC VM2 的位址,並能將封包傳送至 VM2,如上圖所示的 VM 對 VM 通訊示意圖。

  1. VM1 從其 IP 位址 (192.168.5.21) 將 IP 封包傳送至 VM2 的 IP 位址 (192.168.5.22)。
  2. VTEP1 將此封包封裝起來並加入標頭:
    1. A VXLAN 標題為 VNI=121
    2. 一項標準 UDP 標題為 VXLAN 端口 (UDP 4789)
    3. 一個標準的 IP 標頭,其中包含 VTEP 以及 0x011 值用來定義 UDP 用於封裝的協定
    4. 一項標準 MAC 標題為 MAC 下一個 L2 裝置(下一跳)的位址。在此範例中,這是具有該 MAC 地址 00:10:11:AE:33:A1. 此路由器負責執行路由,以將封包從 VTEP1VTEP2.
  3. VTEP2 收到該封包,因為該 MAC 地址為 VTEP2 被定義為目的地址。
  4. VTEP2 解封裝該封包並偵測到其中有 VXLAN 資料 (VTEP2 識別 UDP 港口 4789 然後識別出結轉的 VXLAN (標頭)。
  5. VTEP 確認目標 VM2 是否被允許接收來自 VNI 121 並已連接到正確的埠組。
  6. 去封裝後,內層的 IP 封包會傳送至虛擬 NIC 連接至該埠群組的 VM2 VNI 121.
  7. VM2 接收內層封包,並將此封包視為一般 IP 封包進行處理。
  8. 資料封包同樣是以相同的方式從 VM2 傳輸至 VM1。

多播支援

VXLAN 覆蓋網路支援網路中的單播、廣播及多播通訊模式。

  • 單播通訊 用於在網路中的兩台主機之間傳輸資料。遠端 VTEPs 通常是靜態定義的。
  • 廣播通訊 這是一種由單一主機將資料傳送給網路中所有主機的模式。
  • 多播通訊 這是一種"一對多"的通訊類型。資料會傳送給網路中選定的主機,而非所有主機。多播技術的常見應用例子包括線上影片串流。 Internet Group Management Protocol (IGMP) 用於多播通訊。 IGMP 窺探 L2 交換機並 IGMP Querier 必須在路由器(L3)上啟用。

請注意,使用 VXLAN 對於多播流量,這是由於 MAC-in-UDP 封裝方法(如上所述),這使得能夠建立 P2MP 連線。在多播模式下,遠端 VTEPs 系統會自動偵測到這些鄰居,無需手動定義所有鄰居。您可以定義一個與 VNI,然後 VTEP 開始聆聽這個團體。其他人的行為 VTEPs 情況類似,只要 VNI 設定正確,牠們就會開始聽從群體的指示。

VMware VXLAN 元件

VMware vSphere,包含 ESXi 主機、vCenter 以及 NSX,是配置網路虛擬化所需的軟體套件,並支援 VXLAN. 讓我們來解釋一下 VMware VXLAN 組件及其在部署中的作用 VXLAN 網路。

NSX-V 這是一套用於在資料中心中透過 VMware vSphere 建置虛擬網路的解決方案。

在 VMware vSphere 中搭配 VMware NSX-V, 分散式虛擬交換器 (distributed vSwitchesDVS) 搭配 VXLAN 用於網路抽象化。使用標準 vSwitch 不建議這樣做。

VXLAN 封裝是在虛擬機的虛擬介面控制器之間進行的(NIC) 以及分散式 vSwitch 的邏輯埠,可為底層的 L3 網路和虛擬機器提供透明運作。

NSX Edge 服務閘道器裝置 充當……之間的樞紐 VXLAN 主機(虛擬機器)與非-VXLAN 主機。非——的例子VXLAN 主機包括網際網路路由器、連接至實體網路的實體伺服器等。邊緣閘道器可以進行轉換 VXLAN ID 為 VXLAN 網路區段,以允許非-VXLAN 主機與位於 VXLAN 網路。

VMware network virtualization - an example of VMware VXLAN network communication scheme

NSX Manager 必須安裝在 vSphere 環境中由 vCenter 管理的 ESXi 主機上。 NSX Manager 這是一款 VA (virtual appliance),用於配置和管理 VMware NSX 組件,包括控制器、邊緣服務閘道器以及邏輯交換機。 NSX Manager 提供圖形使用者介面(網頁介面),以提升使用者體驗。安裝 NSX Manager 後,系統會將一個外掛程式注入 VMware vSphere Client。建議您部署 NSX Manager 在一個叢集中與 HA 以及 DRS 已啟用特點。一個實例的 NSX Manager 用於支援單一 vCenter 環境。

NSX Controller,稱為中央控制平面,是一種用於控制覆蓋傳輸隧道和虛擬網路的分散式狀態管理系統,提供路由和邏輯交換功能。 NSX Controller 必須進行設定 VXLAN 網路,並必須以高可用性VA叢集的形式部署。

VXLAN VIB 必須在 ESXi 主機上安裝套件,以支援 VXLAN 功能包括 VTEP 功能性.

vmknic 虛擬適配器負責傳輸控制流量,並對 DHCP 請求, ARP 請求,以及多播加入請求。該唯一 IP 位址用於 VTEP 在每個 ESXi 主機上執行 VXLAN 在建立的主機對主機隧道中的流量。

VXLAN 埠群 在虛擬交換機上進行的設定,是用來定義輸入與輸出的 VXLAN 流量經由 VTEP 以及 ESXi 主機的實體網路介面卡。

VTEP 每個 ESXi 主機的設定皆由 vCloud Networking and Security Manager,這是管理虛擬化網路的核心平台。

建議您規劃 NIC 在 VMware vSphere 中部署時,需設定分散式虛擬交換器的叢集政策、故障移轉設定及負載平衡 VMware NSXVMware VXLAN 支援。

摘要 VXLAN 優點與缺點

根據其運作原理 VXLAN 設定與 VMware VXLAN 既然已說明了實作方式,讓我們來看看 VXLAN.

VXLAN 優點:

  • 高度可擴展的網路:可橫跨多個資料中心,並包含大量第二層網域。
  • 支援多播、多租戶及網路分段。
  • 靈活性: STP 不需要。L3 網路用作底層網路。
  • 第二層的實體網路不會過載。避免 MAC 將虛擬機器連接到網路時,實體交換機上的表會發生溢出。
  • 集中式網路管理。部署與設定完成後,管理起來十分便利。

VXLAN 缺點:

  • 部署與初始設定 VXLAN 設定很複雜。
  • 用於管理覆蓋網路的集中式控制器,可能難以進行縮放。
  • 由於封裝技術的緣故,標頭會產生額外的開銷。
  • 底層網路必須支援廣播、未知單播及多播功能(BUM) 流量。

結論

VXLAN 這是一種網路封裝協定,適用於必須將大量虛擬機器連接到網路的虛擬化環境。VXLAN讓您能夠透過使用 MAC-in-UDP 封裝技術。 VXLAN 網路虛擬化是繼運算資源虛擬化之後,邁向建置軟體定義資料中心的下一步。 VMware NSX VXLAN 支援 VMware 網路虛擬化並搭配 VMware vSphere,正是達成此目標的理想解決方案。此組合廣受雲端供應商採用,特別是在大型資料中心中。

若您在伺服器機房或資料中心中使用 VMware vSphere 虛擬機器,建議選擇全面的 VMware ESX 備份解決方案,例如 NAKIVO Backup & Replication. NAKIVO 的解決方案提供強大的特點,包括增量備份及應用程式感知備份。

NAKIVO Backup & Replication 可採用多租戶模式進行安裝,以提供"備份即服務"與"災難還原即服務"。如此一來,MSP 客戶便能安全地備份其資料,且不會影響其他客戶。

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

試試看 NAKIVO Backup & Replication

試試看 NAKIVO Backup & Replication

立即申請免費試用,全面體驗本解決方案的所有資料保護特點。15 天免費試用。無功能或容量限制。無需提供信用卡資訊。

People also read