VMware VXLAN 詳解:優勢與實作
網路需求逐年持續增長。現代網路被期望能提供高速、低延遲及高擴展性。 另一項常見需求則是對網路區段進行安全的隔離。資料中心的虛擬化也增加了對實體網路基礎架構的需求,而傳統的網路架構在面對潛在的網路問題時,便顯得不合適。
網路虛擬化用於抽象化底層的實體網路,並建立可擴展的邏輯網路。其運作方式類似於運算資源(例如處理器、記憶體和儲存裝置)的虛擬化,這使得我們能夠在抽象層面上管理這些資源。
什麼是 VXLAN?
Virtual Extensible Local Area Network (VXLAN) 是一種覆蓋網路技術。它是一種封裝協定,可透過底層的第 3 層(L3)網路提供第 2 層(L2)連線的隧道傳輸(下方有一張包含七項內容的表格) OSI (層)。覆蓋網路(overlay network)是指建構在任何現有網路之上的網路。底層網路(underlay network)則是現有網路所使用的實體基礎設施,覆蓋網路即建構於此基礎設施之上。
底層物理網路的組成部分包括實體硬體、纜線及網路協定。 Border Gateway Protocol (BGP) 以及 Open Shortest Path First (OSPF) 是第 3 層(L3)路由中廣泛使用的協定。覆蓋網路的常見例子包括各類虛擬私人網路(VPN), IPSec 隧道,以及點對點網路。
VXLAN 規格
VXLAN 由以下定義: RFC 7348 的標準 Internet Engineering Task Force (IETF). 該項的標準化規格為 VXLAN 該協定是由思科(Cisco)、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, 透過以下方式,網路在 L2 層上實現邏輯隔離: 802.1Q 標籤。為進行網路分段,需對實體網路設備進行配置。
VXLAN 是……的擴展類比形式 VLAN. 兩者之間的主要差異包括: VLAN 以及 VXLAN 包括:
- 由 VMware 支援的最大數目虛擬網路
VXLAN超過 1,600 萬(2^24= 16,777,216) 這是因為網路識別碼的長度為 24 位元。 VXLAN以及VLAN採用不同的封裝技術。VXLAN與……不同,它不需要中繼傳輸,VLAN,以及,STP並非必要。無需使用VLAN在使用 VXLAN 網路識別碼時,會使用這些標籤。- 對於一個……,無需重新配置實體網路設備
VXLAN設定.
- 在大型分散式實體基礎架構中,管理大型 L2 網路會變得相當困難。相較之下,管理 L3 網路則更為便利。
VXLAN在現有 L3 網路之上運作的覆蓋網路,可讓系統管理員在將 L2 網路虛擬化時,避免傳統 L2 網路常見的缺點,方法是透過VXLAN且不取決於實際網路的物理邊界。
讓我們回顧一下 7 層模型 OSI 建立模型並探討其運作原理 VXLAN 本篇部落格文章的下一節將探討網路。
7 層 Open System Interconnection (OSI) 型號:
| 圖層 | 通訊協定資料單位 | 通訊協定的範例 | |
| 7 | 應用 | Data | HTTP、FTP、SSH、DNS |
| 6 | 簡報 | Data | SSL、IMAP |
| 5 | 會期 | Data | 各種 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 連結.
VNI 或 VNID 是 VXLAN 網路識別碼。此 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 顯示網路資訊。
外部乙太網路 (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是 a 的長度UDPHeader PlusUDP資料。UDP checksum應設定為0x0000因為VXLAN. 在這種情況下,接收端的 VTEP 會跳過校驗和驗證,並避免在校驗和不正確時丟棄幀(若幀被丟棄,封裝資料將無法解封裝)。
VXLAN 標頭
- VXLAN 標誌是不同的標誌。該
Iflag 被設定為 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 主機連接到實體網路中的不同子網。
第一階段
VM1 想要將一個封包傳送給 VM2。讓我們來探討這種情況下會發生什麼事。
- VM1 傳送
ARP封包以請求該MAC主機的 IP 位址192.168.5.22. VTEP1,其位置位於第一個 ESXi 主機上,封裝了ARP將該封包封裝進與該虛擬網路相關聯的多播封包中,並使用VNI 121.- 其他
VTEPs收到多播封包後,新增關聯VTEP1-VM1對他們的VXLAN表格。 VTEP2接收該封包後,會對此封包進行去封裝,並在與該虛擬交換機相關聯的埠群組上發送廣播VNI 121以及適當的VXLAN網路。- VM2 的位置位於其中一個埠群上
ARP封包,並傳送一則包含其MAC地址 (MACVM2 的位址)。 VTEP2, 在第二台 ESXi 主機上,建立一個單播封包,並將ARP將 VM2 的回應寫入此封包中,並透過 IP 路由將該封包發送回VTEP1.VTEP1將接收到的封包去封裝,並將去封裝後的資料傳遞給 VM1。
空格
第二階段
現在 VM1 已經知道 MAC VM2 的位址,並能向 VM2 傳送封包,如上圖所示的虛擬機器間通訊示意圖。
- VM1 從其 IP 位址(192.168.5.21)將 IP 封包傳送至 VM2 的 IP 位址(192.168.5.22)。
VTEP1將此封包封裝起來,並新增以下標頭:- A
VXLAN標題為VNI=121 - 一項標準
UDP標題為VXLANport (UDP 4789) - 一個標準的 IP 標頭,其中包含目的地的 IP 位址為
VTEP以及0x011值用來定義該UDP用於封裝的通訊協定 - 一項標準
MAC標題為MAC下一個 L2 裝置(下一跳)的位址。在此範例中,這是具有該MAC地址00:10:11:AE:33:A1. 此路由器負責執行路由,以將封包從VTEP1至VTEP2.
- A
VTEP2收到該封包,因為該MAC地址為VTEP2被定義為目的地址。VTEP2對封包進行解封裝,並偵測到其中有VXLAN資料 (VTEP2識別出該UDP港口4789然後識別出結轉的VXLAN標頭)。VTEP驗證目標 VM2 是否被允許接收來自VNI 121並且已連接到正確的埠組。- 完成去封裝後,內層的 IP 封包會傳送至虛擬
NIC連接至該埠群組的 VM2,其設定如下:VNI 121. - VM2 接收內層封包,並將此封包視為一般 IP 封包進行處理。
- 資料封包同樣是以相同的方式從 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 vSwitches 或 DVS) 搭配 VXLAN 用於網路抽象化。使用標準的 vSwitch 不建議這樣做。
VXLAN 封裝是在虛擬機(VM)的虛擬介面控制器(NIC) 以及分散式 vSwitch 的邏輯埠,該埠可為底層的 L3 網路及虛擬機器提供透明性。
NSX Edge 服務閘道器裝置 充當……之間的樞紐 VXLAN 主機(虛擬機器)與非—VXLAN 主機。非——的例子包括:VXLAN 主機包括網際網路路由器、連接至實體網路的實體伺服器等。邊緣閘道器能夠進行轉換 VXLAN 以下項目的 ID: VXLAN 網路區段,以允許非-VXLAN 主機與位於 VXLAN 網路。
NSX Manager 必須安裝在 vSphere 環境中由 vCenter 管理的 ESXi 主機上。 NSX Manager 這是一款用於配置和管理 VMware NSX 組件(包括控制器、邊緣服務閘道器及邏輯交換機)的 VA (virtual appliance)。 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 NSX 與 VMware VXLAN 支援。
摘要 VXLAN 優點與缺點
基於其運作原理 VXLAN 設定與 VMware VXLAN 既然已介紹了實作方式,接下來讓我們來看看 VXLAN.
VXLAN 優點:
- 高度可擴展的網路:擁有大量可橫跨多個資料中心的 L2 域。
- 支援多播、多租戶及網路分段。
- 靈活性:
STP不需要。L3 網路用作底層網路。 - 第二層的實體網路不會過載。避免
MAC將虛擬機器連接到網路時,實體交換機上的表會發生溢出。 - 集中式網路管理。部署與設定完成後,管理起來十分方便。
VXLAN 缺點:
- 部署與初始設定
VXLAN設定很複雜。 - 用於管理覆蓋網路的集中式控制器,可能難以進行縮放。
- 由於封裝技術的緣故,標頭會產生額外的開銷。
- 底層網路必須支援廣播、未知單播及多播的多播功能(
BUM) 流量。
結論
VXLAN 這是一種網路封裝協定,適用於必須將大量虛擬機器(VM)連接到網路的虛擬化環境。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 並試試這個解決方案吧!




