第173篇:EVPN 基本概念:MP-BGP 与 NVO3

关键词:EVPN、以太网VPN、MP-BGP、NVO3、VXLAN、Control Plane、Data Plane

一、引言

EVPN(Ethernet VPN)是 IETF Bess 工作组定义的新一代二层 VPN 技术标准(RFC 7432)。它使用 MP-BGP 作为控制平面,取代了传统 VPLS 中基于数据平面泛洪的 MAC 地址学习机制,解决了 VPLS 在扩展性、收敛速度和多归属支持等方面的固有缺陷。EVPN 不仅是运营商 L2VPN 的演进方向,也是数据中心网络(NVO3)的核心控制平面。

二、核心概念

2.1 EVPN 与传统 VPLS 对比

维度 VPLS EVPN
控制平面 数据平面泛洪学习 MAC MP-BGP 显式分发 MAC/IP 路由
MAC 学习 泛洪未知单播,被动学习 主动 BGP 通告,精确转发
扩展性 PW 全互联 O(n²) BGP 全互联 O(n²) 但路由可聚合
多归属 不支持(或复杂实现) 原生支持 Multi-homing
收敛速度 慢(依赖 MAC 老化) 快(BGP 收敛)
三层集成 L2/L3 分离 原生支持 L2/L3 集成(IRB)

2.2 NVO3(Network Virtualization Overlays)

NVO3 是 IETF 定义的网络虚拟化 overlay 框架(RFC 7545),定义了以下组件:

组件 说明
VTEP Virtual Tunnel Endpoint,Overlay 隧道端点
VNI Virtual Network Identifier,虚拟网络标识(24位)
CES Customer Edge System,客户边缘系统
Underlay 底层 IP 网络,提供 VTEP 间可达性
Overlay 虚拟网络层,承载客户流量

2.3 EVPN 与 NVO3 的关系

关系 说明
EVPN 是 NVO3 的控制平面 EVPN 通过 MP-BGP 分发 MAC/IP 路由
NVO3 是 EVPN 的承载方式 VXLAN、MPLS 等是 overlay 封装
EVPN + VXLAN = 数据中心标准 业界最主流的二层虚拟化方案
EVPN + MPLS = 运营商标准 运营商 L2VPN 演进方向

EVPN 与 NVO3 的关系 - 图示

2.4 EVPN 路由类型(Route Type)

EVPN 定义了多种路由类型,每种使用不同的 Route Type 标识符:

Route Type 值 名称 用途
Type 1 1 ES(Ethernet Segment)路由 通告 ES 信息,用于多归属
Type 2 2 MAC/IP 可达性路由 通告 MAC 地址和 IP 绑定
Type 3 3 INUMBER(Inclusive Multicast)路由 泛洪域成员发现
Type 4 4 IMPER(IP Mobility)路由 IP 移动性
Type 5 5 IP 前缀路由 纯三层路由通告(IRB)

三、技术细节

3.1 EVPN MP-BGP 地址族

EVPN 使用 MP-BGP 的 AFI=25(Ethernet)SAFI=70(EVPN):

地址族 AFI SAFI 用途
VPNv4 1 64 IPv4 L3VPN
EVPN 25 70 Ethernet VPN

EVPN 的 NLRI 结构: - Route Type(1字节) - Route Length(1字节) - Route Type Specific Length(可变)

3.2 EVPN RD/RT 模型

属性 EVPN L3VPN
RD per-VNI(每个VNI一个RD) per-VRF
RT per-VNI per-VRF
VNI 24位虚拟网络标识 无(使用RD区分)

EVPN RD 格式:通常使用 ETag:VNI,其中 ETag 为 2 字节的以太网服务标识。

3.3 EVPN 与传统 L2VPN 的关键差异

EVPN 与传统 L2VPN 的关键差异 - 图示

四、实战配置/案例分析

4.1 华为 EVPN 基础配置

# ========== VTEP1 EVPN配置 ==========
[VTEP1] sysname EVPN-PE1

# 创建EVPN实例
[EVPN-PE1] bridge ethernet-segment 1
[EVPN-PE1-ethernet-segment-1] priority 32768
[EVPN-PE1-ethernet-segment-1] interface 100ge 1/0/1

