第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 演进方向 |

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 的关键差异

四、实战配置/案例分析
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(运营商) |
思考
- EVPN 使用 BGP 分发 MAC 路由。如果 BGP Session 中断,MAC 路由如何快速失效?EVPN 的收敛速度是否依赖于 BGP 的 HoldTime?
- EVPN Type 2 路由携带 MAC 地址和 IP 地址绑定。如果 CE 的 MAC 地址变更但 IP 不变,Type 2 路由如何更新?
- EVPN 的 VNI 是 24 位(最多 16M 个 VNI)。VNI 的全局唯一性如何保证?
下篇预告:第174篇:EVPN 的 MAC/IP 路由通告