4. MX EVPN实例配置实战

在 MX 系列路由器上承载 EVPN 业务,核心动作并不是“打开一个协议开关”,而是把三层业务路由实例(VRF)与 EVPN 控制平面正确关联起来。EVPN 实例(routing-instances <name> protocols evpn)负责承载 MAC/IP 通告、IMET 路由和以太网段标识;VRF 负责承载租户的三层路由表;路由目标(Route Target)则决定哪些 EVPN 路由可以进入本实例。三者缺一,业务就无法在 PE 之间正确互通。

本节以一个典型多租户场景为例:两台 MX 作为 PE,分别连接同一租户的两个站点,租户 VRF 名为 CORP-A,EVPN 实例类型为 vrf,使用 VLAN 100 作为接入标识,EVPN 路由区分符(RD)为 65000:100,路由目标为 target:65000:100。以下参数均为教学示例,实际部署时需按规划替换。

一、先理清 EVPN 实例与 VRF 的绑定关系

在 Junos 中,EVPN 实例与 VRF 的绑定有两种常见方式:一种是在 routing-instances 下直接配置 instance-type vrf,并在同一层级下配置 protocols evpn;另一种是使用 instance-type evpn 配合 route-distinguisher 和 vrf-target,再通过 interface 绑定接入接口。对于三层业务承载,推荐使用 instance-type vrf,因为这样 EVPN 实例天然拥有独立的路由表,便于与租户的三层路由共存。

绑定关系可以概括为:接入接口(VLAN 100)→ VRF 实例(CORP-A)→ EVPN 协议 → BGP 对等体 → 远端 PE。EVPN 实例通过 vrf-target 导出和导入路由,BGP 负责在 PE 之间传递 EVPN NLRI。下图展示了这一绑定与路由传递关系。

MX EVPN 实例与 VRF 绑定及路由传递关系 PE1 (MX) 接入接口 ge-0/0/1.100 (VLAN 100) VRF 实例 CORP-A instance-type vrf route-distinguisher 65000:100 vrf-target target:65000:100 EVPN 协议 protocols evpn encapsulation vxlan vni 10100 PE2 (MX) 接入接口 ge-0/0/2.100 (VLAN 100) VRF 实例 CORP-A instance-type vrf route-distinguisher 65000:200 vrf-target target:65000:100 EVPN 协议 protocols evpn encapsulation vxlan vni 10100 BGP EVPN NLRI Type-2 MAC/IP、Type-3 IMET、Type-5 IP Prefix 路由目标匹配 target:65000:100 导出/导入一致才能互通 PE1 → PE2 通告 PE2 → PE1 通告 RD 可不同,RT 必须匹配

二、创建 EVPN 实例并绑定 VRF

在 PE1 上,先创建 VRF 实例并绑定接入接口,再在实例内启用 EVPN。关键配置如下:

set routing-instances CORP-A instance-type vrf
set routing-instances CORP-A interface ge-0/0/1.100
set routing-instances CORP-A route-distinguisher 65000:100
set routing-instances CORP-A vrf-target target:65000:100
set routing-instances CORP-A vrf-table-label
set routing-instances CORP-A protocols evpn encapsulation vxlan
set routing-instances CORP-A protocols evpn vni 10100
set routing-instances CORP-A protocols evpn default-gateway no-gateway-community

这里有几个容易出错的点。第一,route-distinguisher 在同一 PE 上必须唯一,但两端 PE 可以使用不同的 RD,例如 PE2 使用 65000:200,这不会影响互通。第二,vrf-target 必须两端一致,否则 EVPN 路由无法导入到本地 VRF。第三,vrf-table-label 用于为 VRF 分配标签,在三层业务中通常需要开启。第四,vni 必须与数据平面 VXLAN 封装使用的 VNI 一致,否则控制平面通了但数据转发失败。

三、配置路由目标与 BGP EVPN 对等体

EVPN 路由的导入导出由 vrf-target 控制。在 Junos 中,vrf-target 会自动生成对应的 vrf-import 和 vrf-export 策略。如果需要更细粒度控制,也可以显式配置策略。BGP 层面需要确保 PE 之间建立 IBGP 或 EBGP 会话,并启用 family evpn:

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

如果使用 EBGP,还需要注意 multihop 和 local-as 等参数。对于多租户场景,通常建议使用 IBGP 承载 EVPN,因为 RT 匹配和下一跳解析更直接。配置完成后,用 show bgp summary 确认 EVPN 会话处于 Established 状态。

四、验证 EVPN 路由表与实例状态

配置完成后,验证顺序建议从实例状态开始,再看 EVPN 路由表,最后看 BGP 邻居和转发面。常用命令如下:

show routing-instances CORP-A
show evpn instance CORP-A
show route table CORP-A.evpn.0
show route table CORP-A.inet.0
show bgp neighbor 10.0.0.2

在 show evpn instance CORP-A 输出中,重点看 Route Distinguisher、VRF Target、Number of local and remote EVPN routes 以及 VNI 是否与规划一致。如果本地 EVPN 路由数为 0,通常说明接入接口没有学习到 MAC 或 ARP,需要检查接口状态和 VLAN 配置。如果远端路由数为 0,则优先检查 RT 是否匹配、BGP EVPN 会话是否建立。

在 show route table CORP-A.evpn.0 中,应能看到 Type-2(MAC/IP Advertisement)、Type-3(Inclusive Multicast Ethernet Tag)和 Type-5(IP Prefix)路由。Type-2 路由的下一跳通常是远端 PE 的 VTEP 地址,Type-3 用于 BUM 流量转发。如果只看到本地路由而没有远端路由,说明导入策略或 RT 匹配存在问题。

验证要点:先确认 show evpn instance 中本地和远端路由计数均大于 0,再用 show route table CORP-A.evpn.0 检查具体路由类型和下一跳。最后用 show route table CORP-A.inet.0 确认租户三层路由是否已正确安装。

五、常见故障与判断依据

实际排障中,最常见的三类问题如下。第一,EVPN 实例状态为 Down 或 NotReady,通常是因为接入接口未 up、VLAN 未绑定或 instance-type 配置错误。第二,BGP EVPN 会话建立但路由数为 0,优先检查 vrf-target 是否两端一致,以及 family evpn signaling 是否在邻居上启用。第三,路由表中有 EVPN 路由但数据面不通,需要检查 VNI 是否一致、VXLAN 隧道是否建立、vrf-table-label 是否开启。

下表汇总了关键验证命令与预期结果,可作为现场检查的参考清单。

验证项 命令 预期结果
实例状态 show evpn instance CORP-A Instance State 为 Up,RD/RT/VNI 与规划一致
本地 EVPN 路由 show route table CORP-A.evpn.0 存在 Type-2/Type-3 本地路由
远端 EVPN 路由 show route table CORP-A.evpn.0 存在远端 PE 通告的 Type-2/Type-5 路由
BGP EVPN 会话 show bgp summary EVPN 邻居状态为 Established
三层路由表 show route table CORP-A.inet.0 租户路由已安装,下一跳指向远端 VTEP

完成以上配置与验证后,MX 上的 EVPN 实例即可正常承载多租户三层业务。需要强调的是,EVPN 实例、VRF、RT 和 VNI 四者必须作为一个整体来规划,任何一项不一致都会导致控制平面或数据平面不通。建议在每次变更后按“实例状态 → EVPN 路由表 → BGP 邻居 → 三层路由表”的顺序逐层验证,以便快速定位问题所在。