前面讲的全是传统网络:VLAN 切广播域、STP 防环、OSPF/BGP 找路。这套东西在企业园区里够用,但到了数据中心就撑不住了。VXLAN 就是为数据中心重新设计的一套二层承载方案。

一句话概括 VXLAN:把二层帧整个装进 UDP 里,在三层网络上跑。这个"套娃"动作同时解决了三个老问题。

为什么需要 VXLAN

传统二层网络在数据中心场景下有三个绕不过去的墙:

问题传统二层的困境VXLAN 怎么解
规模802.1Q 的 VLAN ID 只有 12 位,最多 4094 个。多租户云环境里根本不够分VNI 是 24 位,约 1600 万 个
链路利用率STP 会把冗余链路阻塞掉一半,花钱买的带宽用不上VXLAN 跑在三层网络上,靠 ECMP 做多路径负载,链路全用上
虚机迁移虚机迁移要求二层可达。传统二层网络跨不了三层边界,机柜之间搬不动VXLAN 隧道跨三层建二层,虚机可以在任意机柜之间迁移

再加上第四个隐含好处:租户隔离。每个 VNI 就是一个独立的二层域,天然把不同租户隔开。

VXLAN 的几个基本概念

概念说明
VNIVXLAN Network Identifier,24 位,标识一个 VXLAN 网络。相当于 VLAN ID 的加强版
VTEPVXLAN Tunnel End Point,隧道端点。负责封装和解封装,是 VXLAN 的边界
NVENetwork Virtualization Edge,华为设备上的逻辑接口,用来配置 VTEP 的源地址和 VNI 列表
BDBridge Domain,广播域。VXLAN 里用 BD 承载 VNI,一个 BD 对应一个 VNI
VAPVirtual Access Point,虚拟接入点。业务口(二层子接口)通过 VAP 绑定到 BD

VTEP 有两种形态

报文格式:MAC in UDP

VXLAN 的本质是把完整的二层帧当成数据,装进 UDP 报文里。所以叫 MAC-in-UDP。

VXLAN 报文封装格式:外层以太头、外层 IP、UDP、VXLAN 头、内层以太帧
▲ VXLAN 的封装结构:外面套一层三层网络的头,里面装原始的以太帧
vxlan header · 8 bytes
┌────────┬────────────────┬────────────────────┬──────────┐
│ Flags  │   Reserved     │        VNI         │ Reserved │
│ 8 bit  │    24 bit      │      24 bit        │  8 bit   │
└────────┴────────────────┴────────────────────┴──────────┘
    │                        │
    │                        └── ★ 24 位 VNI,约 1600 万个隔离域
    └── I 位:置 1 表示 VNI 字段有效(正常情况都是 1)

外层 UDP 端口:目的端口 4789(标准),源端口由内层帧哈希算出
  ★ 源端口哈希 = ECMP 负载分担的关键。不同流算出不同源端口,
    底层交换机才能把它们散到不同链路上

封装后的完整结构

逐层拆开
┌──────────────────────────────────────────────────────┐
│ 外层以太头   目的 MAC = 下一跳 VTEP 的 MAC              │  ← 三层网络里逐跳变
├──────────────────────────────────────────────────────┤
│ 外层 IP      目的 IP = 对端 VTEP 的 IP                  │  ← 全程不变
│              协议号 = 17(UDP)                        │
├──────────────────────────────────────────────────────┤
│ 外层 UDP     目的端口 4789                              │
├──────────────────────────────────────────────────────┤
│ VXLAN 头     VNI = 5010                                │  ← 标识租户/广播域
├──────────────────────────────────────────────────────┤
│ 内层以太头   目的 MAC = 虚机的 MAC                       │  ← 原始帧,原样封装
│              源 MAC   = 虚机的 MAC                      │
├──────────────────────────────────────────────────────┤
│ 内层 IP      虚机的原始 IP 报文                          │
└──────────────────────────────────────────────────────┘

★ 内层帧在隧道里【完全透明】,中间设备看不到虚机的 MAC/IP
★ 只有两端 VTEP 才知道"里面是什么"

