2. EVPN基础架构与MX实现

EVPN(Ethernet VPN)本质上是一套用 BGP 作为控制平面、用隧道封装作为数据平面的二层/三层 VPN 技术。它把 MAC 地址、IP 地址、ARP/ND 表项等“转发状态”从数据平面剥离出来,改由 BGP 在 PE 之间分发,从而避免传统 VPLS 依赖泛洪学习带来的扩展性问题。在 Juniper MX 系列平台上,EVPN 由 evpn 这一 BGP NLRI 地址族承载,配合 VXLAN、MPLS 或 PBB-EVPN 等封装实现多租户业务承载。

一、EVPN 的五类核心路由

EVPN 的控制平面由若干种路由类型(Route Type)组成,每种类型承载不同的转发语义。理解它们的区别,是排查 EVPN 故障和设计多租户方案的基础。

  • Type 1(Ethernet Auto-Discovery,A-D 路由):用于多归(multihoming)场景,携带 ESI(Ethernet Segment Identifier)和 LACP 信息,实现全活(All-Active)或单活接入,并支持快速收敛与水平分割。
  • Type 2(MAC/IP Advertisement 路由):最核心的一类,通告单个 MAC 地址(可附带 IP),用于 MAC 学习、ARP/ND 抑制和主机路由。多租户场景下,每个 VNI/EVPN 实例内的主机 MAC 都通过 Type 2 分发。
  • Type 3(Inclusive Multicast Ethernet Tag 路由):用于建立 BUM(广播、未知单播、组播)流量的复制列表,即“入口复制”的成员发现机制。它携带 VTEP 地址,是 VXLAN 泛洪树的基础。
  • Type 4(Ethernet Segment Route):配合 Type 1 用于多归 PE 之间的指定转发者(DF)选举,确保同一 ES 上只有一个 PE 转发 BUM 流量。
  • Type 5(IP Prefix Route):用于三层 EVPN 场景,通告 IP 前缀,实现对称 IRB 或 L3VPN over EVPN,是数据中心互联和租户间路由的关键。

在 MX 上,这些路由由 protocols bgp 下的 family evpn 承载,通过 show route table bgp.evpn.0 或 show evpn database 观察。例如一条 Type 2 路由的 NLRI 形如 [2]:[0]:[48]:[00:11:22:33:44:55]:[32]:[10.10.10.1],其中各字段依次为路由类型、ESI、MAC 长度、MAC、IP 长度和 IP。

二、BGP EVPN 地址族与 MX 控制平面

EVPN 在 BGP 中作为独立的 NLRI 地址族运行,Juniper 使用 family evpn signaling 表示。与 IPv4/IPv6 unicast 不同,EVPN 地址族需要与 route-distinguisher、vrf-target 以及 EVPN 实例绑定,才能正确导入导出路由。

MX 系列对 EVPN 的控制平面支持体现在几个层面:

  • BGP EVPN 会话:可在 iBGP 或 eBGP 下启用 family evpn signaling,支持路由反射器(RR)架构,便于大规模租户扩展。
  • EVPN 实例:通过 routing-instances <name> protocols evpn 定义,绑定 VNI、RD、RT 和封装方式。
  • 多归支持:通过 esi 和 es-import 配置,配合 Type 1/4 路由实现 All-Active 接入。
  • ARP/ND 抑制:MX 可基于 Type 2 路由中的 IP 信息代理应答 ARP,减少 BUM 泛洪。

下面这张图展示了 EVPN 控制平面与数据平面在 MX 上的整体关系:BGP EVPN 地址族承载五类路由,EVPN 实例将路由映射到 VNI,数据平面再根据封装类型选择 VXLAN 或 MPLS 隧道转发。

