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

关键词

EVPN、MP-BGP、NVO3、MAC-VRF、EVI、Route Type、IMET 路由、IRB


一、VPLS 的不足与 EVPN 的诞生

1.1 VPLS 的核心缺陷

缺陷 说明
数据面学习 MAC MAC 地址通过泛洪学习,收敛慢、占用带宽
BUM 泛滥 广播/未知单播在所有 PW 上泛洪
多归(Multi-homing)困难 VPLS 不支持同一站点连接多台 PE
控制面较弱 LDP 信令功能单一,缺乏灵活的路由策略
MAC 表膨胀 PE 需要学习所有客户 MAC

1.2 EVPN 的解决思路

EVPN(Ethernet VPN,RFC 7432) 的核心创新是:

将 MAC 地址学习从数据面移到控制面

VPLS:数据面泛洪 → 学习 MAC
EVPN:控制面 MP-BGP 通告 MAC/IP 路由 → 安装转发表

不再需要泛洪来学习 MAC 地址!

二、EVPN 的架构

2.1 基本角色

       ┌──────────────────────┐
       │  MP-BGP(控制面)     │
       │  EVPN Route Type     │
       └──────────────────────┘
              │
┌──┴──┐ ┌──┴──┐ ┌──┴──┐
PE1 PEs PE3
│ │ │
CE1 CE2 CE3
--- --- --- --- ---
  • MAC-VRF:PE 上的 MAC 转发表实例(类似 VPLS 的 VSI)
  • EVI(EVPN Instance):标识一个 EVPN 实例(类似 VPLS 的 VSI ID)
  • BD(Bridge Domain):桥接域,一个 EVPN 实例可能对应多个 BD

2.2 EVPN 与 NVO3

NVO3(Network Virtualization Over Layer 3) 是 IETF 定义的网络虚拟化框架,EVPN 是 NVO3 的主要控制面协议。

NVO3 架构:

控制面:EVPN(MP-BGP) - MAC/IP 路由通告 - IMET 路由(广播组播域) - 多归信息 数据面:VXLAN / NVGRE / MPLS - 封装客户以太网帧 - 在 IP/MPLS 骨干上传输


三、MP-BGP EVPN 地址族

3.1 地址族定义

EVPN 使用 MP-BGP 的特定 AFI/SAFI:

AFI SAFI 说明
25(L2VPN) 70(EVPN) EVPN 地址族
bgp 100
 peer 2.2.2.2 as-number 100
 peer 2.2.2.2 connect-interface LoopBack0
 #
 l2vpn-family evpn                         # EVPN 地址族
  peer 2.2.2.2 enable
  peer 2.2.2.2 route-reflector-client     # 可选

3.2 EVPN Route Type(路由类型)

Route Type 名称 作用 编号
Type 1 Ethernet Auto-Discovery (AD) Route 多归信息通告 1
Type 2 MAC/IP Advertisement Route MAC/IP 地址通告 2
Type 3 Inclusive Multicast Ethernet Tag Route (IMET) 广播域成员通告 3
Type 4 Ethernet Segment Route ES 信息通告 4
Type 5 IP Prefix Route IP 前缀通告 5

这 5 种路由类型是 EVPN 的核心:

Type 1(EAD)  → 多归 PE 的冗余信息
Type 2(MAC/IP)→ 最重要的路由,通告 MAC 地址及其关联的 IP
Type 3(IMET) → 广播组播域,告诉其他 PE "我在这里"
Type 4(ES)   → 以太网段信息,用于 DF 选举
Type 5(IP)   → IP 前缀(IRB/网关场景)

四、Type 2:MAC/IP Advertisement Route

4.1 用途

Type 2 路由用于通告客户的 MAC 地址和可选的 IP 地址

4.2 路由格式

EVPN Type 2 路由:
┌─────────────────────────────────────────┐
│ Route Distinguisher (RD)                │
│ Ethernet Tag ID                         │
│ MAC Address Length                      │
│ MAC Address                             │
│ IP Address Length                       │
│ IP Address                              │
│ MPLS Label1(内层标签/VNI)              │
│ MPLS Label2(可选的二层标签)             │
└─────────────────────────────────────────┘

4.3 示例

PE1 从 CE1 学习到客户 MAC:

