第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) |
十、思考
- EVPN 解决了 VPLS 的哪些核心缺陷?
- EVPN 通过哪个 BGP 地址族传输路由?
- EVPN Type 2 路由通告什么信息?它是如何替代 VPLS 的数据面 MAC 学习的?
- Type 3(IMET)路由的作用是什么?在 BUM 转发中扮演什么角色?
- EVPN 支持哪些数据面封装方式?VXLAN 封装中 VNI 的作用是什么?
下篇预告:第174篇《EVPN 的 MAC/IP 路由通告》——深入 Type 2 路由的细节,理解 MAC 地址和 IP 地址如何通过 MP-BGP 在 PE 之间传播。