MX 平台 EVPN 控制平面与数据平面关系 控制平面:BGP EVPN 地址族 Type 1 A-D(多归) Type 2 MAC/IP Type 3 IMET(BUM) Type 4 ES 路由 Type 5 IP Prefix(L3 EVPN) family evpn signaling · RD / RT · RR 架构 数据平面:封装与转发 VXLAN(VNI 映射) MPLS(L2VPN/L3VPN) PBB-EVPN(B-MAC) IRB / 对称路由 VTEP / LSP · 入口复制 · ARP 抑制 路由映射 EVPN 实例(routing-instances) vni · rd · vrf-target · encapsulation 多租户承载:不同 VNI / RT 隔离租户,共享物理与 BGP 基础设施 租户 A:VNI 10010 / RT 65100:10010  租户 B:VNI 10020 / RT 65100:10020

三、MX 上的封装选择:VXLAN 还是 MPLS

控制平面统一为 BGP EVPN 后,数据平面封装可以不同。MX 系列支持的主要封装方式包括:

封装类型典型场景MX 配置要点转发特征
VXLAN 数据中心 Leaf-Spine、多租户 Overlay encapsulation vxlan,配置 vni 与 VTEP 源地址 UDP 4789,VNI 24 位,入口复制 BUM
MPLS 运营商 L2VPN/L3VPN、跨域 EVPN encapsulation mpls,依赖 LSP 或 SR 标签栈,支持 L2VPN 与 L3VPN 统一承载
PBB-EVPN 大规模二层域、MAC 地址压缩 encapsulation pbb-evpn,B-MAC 封装 B-MAC 隔离,减少核心 MAC 表项

选择封装时,核心判断依据是:业务是否需要跨数据中心三层互联、是否已有 MPLS 核心、以及租户规模对 MAC 表项的压力。例如在纯数据中心场景,VXLAN 更常见;而在运营商场景,MPLS 封装能与现有 L3VPN 基础设施复用。

四、一个可参考的 MX EVPN 配置片段

下面给出一个 VXLAN 封装的 EVPN 实例示例,用于说明控制平面与数据平面如何绑定。参数为教学示例,实际部署需按规划调整。

set routing-instances TENANT-A instance-type evpn
set routing-instances TENANT-A vlan-id 100
set routing-instances TENANT-A routing-interface irb.100
set routing-instances TENANT-A vtep-source-interface lo0.0
set routing-instances TENANT-A protocols evpn encapsulation vxlan
set routing-instances TENANT-A protocols evpn vni 10010
set routing-instances TENANT-A protocols evpn extended-vni-list all
set routing-instances TENANT-A route-distinguisher 65100:10010
set routing-instances TENANT-A vrf-target target:65100:10010

set protocols bgp group EVPN type internal
set protocols bgp group EVPN local-address 10.0.0.1
set protocols bgp group EVPN family evpn signaling
set protocols bgp group EVPN neighbor 10.0.0.2

配置完成后,可用以下命令验证控制平面是否正常:

show bgp summary
show route table bgp.evpn.0
show evpn database
show evpn instance TENANT-A extensive

若 show evpn database 中能看到远端 MAC 与 VTEP 地址,且 show route table bgp.evpn.0 中存在 Type 2 和 Type 3 路由,说明控制平面已建立。数据平面则需进一步检查 VXLAN 隧道是否可达、VNI 是否匹配、以及 ARP 抑制是否生效。

在多租户设计中,建议为每个租户分配独立的 VNI 和 RT,并保持 RD 唯一。RT 决定路由导入导出关系,VNI 决定数据平面隔离,两者必须一致规划,否则会出现“控制平面学到路由但数据平面不通”的典型问题。
MX 上启用 EVPN 时,需确认 family evpn signaling 已在 BGP 邻居上协商成功。若邻居未协商该地址族,Type 2/3 路由不会交换,EVPN 数据库将为空。此外,VXLAN 封装要求 VTEP 源接口(通常为 lo0.0)在 IGP 中可达。

总结来看,EVPN 在 MX 上的实现可以概括为:BGP EVPN 地址族负责五类路由的分发,EVPN 实例负责 VNI/RD/RT 的绑定,数据平面根据业务场景选择 VXLAN、MPLS 或 PBB-EVPN 封装。掌握这三层关系,就能在多租户环境中灵活设计并快速定位问题。