Ip-Address

VXLAN 格式詳細資訊

  • October 19, 2017

學習 VXLAN 我在一個文件中找到:

…VTEP1 然後將包含 VNI 的 VXLAN 標頭添加到乙太網幀,將幀封裝在第 3 層 UDP 數據包中,並通過第 3 層網路將數據包路由到 VTEP2。

然後,關於封裝的標頭:

外部 MAC 報頭– 包含源 VTEP 的 MAC 地址和下一跳路由器的 MAC 地址。數據包路徑上的每個路由器都會重寫此標頭,以便源地址是路由器的 MAC 地址,目標地址是下一跳路由器的 MAC 地址。

如果數據包通過第 3 層路由,為什麼下一跳需要外部 MAC 地址,而不是典型的第 3 層 IP?

關於 VXLAN 隧道節點(非 VTEP),它們是交換機/虛擬交換機(L2)、路由器(L3)還是兩者兼而有之?

$$ edit $$ VXLAN 數據包標頭

VXLAN 是第 2 層框架,因此當一個 VTEP 想要向另一個 VTEP 發送數據時,它將創建第 2 層 VXLAN 幀(基本上是乙太網幀)。然後需要將此幀傳送到目標 VTEP 的 IP 地址。

當他們談論“外部 MAC 標頭”時,他們似乎在談論通過物理網路發送的幀。想像一下以下配置 -

VTEP Host A: 1.1.1.1 MAC AA (not going to bother with full MAC addresses)
Local Router Interface 1: 1.1.1.254 MAC BB
Local Router Interface 2: 2.2.2.254 MAC CC
VTEP Host B: 2.2.2.2 MAC DD

(上面的 IP 地址是實際的主機地址(VTEP 端點),而不是虛擬 VXLAN 介面本身的地址)。

  1. VTEP 主機 A 將 VXLAN 幀放入 UDP 數據包中,並將其定址到 2.2.2.2。[UDP PACKET 1.1.1.1->2.2.2.2[VXLAN FRAME]]
  2. 該數據包被傳遞到想要將其傳遞到 2.2.2.2 的作業系統。這不在本地網路上,因此數據包被放置在乙太網幀中,源為 AA,目標為本地路由器 BB。[ETH FRAME AA->BB[UDP PACKET[VXLAN FRAME]]]
  3. 本地路由器接收幀並提取 UDP 數據包。它看到數據包的目的地是 2.2.2.2,它可以直接訪問。它將數據包放入一個新的乙太網幀,發往 DD。[ETH FRAME CC->DD[UDP PACKET[VXLAN FRAME]]]. **
  4. 主機 B 接收定址到它的乙太網幀,提取 UDP 數據包,然後將其傳遞給系統中處理 VXLAN 數據的任何部分。

** 如果 VTEP 之間有其他路由器,則此過程將繼續。每個路由器將提取數據包並將其放入一個新幀中,其中包含自身的 src MAC 和下一跳的 dst MAC,直到到達目的地。

引用自:https://serverfault.com/questions/879106