# 配置VXLAN VNI
[EVPN-PE1] vxlan vni 1000
[EVPN-PE1-vxlan-vni-1000] description EVPN-VNI1000
[EVPN-PE1-vxlan-vni-1000] route-distinguisher 10.1.1.1:1000
[EVPN-PE1-vxlan-vni-1000] route-target both evpn 1000:1000
[EVPN-PE1-vxlan-vni-1000] vxlan-source-interface LoopBack 0
[EVPN-PE1-vxlan-vni-1000] peer 10.1.2.1 vni 1000
[EVPN-PE1-vxlan-vni-1000] peer 10.1.3.1 vni 1000

# BGP配置(EVPN地址族)
[EVPN-PE1] bgp 65001
[EVPN-PE1-bgp-65001] router-id 10.1.1.1
[EVPN-PE1-bgp-65001] peer 10.1.2.1 as-number 65001
[EVPN-PE1-bgp-65001] peer 10.1.2.1 connect-interface LoopBack 0
[EVPN-PE1-bgp-65001] address-family evpn
[EVPN-PE1-bgp-65001-evpn] peer 10.1.2.1 enable
[EVPN-PE1-bgp-65001-evpn] peer 10.1.3.1 enable

4.2 验证 EVPN 状态

# 查看EVPN BGP路由
<EVPN-PE1> display bgp evpn routing-table
  Total: 12 routes

  Type 2 (MAC/IP Reachability):
    *> 10.1.1.1:1000:00:11:22:33:44:55
       NextHop: 10.1.2.1, Ethernet-Segment: 1

    *> 10.1.1.1:1000:00:AA:BB:CC:DD:EE
       NextHop: 10.1.3.1, Ethernet-Segment: 2

# 查看VXLAN隧道
<EVPN-PE1> display vxlan tunnel
  Tunnel Source: 10.1.1.1
  Tunnel Destinations:
    10.1.2.1 (VNI: 1000)
    10.1.3.1 (VNI: 1000)

# 查看MAC地址表
<EVPN-PE1> display mac-address ethernet-segment 1
  MAC Address      Type     Interface       VNI
  0011-2233-4455   Dynamic  100ge1/0/1      1000
  00AA-BBCC-DDEE   BGP      Tunnel          1000

4.3 故障排查:EVPN MAC 路由未学习

故障场景:VTEP1 无法学习到 VTEP2 下 CE 的 MAC 地址。

# Step 1: 检查 EVPN BGP 路由
<EVPN-PE1> display bgp evpn routing-table
  # 无 Type 2 路由从 VTEP2

# Step 2: 检查 EVPN BGP 邻居
<EVPN-PE1> display bgp evpn peer
  Peer: 10.1.2.1, State: Established
  Address Family EVPN:
    Sent: Msg=5, Prefix=0
    Received: Msg=5, Prefix=0
  # BGP Session正常但未交换路由

# Step 3: 检查 VNI 配置匹配
<EVPN-PE1> display vxlan vni 1000
  RD: 10.1.1.1:1000
  RT: 1000:1000
<EVPN-PE2> display vxlan vni 1000
  RD: 10.1.2.1:1000
  RT: 2000:2000
  # 根因: RT不匹配! VTEP1使用1000:1000, VTEP2使用2000:2000

# Step 4: 修正
[EVPN-PE2-vxlan-vni-1000] route-target both evpn 1000:1000

# Step 5: 验证
<EVPN-PE1> display bgp evpn routing-table
  # Type 2 路由已出现

五、总结

项目 要点
EVPN 使用 MP-BGP 控制平面取代 VPLS 数据平面泛洪
NVO3 网络虚拟化 overlay 框架,EVPN 是其控制平面
Route Type Type 1-5 分别用于 ES、MAC/IP、泛洪域、移动性、三层
EVPN vs VPLS 精确转发取代泛洪,原生多归属,更快收敛
承载方式 VXLAN(数据中心)或 MPLS(运营商)

思考

  1. EVPN 使用 BGP 分发 MAC 路由。如果 BGP Session 中断,MAC 路由如何快速失效?EVPN 的收敛速度是否依赖于 BGP 的 HoldTime?
  2. EVPN Type 2 路由携带 MAC 地址和 IP 地址绑定。如果 CE 的 MAC 地址变更但 IP 不变,Type 2 路由如何更新?
  3. EVPN 的 VNI 是 24 位(最多 16M 个 VNI)。VNI 的全局唯一性如何保证?

下篇预告:第174篇:EVPN 的 MAC/IP 路由通告