iT邦幫忙

2026 iThome 鐵人賽

DAY 5
0

VXLAN

傳統的區域網路分割技術,虛擬區域網路(VLAN),一直是企業網路的主流標準。VLAN 透過在 IEEE 802.1Q 幀中插入一個 12 位元的 VLAN ID(VID)來達成邏輯隔離,這在當時的網路環境下足以應付大多數需求。然而,隨著雲端運算與超大規模資料中心的興起,VLAN 的局限性開始顯現,主要體現在以下幾個維度。

首先是擴展性的瓶頸。由於 12 位元的限制,VLAN 在單一網路域中最多僅能提供 4,096 個獨立網段。對於像 AWS、Azure 或現代多租戶電信雲(Telco Cloud)而言,4,000 個標籤遠遠不足以支撐成千上萬的獨立租戶或虛擬機環境。其次是二層網路的擴展困難。VLAN 的運作依賴於生成樹協定(Spanning Tree Protocol, STP)來防止環路,但 STP 會導致網路中一半的鏈路處於阻塞狀態,造成嚴重的資源浪費,且在鏈路故障時的收斂速度極慢,無法滿足現代應用對高可用性的要求 。

VXLAN 作為一種基於三層網路(Layer 3)的二層疊加(Layer 2 Overlay)技術,正是為了徹底解決上述問題而生。透過將二層乙太網幀封裝在三層 UDP 數據包中,VXLAN 不僅將標籤空間擴展到了 24 位元(支援超過 1,600 萬個網段),更讓二層網路得以跨越物理上的路由邊界進行延伸。

VXLAN 的核心機制與封裝結構**

理解 VXLAN 的運作必須從其封裝結構(Encapsulation)入手。VXLAN 採用的是一種名為MAC-in-UDP的隧道機制。其運作邏輯是在原始的二層幀外層,依次封裝 VXLAN 標頭、UDP 標頭、IP 標頭以及外層的乙太網標頭 。

數據平面與 VTEP 節點

在 VXLAN 架構中,負責進行封裝與解封裝(En-capsulation/De-capsulation)的硬體或軟體實體被稱為虛擬隧道終端點(VXLAN Tunnel Endpoint, VTEP)。VTEP 具有兩個介面:一個是面向伺服器或虛擬機的本地介面,用於接收原始的二層流量;另一個是面向核心網路的 IP 介面,用於發送封裝後的隧道數據。

當本地主機發送一個幀時,進入 VTEP 的本地介面,VTEP 會根據預先定義好的對應關係(VLAN to VNI Mapping),查找到對應的虛擬網路識別碼(Virtual Network Identifier, VNI)。隨後,VTEP 會查詢控制平面(如 BGP-EVPN)來確定遠端 VTEP 的 IP 地址,並完成封裝工作 。

VXLAN 封裝是為原始數據包增加固定的 50 位元組(或 54 位元組,若包含外層 VLAN 標籤)的額外開銷 。這一開銷對網路傳輸的效率有著直接影響,特別是在 MTU(最大傳輸單元)的規劃上。

標頭層級 長度(Bytes 關鍵欄位與功能
外層乙太網標頭 (Outer Ethernet) 14 包含外層源/目的 MAC 地址,引導包在物理交換機間跳轉。
外層 IP 標頭 (Outer IP) 20 包含 VTEP 的 IP 地址,負責三層路由轉發。
外層 UDP 標頭 (Outer UDP) 8 目的端口固定為 4789(IANA 標準);源端口通常由內部流哈希決定,以支援 ECMP。
VXLAN 標頭 (VXLAN Header) 8 包含 24 位元的 VNI(VXLAN Network Identifier)標誌位。
原始 L2 幀 (Inner Ethernet Frame) 64 - 1500+ 原始的二層數據,包含 VM 的 MAC 和 IP 資訊。

這種封裝方式外層 UDP 的源端口(Source Port)選擇。為了在三層網路中實現負載平衡,VTEP 會對原始幀的內部欄位(如五元組)進行哈希運算,並將結果映射到 UDP 源端口。這樣,物理網路中的中間交換機就可以利用現有的等價多路徑(ECMP)技術,在不拆包的情況下實現流量的負載均衡,這正是 VXLAN 比起傳統二層延伸技術更具優勢的原因之一 。

VLAN 與 VXLAN 的技術差異深度對比

比較維度 VLAN (IEEE 802.1Q) VXLAN (RFC 7348)
識別空間 12 位元 (4,096 ID) 24 位元 (1,677 萬 VNI)
運作層次 數據鏈路層 (Layer 2) 傳輸層之上 (Layer 2 Overlay over Layer 3)
防環機制 Spanning Tree Protocol (STP) - 阻塞部分鏈路 Layer 3 路由 (OSPF/BGP) - 支援 ECMP 全線速轉發
擴展性 局限於單一二層廣播域 可跨越機架、資料中心甚至地理區域擴展
封裝開銷 4 位元組 (Tagging) 50-54 位元組 (Tunneling)
管理複雜度 較低,適合中小型企業網路 較高,需配合 EVPN 等控制平面技術

Lab

本實驗拓樸如下

在 Cumulus 中可用 Single VXLAN Device,一組 VNI 代表單個設備模型。單個 VXLAN 設備具有一組屬於 VXLAN 構造的屬性。各個 VNI 包括 VLAN 到 VNI 的映射,您可以指定哪些 VLAN 映射到關聯的 VNI。單台VXLAN設備通過單台VXLAN設備替代多台傳統VXLAN設備,簡化了配置,降低了開銷。

VXLAN 路由(inter-VXLAN)提供覆蓋網路(overlay networks)中 VXLAN VNI 之間的 IP 路由。Cumulus Linux 使用內部標頭或覆蓋租戶 IP 位址來路由流量。本實驗會進行封包標頭觀察。

本實驗會透過 Static VXLAN 簡化小規模網路的配置邏輯。在實驗配置中 leaf01 與 leaf02 之間定義了明確點對點宣告,關鍵字是 head-end-replication,ˋ這表示不需要透過複雜的動態協定如 BGP、EVPN 等,而是直接告訴 leaf01: 如果收到 VLAN 10 或 20 的廣播封包,請直接複製一份給 2.2.2.2(leaf02),這就是手動映射。

在傳統網路中,如果要在兩台交換機之間延伸 10 個 VLAN,通常需要建立一個 Trunk 埠,並在中間所有的中間節點(Spine)上都允許這 10 個 VLAN 通過。實驗中 Spine01 完全不需要知道 VLAN 10 或 VLAN 20 的存在,只讓他有基本 L3 路由功能,保證 VTEP 之間的聯通。因此,無論之後在 Leaf 之間新增多少個 VLAN(VNI),只要 VTEP 之間的 L3 路由是通的,你就不需要去改動 Spine01 的配置。

本實驗可以得知以下概念:

  1. 底層 (Underlay),只要 VTEP IP 能互通,底層網路(Spine)就完成了任務。
  2. 疊加層 (Overlay),透過 VNI 將 VLAN 包裹起來,並手動指定傳送對象(HER),這在小規模實驗中是最快且最穩定的做法。

nvidia | nvue | VXLAN
nvidia | nvue | VXLAN Devices
nvidia | nvue | Static VXLAN Tunnels

下一章節進行實作~~


上一篇
NVUE - Bridge Part02
系列文
ToR 的復仇-頂架也能跑馬拉松10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言