为什么要用 UDP 而不是直接 IP 封装?两个原因:① UDP 源端口可以做哈希,让 ECMP 能把不同流分散到不同链路;② 现成的 NAT / 防火墙能处理 UDP,穿透性好。

隧道是怎么建起来的

VTEP 之间要建隧道,得先知道"对端 VTEP 的 IP 是多少"。三种方式:

方式怎么做优缺点
静态手工配置在 NVE 接口下用 head-end peer-list 手工列出所有对端 VTEP简单直观,但 N² 条配置,超过 10 台就没法维护
BGP EVPN 动态建立用 MP-BGP 的 EVPN 地址族自动发现对端 VTEP 和 MAC/IP主流方案。自动发现、支持多归属、可跨数据中心
SDN 控制器下发控制器统一编排,把 VTEP 和 VNI 映射推给设备适合云平台,但强依赖控制器

静态方式的配置长这样(小规模或实验用):

huawei · 静态 VXLAN
# ① 配 BD 和 VNI 的映射
bridge-domain 10
 vxlan vni 5010

# ② 配 NVE(VTEP 逻辑接口)
interface Nve1
 source 1.1.1.1                      # 本端 VTEP 地址(一般是 Loopback)
 vni 5010 head-end peer-list 2.2.2.2 # 对端 VTEP 地址

# ③ 业务口绑定到 BD
interface GigabitEthernet0/0/1.10 mode l2
 encapsulation dot1q vid 10
 bridge-domain 10

# ④ 承载网:VTEP 之间要三层可达(跑 OSPF/IS-IS + BGP)

网络架构:集中式 vs 分布式网关

VXLAN 只管二层。虚机之间跨网段通信需要三层网关,而网关放在哪,决定了整个架构:

集中式网关分布式网关
网关位置只在 一对核心交换机上(或防火墙/专用网关设备)每台 Leaf 交换机上都有
跨网段流量全部绕到核心再回来("发夹弯")本地 Leaf 直接转发,不用绕核心
转发效率低,核心压力大高,路径最短
横向流量受核心带宽限制可以水平扩展
配置复杂度简单,网关集中好管理复杂,每台 Leaf 都要配
适用小规模、东西向流量不大大规模数据中心的主流

分布式网关里有两个关键概念,下一篇讲 EVPN 时会展开:

VXLAN 和传统 VLAN 的对比

VLANVXLAN
标识长度12 位 → 4094 个24 位 → 约 1600 万
承载在什么之上物理链路(二层)UDP over IP(三层)
跨三层不行可以(这是核心价值)
环路处理STP 阻塞链路靠三层路由 + ECMP,无阻塞
MAC 表规模要求一般很大(多租户 + 虚机,MAC 数量爆炸)
标准802.1QRFC 7348

验证与排错

huawei
display vxlan vni                     # ★ VNI 列表与状态
display vxlan tunnel                  # ★ 隧道状态(up/down)
display bridge-domain                 # BD 与 VNI 的映射
display interface nve 1               # NVE 接口信息
display vxlan vni 5010 verbose        # 某个 VNI 的详细信息

# 二层表项
display mac-address bridge-domain 10  # BD 里的 MAC 表
display mac-address vxlan             # VXLAN 相关 MAC

# 承载网
display ip routing-table              # VTEP 之间三层可达吗
ping -a 1.1.1.1 2.2.2.2               # 用 VTEP 源地址 ping 对端

排错顺序:

一句话总结:VXLAN = 把二层帧装进 UDP,用 24 位 VNI 替代 12 位 VLAN,在三层网络上跑出二层语义。它解决了规模、链路利用率、虚机迁移三个问题。隧道建立首选 BGP EVPN 动态方案,网关部署首选分布式——这两件事下一篇详细讲。

📌 本篇整理自 2024–2025 的「数通」学习笔记(HCIE-Datacom 方向)

合并了原始笔记中「VXLAN / vxlan 基本概念 / vxlan 网络架构 / vxlan 报文 / vxlan 隧道建立方式 / VXLAN&mpls」几页。
原笔记以胶片截图为主(报文格式图、组网图),本文把封装结构重画成了图,并补齐了 ECMP 源端口哈希、L2VNI/L3VNI 等细节。
配置命令保留华为 VRP 原样。