第179篇:VXLAN 隧道与 VTEP 发现

关键词

VTEP、VXLAN 隧道、隧道发现、Head-end Replication、Ingress Replication、EVPN 控制面


一、VTEP(VXLAN Tunnel End Point)

1.1 什么是 VTEP

VTEP(VXLAN Tunnel End Point) 是 VXLAN 隧道的端点,负责:

  • 封装:将客户以太网帧封装到 VXLAN+UDP+IP 中
  • 解封装:从 VXLAN+UDP+IP 中还原客户以太网帧
  • VNI 映射:VNI ↔ Bridge Domain 的映射
  • MAC 学习:学习远端 MAC 地址与 VTEP IP 的映射
    VTEP1                        VTEP2
    
    MAC-VRF VNI 100 VTEP IP 1.1.1.1 MAC-VRF VNI 100 VTEP IP 2.2.2.2
    │ │
    └─────────── VXLAN ────────┘
    隧道

1.2 VTEP 的位置

位置 设备类型 特点
Spine 集中式 VTEP 终结所有 VXLAN,配置简单但瓶颈
Leaf 分布式 VTEP 每台 Leaf 都是 VTEP,扩展性好
软件 VTEP 虚拟交换机(OVS) 运行在 Hypervisor 上
硬件 VTEP 物理交换机 高性能硬件卸载

二、VTEP 的发现方式

VTEP 之间需要知道彼此的 IP 地址才能建立 VXLAN 隧道。发现方式主要有三种:

2.1 方式一:手动配置(Static)

# 在 VTEP1 上手动指定远端 VTEP
interface Nve1
 source 1.1.1.1
 vni 100 head-end peer-list 2.2.2.2    # 指定对端 VTEP
 vni 100 head-end peer-list 3.3.3.3

优点:无需控制面协议,简单 缺点:扩展性差,变更需手工修改

2.2 方式二:组播发现(Multicast)

利用 Underlay 组播,VTEP 自动加入组播组:

Underlay 组播配置:
  VTEP1、VTEP2 加入组播组 239.1.1.1

当 VTEP1 需要发送 BUM 到 VTEP2 时:
  源 IP = VTEP1, 目的 IP = 239.1.1.1(组播)
  PIM 组播路由将流量复制到 VTEP2

VTEP 从组播组收到 VXLAN 包后:
  学习到远端 VTEP 的存在
  建立到远端 VTEP 的单播隧道

优点:自动发现 缺点:需要 Underlay 支持组播(PIM)

2.3 方式三:EVPN 控制面(推荐)

这是当前主流的 VTEP 发现方式

VTEP1 通过 MP-BGP EVPN 发布 Type 3(IMET)路由:

  Type 3 路由(IMET):
    RD: 100:1
    Ethernet Tag ID: 0
    IP Address: 1.1.1.1(VTEP1 的隧道源 IP)
    VNI: 100

VTEP2 收到后:
  知道 VNI 100 的远端 VTEP = 1.1.1.1
  建立到 1.1.1.1 的 VXLAN 隧道

优点: - 无需组播 - 控制面感知所有 VTEP - 支持增量部署 - BGP 策略丰富


三、VXLAN 隧道建立与维护

3.1 隧道生命周期

     VTEP1                         VTEP2
       │                             │
       │ 1. EVPN Type 3 (IMET)       │
       │────────────────────────────▶│
       │                             │
       │ 2. EVPN Type 3 (IMET)       │
       │◀────────────────────────────│
       │                             │
       │ 3. 隧道表添加条目            │
       │    VTEP1 → VTEP2, VNI 100   │
       │                             │
       │ 4. MAC 学习(通过 Type 2)   │
       │◀═══════════════════════════▶│
       │                             │
       │ 5. 数据面隧道活跃            │
       │◀══════ VXLAN 数据流 ═══════▶│
       │                             │

3.2 隧道表

<VTEP1> display vxlan tunnel

Tunnel Information:
  Tunnel ID      Source        Destination    VNI    State    Type
  0x1000001      1.1.1.1       2.2.2.2        100    Up       dynamic(evpn)
  0x1000002      1.1.1.1       3.3.3.3        100    Up       dynamic(evpn)
  0x1000003      1.1.1.1       2.2.2.2        200    Up       dynamic(evpn)

3.3 隧道健康检测

VTEP 可以通过以下方式检测隧道健康:

1. BFD for VXLAN
   # 在华为设备上启用
   interface Nve1
    bfd bind peer-ip 2.2.2.2 source-ip 1.1.1.1
    bfd detect-multiplier 3
    bfd min-tx-interval 50

2. EVPN BGP KeepAlive
   如果 BGP 会话中断 → VTEP 不可达 → 隧道 Down