PE1 EVPN 路由(Type 2):
  RD: 100:1
  MAC: 00e0-fc00-0001
  IP: 10.1.1.1(可选,来自 ARP 或 ND)
  Label: 100(VNI/VXLAN 或 MPLS 标签)
  Next-Hop: 1.1.1.1(PE1 Loopback)

PE1 通过 MP-BGP 发送给 PE2、PE3

PE2 收到后:
  添加到 MAC-VRF 转发表
  MAC 00e0-fc00-0001 → 下一跳 PE1(隧道封装)
  → 不再需要数据面泛洪学习!

五、Type 3:IMET Route

5.1 用途

Type 3 路由用于通告 广播域(Broadcast Domain)的成员,即哪些 PE 属于同一个 EVI。

5.2 工作方式

每个 PE 为它参与的每个 EVI 发布一条 Type 3 路由:

PE1 发布:
  RD: 100:1
  Ethernet Tag ID: 0
  IP Address: 1.1.1.1(PE1 的隧道终结地址)
  MPLS Label: 100(标识 EVI)

PE2 发布:
  RD: 100:1
  Ethernet Tag ID: 0
  IP Address: 2.2.2.2
  MPLS Label: 100

所有 PE 收到所有 Type 3 路由后,就知道哪个 EVI 有哪些 PE 成员。

5.3 BUM 复制的隧道

IMET 路由用于构建 BUM 树

PE1 需要广播一个帧时:
  查 Type 3 路由 → 本 EVI 的成员列表:
    PE1(本地)
    PE2(2.2.2.2)
    PE3(3.3.3.3)
  → 向 PE2 和 PE3 各复制一份并发送

优化方式:当同一 EVI 有很多 PE 时,可以使用 Ingress 复制(每个 PE 各自复制)或 P2MP 隧道(核心复制)。


六、EVPN 数据面封装

EVPN 控制面统一,数据面支持多种封装:

封装类型 说明 协议
MPLS 传统 MPLS 标签封装 RFC 7432
VXLAN UDP 封装(数据中心主流) RFC 8365
NVGRE GRE 封装(微软方案) RFC 7637
Geneve 灵活的可扩展封装 RFC 8926

VXLAN 封装: | Eth Header | IP Header | UDP Header | VXLAN Header | 原始 以太头 | 客户 Payload | FCS | | --- | --- | --- | --- | --- | --- | --- | │ VNI(24 位) (类似 MPLS 标签)


七、EVPN 与 VPLS 的对比

对比维度 VPLS EVPN
MAC 学习 数据面泛洪 控制面 MP-BGP
信令 LDP MP-BGP
多归 不支持 支持(ESI + DF 选举)
ARP 广播 全泛洪 ARP 抑制(Proxy)
收敛 慢(依赖 MAC 表老化) 快(BGP 撤回路由)
扩展性 中等
数据面 MPLS MPLS / VXLAN / NVGRE

八、EVPN 的应用场景

场景 优势
数据中心网络 VXLAN + EVPN,Spine-Leaf 架构
数据中心互联(DCI) EVPN 多归、MAC 路由控制
MAN 承载网 EVPN 替代 VPLS
5G 承载 EVPN + SRv6
云网络 虚拟机迁移、多租户

九、总结

知识点 核心要点
EVPN 创新 MAC 学习从数据面移到 MP-BGP 控制面
5 种 Route Type Type 1-5 覆盖多归、MAC、广播域、ES、IP
Type 2 MAC/IP 地址通告(核心路由)
Type 3 IMET 路由(BUM 域成员)
数据面 MPLS / VXLAN / NVGRE 等
AFI/SAFI L2VPN(25) / EVPN(70)

十、思考

  1. EVPN 解决了 VPLS 的哪些核心缺陷?
  2. EVPN 通过哪个 BGP 地址族传输路由?
  3. EVPN Type 2 路由通告什么信息?它是如何替代 VPLS 的数据面 MAC 学习的?
  4. Type 3(IMET)路由的作用是什么?在 BUM 转发中扮演什么角色?
  5. EVPN 支持哪些数据面封装方式?VXLAN 封装中 VNI 的作用是什么?

下篇预告:第174篇《EVPN 的 MAC/IP 路由通告》——深入 Type 2 路由的细节,理解 MAC 地址和 IP 地址如何通过 MP-BGP 在 PE 之间传播。