3. PMTU 检测
   检测隧道 MTU 是否一致

四、Head-end Replication(Head-end 复制)

4.1 概念

Head-end Replication 也叫 Ingress Replication,是 VTEP 处理 BUM 流量的方式:

VTEP1 需要广播一个帧到 VNI 100:

VTEP1 的 BUM 处理:
  查 VNI 100 的远端 VTEP 列表:
    VTEP2 (2.2.2.2)
    VTEP3 (3.3.3.3)

  VTEP1 复制帧 → 分别封装发送到 VTEP2 和 VTEP3
  VTEP1 发送 2 个 VXLAN 包(一个到 VTEP2,一个到 VTEP3)

4.2 与组播方式对比

特性 Ingress Replication 组播复制
Underlay 要求 仅 IP 路由 需要 PIM 组播
复制点 Ingress VTEP(Head-end) Underlay 核心
CPU 负载 高(VTEP 逐包复制) 低(硬件复制)
带宽效率 每条流占用 1:N 倍带宽 核心层高效
配置复杂度
适用规模 小-中

当前主流选择:Ingress Replication - EVPN 控制面自动维护远端 VTEP 列表 - 不依赖 Underlay 组播 - 在 Leaf 数量不超过 100 时性能可接受

4.3 复制数量

VNI 100 下有 N 个远端 VTEP:

Ingress Replication:
  每个 BUM 帧 → 复制 N-1 份

  如果 N=50,每个广播包在 VTEP 被复制 49 次
  如果 N=500,每个广播包被复制 499 次 → 性能压力

解决:EVPN 的 BUM 流量优化
  - ARP 抑制(减少 ARP 广播)
  - 优化 MAC 学习(减少未知单播)
  - 使用分布式网关(减少广播域范围)

五、NVE 接口配置

5.1 NVE(Network Virtual Endpoint)

NVE 是 VTEP 的逻辑接口:

interface Nve1
 description VTEP Interface for DC
 source loopback0                         # VTEP 源 IP(Loopback)
 #
 # 手动指定远端 VTEP(方式一)
 vni 100 head-end peer-list 2.2.2.2
 vni 100 head-end peer-list 3.3.3.3
 #
 # 或者通过 EVPN 自动学习(方式三,推荐)
 vni 100 head-end peer-list protocol bgp

5.2 多 VNI 的隧道复用

同一 VTEP 可以服务多个 VNI,隧道可以复用:

interface Nve1
 source loopback0
 vni 100 head-end peer-list protocol bgp    # VNI 100
 vni 200 head-end peer-list protocol bgp    # VNI 200

如果 VTEP2 同时在 VNI 100 和 VNI 200 中:
  VTEP1→VTEP2 只需要一条 VXLAN 隧道
  VNI 不同,但外层 IP 相同
  在 VXLAN 头中通过 VNI 区分

六、实际排查案例

6.1 隧道无法建立

现象:VM 无法跨 Leaf 通信

排查步骤:

1. 检查 NVE 接口状态
   <VTEP> display interface Nve1
   → NVE1 是否 Up

2. 检查 BGP EVPN 邻居
   <VTEP> display bgp evpn peer
   → BGP 会话是否 Established

3. 检查 EVPN 路由
   <VTEP> display bgp evpn all routing-table
   → Type 2 和 Type 3 路由是否正确收到

4. 检查 VXLAN 隧道
   <VTEP> display vxlan tunnel
   → 隧道是否 Up

5. 检查 Underlay 连通性
   <VTEP> ping -a 1.1.1.1 2.2.2.2
   → Loopback 之间是否可达

七、总结

知识点 核心要点
VTEP VXLAN 隧道端点,负责封装/解封装
VTEP 发现 静态、组播、EVPN(推荐)
VXLAN 隧道 VTEP 之间的逻辑隧道
Ingress Replication BUM 由 Ingress VTEP 逐包复制
NVE 接口 VTEP 的逻辑配置接口
EVPN 控制面 通过 Type 3 路由自动发现远端 VTEP

八、思考

  1. VTEP 在 VXLAN 中扮演什么角色?它的主要功能是什么?
  2. VTEP 的三种发现方式(静态、组播、EVPN)各有什么优缺点?
  3. Ingress Replication 和组播复制的区别是什么?为什么 Ingress Replication 是当前主流?
  4. BUM 流量在 Ingress Replication 模式下如何转发?
  5. 同一 VTEP 在不同 VNI 之间如何复用隧道?

下篇预告:第180篇《VXLAN underlay/overlay 架构设计》——从整体架构角度,理解 VXLAN 网络的 Underlay 和 Overlay 设计原则。