EVPN 多宿主功能概述
EVPN 多宿主简介
以太网 VPN (EVPN) 由连接到提供商边缘 (PE) 设备的客户边缘 (CE) 设备组成,这些设备构成 MPLS 基础架构的边缘。CE 设备可以是主机、路由器,也可以是交换机。PE 设备在 CE 设备之间提供第 2 层虚拟网桥连接。提供商网络中可以有多个 EVPN。PE 路由器之间的学习使用 BGP 在控制平面中进行,这与传统桥接不同,传统桥接在数据平面中进行学习。
在 Junos OS 15.1 之前的版本中,MX 系列路由器上的 EVPN 功能支持仅限于使用 MPC 和 MIC 接口的路由器。从 Junos OS 15.1 版开始,使用 DPC 的 MX 系列路由器可用于在面向 CE 设备的接口上提供 EVPN 支持。
提供对 EVPN 的 DPC 支持时,需要考虑以下事项:
DPC 支持处于主动-备用操作模式下的 EVPN,包括支持以下各项:
EVPN 实例 (EVI)
虚拟交换机
集成路由和桥接 (IRB) 接口
用于提供 EVPN 主动-备用支持的 DPC 必须是面向 CE 设备的线卡。EVPN 域中的 PE 设备必须是 MPC 接口或 MIC 接口。
EVPN 多宿主功能允许您将客户站点连接到两个或更多 PE 设备,以提供冗余连接。CE 设备可以多宿主到不同的 PE 设备或相同的 PE 设备。一旦检测到故障,冗余 PE 设备可以立即为客户站点提供网络服务。因此,在发生以下类型的网络故障时,EVPN 多宿主有助于维持 EVPN 服务以及进出多宿主站点的流量:
PE 设备到 CE 设备链路故障
PE 设备故障
本地 PE 设备与远程 PE 设备之间的 MPLS 可达性故障
图 1 说明了 CE 设备如何多宿主到两个 PE 路由器。设备 CE 1 与路由器 PE 1 和 PE 2 多宿主。设备 CE 2 有两条到达设备 CE 1 的潜在路径,根据冗余的多宿主模式,任何时候都只有一条路径或两条路径处于活动状态。多宿主操作模式还可以确定哪台或多台 PE 路由器将流量转发至 CE 设备。将流量转发到 CE 设备(也称为指定转发器)的 PE 路由器使用 MPLS、LSP 或 GRE 隧道转发流量。如果在此路径上发生故障,则会选择新的指定转发器将流量转发至设备 CE 1。

QFX10000交换机支持的 EVPN MPLS 多功能
从 Junos OS 17.4R1 版本开始,QFX10000交换机支持 EVPN MPLS 的多宿主。仅支持 A/A 多宿主。支持以下子功能:
ESI 配置(仅支持 0 类手动配置和 IFD(物理接口)
混叠和标签路由
EVPN Type 4 路由(以太网分段路由)
扩展社区
BUM 流量
指定货运代理选择 (DF) 角色:DF 和 BDF
通过 MPLS EVPN 核心的QFX10000交换机仅支持默认交换机路由实例。不支持 EVPN 实例 (EVI)。
ACX5448 路由器上的 EVPN MPLS 多宿主
从 Junos OS 19.4R1 版开始,ACX5448路由器支持 EVPN MPLS 的多宿主。仅支持 A/A 多宿主。要在路由器上启用 EVPN 主动-主动多宿主ACX5448请在 [edit system packet-forwarding-options firewall-profile
] 层级包含evpn-mh-profile
配置语句。
user@host# set system packet-forwarding-options firewall-profile ? Possible completions: default-profile Set the profile to support default services. evpn-mh-profile Set the profile to support evpn-mh
更改配置文件并提交后,您需要通过发出 restart chassis-control
CLI 命令来启动新配置文件,从而重新启动机箱管理进程。
将显示系统日志警告,以重新启动 PFE。
了解 EVPN 多宿主概念
图 2 显示了用于定义 EVPN 多宿主概念的简单 EVPN 网络拓扑。

Ethernet segment— 当 CE 设备多宿主到两个或更多 PE 路由器时,以太网链路组构成以太网段。以太网分段显示为 CE 设备的链路聚合组 (LAG)。
从路由器 PE1 和 PE2 到设备 CE1 的链路形成以太网段。
在主动-备用多宿主中,构成以太网段的链路形成网桥域。在 A/A 多宿主中,以太网分段对 CE 设备显示为 LAG。
ESI—以太网分段必须具有唯一的非零标识符,称为以太网分段标识符 (ESI)。ESI 编码为 10 个八位字节整数。手动配置 ESI 值时,最高有效八位位组(称为类型字节)必须为 00。将单宿主 CE 设备连接到以太网网段时,整个 ESI 值为零。
多宿主设备 CE1 的以太网段分配的 ESI 值为 00:11:22:33:44:55:66:77:88:99。单宿主设备 CE2 的 ESI 值为 0。
EVI—EVPN 实例 (EVI) 是一个 EVPN 路由和转发实例,涵盖参与该 VPN 的所有 PE 路由器。PE 路由器上会根据每个客户配置 EVI。每个 EVI 都有一个唯一的路由区分符和一个或多个路由目标。
EVI 配置在路由器 PE1、PE2 和 PE3 上。
Ethernet tag— 以太网标记标识特定的广播域,如 VLAN。EVPN 实例由一个或多个广播域组成。以太网标记由给定 EVPN 的提供商分配给该 EVPN 实例的广播域。该 EVPN 实例中的每个 PE 路由器都会在其连接的每个 CE 设备可识别的广播域标识符与相应的以太网标签之间执行映射。
Ethernet segment route (EVPN Type 4 route)—连接到多宿主 CE 设备的 PE 路由器使用 BGP 以太网分段路由消息来发现每个 PE 路由器都连接到同一个以太网分段。PE 路由器播发以太网分段路由,该路由由 ESI 和 ES 导入扩展社区组成。
路由器 PE1 和 PE2 通过 ES 导入扩展社区(以及其他扩展社区,如路由目标)播发 ES 路由。PE 路由器还会构建一个基于 ES 导入扩展社区的过滤器,这将导致只有这些 PE 路由器导入 ES 路由并识别它们连接到同一个以太网段。
Extended community— 扩展社区在大多数方面与常规社区相似。EVPN 使用扩展社区,因为 4 字节常规社区值无法提供足够的扩展和灵活性。扩展社区是一个 8 个八位位组值,分为两个主要部分。
BUM traffic—此类流量将发送到多个目标,包括广播流量、在以太网段中广播的未知单播流量和组播流量。
DF— 当 CE 设备多宿主到两个或更多 PE 路由器时,根据多宿主操作模式,将使用一个或所有多宿主 PE 路由器来到达客户站点。承担将 BUM 流量转发到 CE 设备的主要角色的 PE 路由器称为指定转发器 (DF)。
BDF—其他 PE 路由器集中的每个路由器都会为同一 ESI 通告每个以太网分段的自动发现路由,并在 DF 遇到故障时用作备用路径,称为备份指定转发器 (BDF)。BDF 也称为非 DF 路由器。
DF election— 在每个以太网网段上,PE 路由器都会参与称为 指定转发器 选择的过程,以选择 DF 和 BDF PE 路由器。
EVPN 多宿主运维模式
EVPN 多宿主的不同操作模式包括:
单 — 当 PE 路由器连接到单宿主客户站点时,此模式正在运行。 单一 模式是默认操作模式,不需要配置以太网段值。
主动-备用 — 如果连接到以太网分段的一组 PE 路由器中只有一个 PE 路由器被允许将流量转发到该以太网分段或从该以太网分段转发流量,则以太网分段将被定义为在 主动-备用 冗余模式下运行。
要配置主备模式,请在层次结构级别下
[edit interfaces]
包含 ESI 值和single-active
语句。注意:在 QFX 系列交换机或具有 VXLAN 叠加网络的 EVPN 配置中,我们不支持主动/备用多宿主模式。因此,如果您在 QFX 系列交换机或 EVPN-VXLAN 配置中配置
single-active
该选项,设备将忽略该配置项目。主动-主动 — 当连接到以太网分段的所有 PE 路由器都被允许将流量转发到以太网分段或从以太网分段转发流量时,以太网分段将被定义为在 主动-主动 冗余模式下运行。
注意:在 Junos OS 14.2 及更低版本中,EX9200 系列交换机仅支持 EVPN 多宿主的主动-备用操作模式。
注意:从 QFX5100 交换机的 Junos OS 14.1X53-D30 版和 EX4600 交换机的 Junos OS 18.2R1 版开始,这些交换机支持 EVPN 多宿主的 A/A 操作模式。在此方案中,QFX5100 交换机和 EX4600 交换机可作为虚拟网络数据中心中的架顶式 (ToR) 交换机运行。EVPN 多宿主主动-主动功能用于提供对连接到架顶式交换机的裸机服务器的访问。
注意:从 Junos OS 14.1R4、14.2、15.1F6 和 16.1R1 版本开始,Junos OS 支持在 MX 系列路由器上采用主动-主动模式进行 EVPN 多宿主。
从 Junos OS 16.1R4 和 16.2R2 版开始,所有 EX9200 交换机都支持用于 EVPN 多宿主的主动-主动模式。
从 Junos OS 版 17.4R1 开始,QFX10000交换机支持 EVPN 多宿主的主动-主动模式。
要配置主动-主动模式,请在
[edit interfaces]
层次结构级别包含 ESI 值和all-active
语句。图 3 显示了 EVPN 主动-主动多宿主的参考拓扑。设备 CE2 的 ESI1 以太网段与路由器 PE1、PE2 和 PE3 多宿主。CE 设备上的以太网段可配置为链路聚合组 (LAG) 或 ECMP 路径。设备 CE1 和 CE3 是单宿主客户边缘设备,ESI 值为 0。

EVPN 多宿主实施
EVPN 主备多宿主操作模式基于 EVPN draft-ietf-l2vpn-evpn-03,可为多宿主 CE 设备的接入链路故障和 PE 节点故障提供冗余。
EVPN 多宿主主动-备用和主动-主动操作模式的 Junos OS 实现包括以下内容:
- 新的 BGP NLRI
- 新的扩展社区
- 较新的 EVPN 路由类型
- 多宿主代理 MAC 和 IP 地址路由通告
- MAC 转发表更新
- 流量
- 混 叠
- EVPN 主动-主动多宿主和多机箱链路聚合
- EVPN 主动-主动多宿主和 IRB
- 示例配置
新的 BGP NLRI
为了支持 EVPN 多宿主,引入了以下新的 BGP 网络层可达性信息 (NLRI) 路由:
每个以太网分段的自动发现路由
自动发现路由功能
自动发现路由 NLRI 功能包括:
这是 1 类强制性路由,用于快速收敛和播发水平分割标签。它也被称为大规模撤退路线。
1 类路由识别符与始发 PE 路由器的 IP 地址(环路)一起使用,作为路由识别符值。
此路由在 NLRI 中携带 ESI(如果是多宿主 PE,则为零,否则为零)。
水平分割标签仅针对每个 ESI,并带有显式 NULL (0)。
ESI 标签扩展社区的主动-备用标志字段中的位用于发出主动-备用模式(位集)的信令。
NLRI 和以太网标记中的 3 字节标签值为零。
此路由在通告 ESI 上共享相同 EVI 的所有多宿主和远程 PE 路由器通告和导入。
自动发现路由通告
主动-备用模式
在主动-备用模式下,指定转发器 (DF) 使用待机位设置为 1 的 ESI MPLS 标签扩展社区通告每个以太网分段的自动发现路由。自动发现路由将按 ESI 播发,并且在运行主动-备用模式时,ESI 标签将设置为 0。
自动发现路由由作为 EVI 一部分的所有多宿主和远程 PE 路由器导入。在接收到自动发现路由时,网络拓扑中的 PE 路由器将了解到所播发的 ESI 正在运行主动-备用多宿主模式。
主动-主动模式
在主动-主动模式下,每个多宿主 PE 设备都会像处于主动-备用状态一样通告每个以太网分段的强制自动发现路由。但是,在主动-主动状态下,每个以太网分段的自动发现路由将被修改,以便清除 MPLS 扩展社区中携带的主动-备用位,以指示主动-主动模式正在运行。在主动-主动模式下,每个以太网分段的自动发现路由还包括水平分割标签。
在图 3 中,对于 ESI1 以太网网段,路由器 PE1、PE2 和 PE3 会播发自动发现路由。路由器 PE4 接收此自动发现路由。
自动发现路由撤销
每个以太网段撤销的自动发现路由可能会导致批量撤销。当 ESI 上出现链路故障或 ESI 配置更改时,会使用批量撤销功能。
当多宿主 CE 设备与多宿主 PE 设备之间的链路出现故障时,PE 设备将撤回每个以太网分段的自动发现路由。在这种情况下,其他 PE 设备会通过以下方式处理批量退出功能:
远程 PE 设备
当远程 PE 设备收到批量撤销的 BGP 更新时,将在远程 PE 设备上执行以下操作:
到达远程 ESI 或 CE 设备的当前下一跃点将被删除。
系统将创建通过其余多宿主 PE 设备的新下一跃点,以到达远程 ESI 或 CE 设备。
CE 设备后面的所有 MAC 路由都将使用新创建的下一跃点进行更新。
从 Junos OS 17.4R1 版开始,Junos OS 支持 EVPN 网络中的动态列出下一跃点。现在,当 CE 设备和多宿主 PE 设备之间的链路出现故障时,将更新到 ESI 或 CE 的下一跃点,从而减少批量退出的需要。有关启用动态列表下一跃点的详细信息,请参阅 配置动态列表下一跳。
其他多宿主 PE 设备
由于大量退出,多宿主 CE 设备上的负载平衡会发生,原因如下:
当其他多宿主 PE 设备在链接到相关 ESI 的链路上收到相同的 MAC 地址集时。
在这种情况下,本地路由是首选。如果从 DF PE 设备获知的远程路由被撤回,则不会影响指向本地 ESI 的路由。
当其他多宿主 PE 设备在指向相关 ESI 的链路上未收到同一组 MAC 地址时。
在这种情况下,PE 设备会安装指向相关 ESI 的 MAC 路由,尽管 MAC 是从 DF PE 设备远程学习的。当 DF PE 设备撤回这些路由时,撤回的路由将被刷新。发往刷新 MAC 地址的数据包在所有本地分段上都会泛洪。
以太网分段路由
以太网分段路由功能
以太网分段路由 NLRI 功能包括:
这是 EVPN 4 类路由。此路由的目的是使连接到同一以太网段的 PE 路由器在交换此路由时,只需最少的配置即可自动发现彼此。
此路由与 ES 导入扩展社区相关联,其 ESI 值压缩为 6 个字节,类似于路由目标。
此路由仅由在播发以太网段上多宿主的 PE 路由器通告和导入。
以太网分段路由通告
以太网分段路由在数据中心内的所有 PE 路由器之间通过 ES-import 扩展社区进行交换。ES-import扩展社区基于多宿主的ESI PE路由器构建,以太网分段路由携带与PE路由器多宿主的以太网分段相关的ESI值。
以太网分段路由会根据 ES-import 扩展社区进行过滤,因此只有在同一以太网分段上多宿主的 PE 路由器才能导入此路由。连接到特定以太网段的每个 PE 路由器都会构建导入过滤规则,以导入携带 ES-import 扩展社区的路由。
每个 EVPN 实例的自动发现路由
在 A/A 模式下,每个多宿主 PE 设备都会使用有效的 MPLS 标签为每个 EVPN 实例 (EVI) 播发自动发现路由。此路由按 ESI 播发,并由远程 PE 设备导入。每个 EVI 的自动发现路由中包含的 MPLS 标签稍后将用于混叠。
新的扩展社区
扩展社区在大多数方面与常规社区相似。某些网络实现(如虚拟专用网络 (VPN))使用扩展社区,因为 4 字节常规社区值无法提供足够的扩展性和灵活性。扩展社区是一个 8 个八位位组值,分为两个主要部分。
为了支持主动-备用多宿主,引入了以下扩展社区:
ESI-导入
此扩展社区连接到 ES 路由,并根据从接口下配置的 ESI 值中提取的 ESI 导入值填充。为了解决与另一个常规路由目标冲突的问题,将类型设置为 0x06,该目标已由 IANA 分配。
ESI-import 扩展社区路由目标将填充为从中播发使用此社区的 ES 路由的特殊实例配置的导入路由目标列表。
因此,如果 PE 路由器配置了具有相同 ESI 值的以太网段,则扩展社区中具有相同 ESI 导入值的传入 ESI 路由将由 PE 路由器导入。一旦 PE 路由器接收到一组具有相同 ESI 导入扩展社区值的 ESI 路由,就可以在本地完成 DF 和 BDF 选择。
未隐式创建 ESI 导入扩展社区时,必须配置策略以将所有路由目标附加到每个以太网分段的自动发现路由。
水平分割
参考 图 3 ,例如,当一个 CE 设备多宿主到以太网段 (ESI1) 上的两个或多个 PE 设备并以 A/A 冗余模式运行时,将 BUM 数据包发送到其中一个非 DF PE 设备(比如 PE1),然后设备 PE1 会将该数据包转发到该 EVPN 实例中的全部或其他 PE 设备的子集, 包括用于该以太网段的 DF PE 设备。在这种情况下,CE 设备多宿主的 DF PE 设备会丢弃数据包,而不会将其转发回 CE 设备。此过滤称为水平分割。
水平分割信令
水平分割扩展社区连接到每个以太网分段的自动发现路由。扩展社区的值是水平分割或泊松标签本身,它为 3 个字节,并作为不透明属性进行播发。
水平分割广告
在主备模式下,水平分割扩展社区中的备用位设置为 1,ESI 水平分割标签设置为 0。
在主动-主动模式下,水平分割扩展社区将被修改为将备用位清除为 0,并包含用于水平分割目的的有效 ESI 标签。
水平分割 MPLS 路由
DF PE 设备通告每个以太网分段的自动发现路由(水平分割标签 A)和包含组播路由(标签 B),用于 BUM 流量转发。在 DF 上,来自核心的 BUM 数据包可以带有以下标签:
当非 DF PE 设备在其单宿主 ESI 上接收到 BUM 数据包时,BUM 数据包将发送到带有组播标签 B 的 DF PE 设备。
当非 DF PE 设备在 ESI1 上接收 BUM 数据包时,BUM 数据包将通过两个 MPLS 标签发送到 DF PE 设备 — 组播标签 B 作为外部标签,水平分割标签 A 作为内部标签。
在 EVPN 多宿主场景中,当组播标签 B 是标签堆栈中的唯一标签时,它会将 S 位设置为 1。在这种情况下,BUM 数据包需要在 DF PE 设备上的所有本地 ESI 上泛洪。但是,当水平分割标签 A 是标签堆栈中最里面的标签时,标签 B 会将 S 位设置为 0。在这种情况下,BUM 数据包需要在 DF PE 设备上的所有本地 ESI 上泛洪,但映射到水平分割标签 A 的 ESI 除外。
假设数据包从多宿主 CE 设备源至多宿主分段 ESI1 上的非 DF PE 设备,则当非 DF PE 设备将此数据包发送至 DF PE 设备时,将首先推送 DF 在其每个以太网分段的自动发现路由中向非 DF PE 设备播发的 ESI 标签。非 DF PE 设备还会推送 DF PE 设备在其包容性组播路由中播发的包容性组播标签,并进一步推送 LSP 标签。因此,MPLS 标头在一个 32 位字段中包含两个标签。
基本 EVPN 功能使用表下一跃点将 MPLS 表与其对应的 EVPN EVI 表拼接在一起。在 EVPN EVI 表中,执行 MAC 查找以切换数据包。
在 mpls.0 表中为 EVPN 组播编程了以下路由:
(组播标签,S=1)路由指向 EVPN-EVI 表下一跃点。
(组播标签,S=0)路由指向 MPLS 表下一跃点。弹出组播标签后,此路由会将数据包循环回 MPLS 表。
(水平标签拆分)路由指向 EVPN-EVI 表下一跃点。这与组播标签 S=1 路由使用的下一跃点相同。
较新的 EVPN 路由类型
EVPN 多宿主模式支持以下 EVPN 路由类型:
每个以太网分段的自动发现路由
每个 EVPN 实例 (EVI) 的自动发现路由
以太网分段路由
这些路由类型遵循以下命名约定:
<route-type>:<RD>::<esi>::<route-specific>/304
例如:
每个以太网分段的自动发现路由 —
1:10.255.0.2:0::112233445566778899::0/304
每个 EVI 的自动发现路由 —
1:100.100.100.1:1::22222222222222222222::0/304
以太网分段路由 —
4:10.255.0.1:0::112233445566778899:10.255.0.1/304
哪里:
route-type
- EVPN 路由的类型。1 - 每个以太网分段的自动发现路由。
1 - 每个 EVI 的自动发现路由。
4 — 以太网分段路由。
5 — 使用 VXLAN/MPLS 封装的路由
RD
—路由区分符值。路由识别符值设置为 PE 路由器的 IP 地址,后跟 0。
esi
—以太网分段标识符。显示为 10 个字节的十六进制字节,不显示前导 00 个字节。route-specific
- 因路由类型而异。每个以太网分段的自动发现路由和每个 EVI 的自动发现路由 — 此值是 MPLS 标签。
注意:MPLS 标签显示在扩展输出中,尽管它不包含在前缀中。
以太网分段路由 — 此值是始发 IP 地址。
304
- EVPN 路由中的最大位数。这不是非常有用的信息,可以从显示中删除。但是,它可能有助于通过视觉或匹配运算符快速识别 EVPN 路由。
多宿主代理 MAC 和 IP 地址路由通告
从 Junos OS 18.4R1 版开始,Junos 会从多宿主 PE 向 CE 设备发送代理 MAC 和 IP 地址路由通告。Junos 在 EVPN 第 2 层属性扩展社区中使用代理标志将消息识别为代理 MAC 和 IP 地址通告。获知 MAC 和 IP 地址的 PE 会发送正常的 EVPN 类型 2(MAC 和 IP 地址)路由通告。以太网段上的其他 PE 如果能从远程 PE 获知新路由,现在会发送并设置了代理位的 MAC 和 IP 地址路由消息。如果 MAC 和 IP 地址条目老化,或者 PE 和 CE 之间的链路出现故障,则必须重新学习这些条目,并且可能会丢失流量。这样可以防止在与叶设备的某个连接出现故障时出现流量丢失。多宿主代理 MAC 将自动启用。
MAC 转发表更新
在主动-备用 EVPN 多宿主中,MAC 地址被视为可路由地址,MP-IBGP 协议用于携带客户 MAC 地址。PE 路由器的 MAC 学习不会发生在数据平面中,而是发生在控制平面中。这导致在学习机制方面应用了更多的控制。
PE 路由器在数据平面中对来自特定 EVI 的客户网络的数据包执行 MAC 学习。对于位于其他 PE 路由器后面的 CE MAC 地址,MAC 地址将使用新的 MAC 通告路由类型在 BGP NLRI 中通告。
MAC 学习有两种类型:
本地 MAC 学习 — PE 路由器必须通过标准协议支持本地 MAC 学习过程。
远程 MAC 学习 — 完成本地学习过程后,PE 路由器可通过 MP-IBGP 将本地学习的 MAC 地址通告给远程 PE 路由器节点。这种通过 MP-IBGP 接收附加客户的远程 MAC 地址的过程称为远程 MAC 学习过程。
MAC 通告路由类型用于将 BGP 中本地学习的 MAC 地址通告至远程 PE 路由器。如果播发了单个 MAC 地址,则 IP 地址字段与该 MAC 地址相对应。如果 PE 路由器看到 CE 设备对某个 IP 地址的 ARP 请求,且 PE 路由器对该 IP 地址进行了 MAC 地址绑定,则 PE 路由器会执行 ARP 代理并响应 ARP 请求。
ARP 代理仅对网关执行,对主机不执行。
MPLS 标签字段取决于分配类型。PE 路由器可以为每个 EVI 的所有 MAC 地址通告单个 MPLS 标签,这样需要的 MPLS 标签最少,可以节省 PE 路由器内存。但是,在转发到客户网络时,PE 路由器必须执行 MAC 查找,这可能会导致延迟并增加 CPU 周期数。
流量
在 EVPN 多宿主中,流量在转发平面中执行。创建泛洪路由用于泛洪数据包,并在以下场景中使用:
在本地 ESI 上接收到数据包时
从核心接收到数据包时
EVPN 多宿主中的流量可以基于两种流量类型:
单播流量
单播流量是只有一个发送方和一个接收方的点对点通信。在多宿主 EVPN 中,单播流量的转发方式如下:
在主动-备用模式下
CE 到核心 — DF PE 路由器学习和转发流量。
从核心到 CE — 远程 PE 路由器从 DF 中学习 MAC 地址,并将所有单播流量转发至 DF PE 路由器。
在主动-主动模式下
CE 到核心 — 流量负载均衡到所有连接的多宿主 PE 设备。
核心到 CE — 来自远程 PE 设备的流量将负载均衡到连接到远程 CE 设备的所有多宿主 PE 设备。
BUM 流量
发送到多个目标的流量,包括广播流量、在以太网网段中广播的未知单播流量和组播流量,称为 BUM 流量。在多宿主 EVPN 中,BUM 流量的转发方式如下:
在主动-备用模式下
CE 到核心 — CE 设备将所有 BUM 流量泛洪到以太网网段中的所有链路。具有活动路径的 DF PE 路由器将 BUM 数据包转发到核心。处于备用模式的 BDF PE 路由器会丢弃来自 CE 设备的所有流量,因为接口的 EVPN 多宿主状态处于阻塞状态。但是,如果 CE 设备使用单独的链路或 LAG 连接到 PE 设备,则 BUM 流量会同时到达 DF 和 BDF PE 设备。
核心到 CE — 远程 PE 路由器将所有 BUM 流量泛洪到 DF 和 BDF PE 路由器。只有 DF 将 BUM 流量转发到 CE 设备。BDF PE 路由器会丢弃所有流量,因为接口的 EVPN 多宿主状态处于阻塞状态。
在主动-主动模式下
根据要求,可以在主动-主动模式下启用或禁用本地 ESI 之间的泛洪和切换。这称为非本地交换行为。
EVPN 服务的核心在多宿主 PE 设备之间提供全网状连接。因此,EVPN 在核心中采用水平分割,因此从核心接收的数据包永远不会被交换或泛洪回核心。相反,入口复制用于将数据包复制到远程 PE 设备。
要将数据包泛洪到远程 PE 设备,可使用组播和水平分割下一跃点。组播下一跃点使用包容性组播标签隧道传输数据包,水平分割下一跳使用组播标签和水平分割标签对数据包进行隧道传输。每个远程 PE 设备的每个多宿主 ESI 需要一个这样的下一跃点。
在主动-主动模式下使用以下泛洪路由:
All-CE 洪水路由
本地 ESI 将此泛洪路由用于以下用途:
在本地 ESI 上使数据包泛洪(当允许本地交换时)。
将数据包泛洪到远程 PE 设备。远程 PE 设备在其本地 ESI 上对数据包进行泛洪。
由于 BUM 流量仅由指定转发方 (DF) 转发,而不由非 DF 多宿主 PE 设备转发,因此非 DF 使用水平分割下一跃点将此数据包泛洪至其他 PE 设备。但是,PE 设备是非 DF 的多宿主本地 ESI 不会参与泛洪。
非 DF ESI 不使用全 CE 泛洪路由,并相应地为这些泛滥路由创建下一跃点。在这种情况下,将使用非DF ESI泛洪路由。
全VE泛滥路由
当从核心接收数据包时,将使用此泛洪路由。它用于将从核心接收的数据包泛洪到本地 ESI。由于从核心接收的数据包可以仅带有组播标签,也可以同时带有组播标签和水平分割标签,因此必须遵循适当的转发规则才能将数据包丢弃到映射到水平分割标签的多宿主 ESI 上。
非 DF 泛滥路由
此洪水路由用于以下用途:
使本地 ESI 上的数据包泛洪。
使用入口复制将数据包泛洪到远程 PE 设备,并对 ESI 的 DF 使用 SH 标签。
混 叠
从 Junos OS 15.1 版开始,Junos OS 支持在 EVPN 中混叠。混叠是指远程 PE 设备能够对具有相同以太网段的所有其他 PE 设备上的第 2 层单播流量进行负载均衡,这些流量流向 CE 设备。
主动-主动模式下的混叠
在 图 3 中,A/A 模式下的混叠工作原理如下:
ESI1 配置在路由器 PE1、PE2 和 PE3 上。路由器 PE1、PE2 和 PE3 为每个以太网分段播发 ESI1 的自动发现路由。
设备 CE1 使用源 MAC 地址 (MAC1) 向路由器 PE1 发送第 2 层流量。
路由器 PE1 学习 (ESI1, vlan X) 上的 MAC1 地址,并使用 BGP 将其通告给所有 PE 路由器。
路由器 PE4 通过 BGP 接收 MAC1 路由。
由于路由器 PE4 还从路由器 PE2 和 PE3 接收每个 EVI 的自动发现路由,因此它知道必须通过路由器 PE2 和 PE3 到达 MAC1。路由器 PE4 构建其转发状态,以便在路由器 PE1、PE2 和 PE3 之间对 MAC1 的第 2 层流量进行负载均衡。
混叠和自动发现路由
来自路由器 PE2 和 PE3 的自动发现路由可以按任意顺序排列。因此,这些路由将由第 2 层进程安装,如下所示:
从路由器 PE1 接收 MAC1 后,如果路由器 PE4 未收到任何自动发现路由,则 MAC1 由 PE4 编程,下一跃点指向路由器 PE1。当 PE4 从路由器 PE2 接收同一 ESI 的自动发现路由时,将安装下一跃点,以便将 MAC1 的流量负载均衡到路由器 PE1 和 PE2。当 PE4 从路由器 PE3 收到同一 ESI 的自动发现路由时,将更新下一跃点,以便对路由器 PE1、PE2 和 PE3 之间的 MAC1 流量进行负载均衡。
如果路由器 PE4 已收到来自多个 PE 设备(PE1、PE2 和 PE3)的自动发现路由,则 PE4 将安装包含多目标下一跃点的 MAC 路由。
混叠和标签路由
使用有效的 MPLS 标签为每个 EVI 播发自动发现路由的任何 PE 设备都会在 mpls.0 路由表中对播发的标签进行编程。例如,如果路由器 PE2 使用标签 A 播发每个 EVI 的自动发现路由,则 mpls.0 条目如下所示:
标签 路由指向 EVPN-EVI 表下一跃点。
当远程路由器 PE4 使用此标签 A 向路由器 PE2 发送单播数据包时,将在路由器 PE2 的转转发表中进行查找,通过此查找,数据包将在 ESI1 上转发。
混叠和单播数据包转发
当 MAC1 的单播数据包从远程路由器 PE4 传送到路由器 PE2 时,可能出现两种情况:
路由器 PE2 在与 ESI1 的链路上也接收到相同的 MAC 集 — 在这种情况下,本地路由是首选,并且由于 MAC 查找,数据包将被转发至 ESI1。
路由器 PE2 在与 ESI1 的链路上未收到相同的 MAC 集 — 在这种情况下,路由器 PE2 仍会安装指向 ESI1 的 MAC 路由,尽管 MAC 是从路由器 PE1 远程获知的。结果,数据包被转发到 ESI1。
EVPN 主动-主动多宿主和多机箱链路聚合
当 CE 设备配置了面向 PE 设备的 LAG 时,以下两个选项可用于在 PE 设备上运行 LACP:
在所有 PE 设备上配置相同的 LACP 系统 ID。
在 PE 设备上配置多机箱链路聚合。
使用 EVPN 配置多机箱链路聚合时,需要简化一组主动-主动多机箱链路聚合过程。这些过程提供链路和节点级别的冗余。多机箱链路聚合对 CE 设备完全透明,并实现为纯 LAG。Multichassis 链路聚合也在端口级别运行。这实质上意味着,如果将多机箱链路聚合配置为主动-主动,则多机箱链路聚合端口上的所有 VLAN 都将在主动-主动多宿主模式下工作。
当与 EVPN 一起配置多机箱链路聚合时,需要考虑以下事项:
Multichassis 链路聚合和 EVPN ESI 都必须启用才能仅在 A/A 模式下工作。
使用 EVPN 的多机箱链路聚合不需要以下功能:
MAC 同步 — 这在 EVPN 的 BGP 控制平面中执行。
ICL 链接 — 这由 EVPN 的混叠功能处理。
ARP 同步 — 由具有 IRB 功能的 BGP 控制平面处理。
EVPN 主动-主动多宿主和 IRB
配置 IRB 时,EVPN 路由将同时包含 MAC 和 IP 信息。A/A 多宿主需要在多宿主 PE 设备之间进行 ARP 同步,因为 ARP 响应可以散列到特定的 PE 设备。
示例配置
以下是以下类型接口上的 EVPN 主动-备用多宿主配置示例:
以太网接口配置
ge-0/1/2 { encapsulation ethernet-bridge; esi XX:XX:XX:XX:XX:XX:XX:XX:XX:XX; unit 0 { family bridge; } }
单 VLAN 接口配置
ge-0/1/3 { encapsulation extended-vlan-bridge; esi XX:XX:XX:XX:XX:XX:XX:XX:XX:XX; vlan-tagging unit 0 { family bridge; vlan-id 1; } }
ESI 值为 0,并且所有 FF 都将保留,不用于配置多宿主 Ehernet 分段。
同一 EVI 中的两个接口不能配置相同的 ESI 值。
以下是 EVPN 主动-备用多宿主的路由实例配置示例:
路由实例配置
routing-instances { evpn-0 { instance-type evpn; route-distinguisher value; vrf-target value; vlan-id vlan-ID; interface ge-0/1/2.0; interface ge-1/1/1.0; interface ge-2/2/2.0; protocols { evpn { designated-forwarder-election-hold-time time; } } } }
使用主动-备用模式配置时,将通告每个以太网分段的自动发现路由,并将每个以太网分段的活动-备用位设置为 1。
指定货运代理选择
EVPN 中的指定转发器 (DF) 选择过程提供了一种强大的机制,用于在为多宿主以太网段提供服务的设备之间选择指定转发器。DF 选择可确保高效和有效的广播、未知单播和组播 (BUM) 流量转发、负载平衡、高可用性和流量管理。关键功能包括:
-
基于模数或基于偏好的 DF 选择算法。
-
由网络状态更改触发的动态 DF 重选。
-
DF 和备份 DF 角色,以防止流量环路。
系统还处理 ESI 路由以优化路由处理,并使用批量撤销机制来维护网络完整性。您可以使用这些功能及其 CLI 配置来确保无缝流量并有效管理您的 EVPN 多宿主场景。
有关更多信息,请参阅 EVPN 多宿主指定转发器选择。
物理接口、聚合以太网接口和逻辑接口上的 ESI
在 MX 系列路由器的 Junos OS 15.1F6 和 17.1R1 版本以及 EX9200 交换机的 Junos OS 17.3R1 版本之前的版本中,您只能在物理或聚合以太网接口上指定 ESI,例如 set interfaces ae0 esi 00:11:22:33:44:55:66:77:88:99
。如果在物理或聚合以太网接口上指定 ESI,请记住 ESI 是指定转发器 (DF) 选择过程中的一个因素。例如,假设您在聚合以太网接口 ae0 上配置 EVPN 多宿主主动-备用,并且给定在 ae0 上配置的 ESI 和其他决定因素,DF 选择将导致 ae0 处于关闭状态。此外,例如, set interfaces ae0 unit 1
在聚合以太网接口 ae0 上 set interfaces ae0 unit 2
配置的所有逻辑接口也处于关闭状态,这使得逻辑接口 ae0.1 和 ae0.2 无法向各自的客户站点 (VLAN) 提供服务。
为了在 EVPN 多宿主主动-备用或主动-主动模式下更好地利用逻辑接口,从 MX 系列路由器使用的 Junos OS 15.1F6 和 17.1R1 版以及 EX9200 交换机使用的 Junos OS 17.3R1 版开始,您可以在逻辑接口上指定 ESI。因此,即使逻辑接口是非 DF,同一物理或聚合以太网接口上的其他逻辑接口仍能够向各自的客户站点 (VLAN) 提供服务。
有关更多信息,请参阅 示例:使用 EVPN 多宿主在逻辑接口上配置 ESI。
自动生成的 ESI
从 Junos OS (18.4R1) 版开始,您可以配置聚合以太网接口和聚合以太网逻辑接口,以从 LACP 配置自动派生 ESI。我们在以下环境中支持此功能:
在支持此功能且在 EVPN-VXLAN 叠加网络中以主动-主动模式进行多宿主的瞻博网络设备上。
在支持此功能且在 EVPN-MPLS 叠加网络中以主动-备用或主动-主动模式进行多宿主的瞻博网络设备上。
有关更多信息,请参阅 了解 EVPN 网络中自动生成的 ESI。
EVPN 网络中的融合
当大规模 EVPN 系统中的网络拓扑发生变化时,收敛时间可能很长。您可以在路由策略中确定对路由选择至关重要的 NLRI 更新的优先级,以提高收敛性。 表 1 列出了必须在路由策略中配置的 NLRI 路由类型和优先级。
NLRI 路由类型 |
描述 |
优先权 |
---|---|---|
NLRI 路由类型 1 |
以太网自动发现路由 — 类型 1 支持快速融合和混叠,用于发出 MAC 批量撤销信号。 |
高 |
NLRI 路由类型 2 |
MAC/IP 通告路由 — 类型 2 用于通告 EVPN 网络中的 MAC 地址和 IP 地址。 |
低 |
NLRI 路由类型 3 |
包容性组播以太网标记 — 类型 3 用于为 BUM 流量设置路径。 |
低 |
NLRI 路由类型 4 |
以太网分段路由 — EVPN 类型 4 用于选择指定的转发器。 |
高 |
要确定 NLRI 路由类型的优先级,bgp-output-queue-priority priority
nlri-route-type
请在 EVPN 网络中的所有提供商边缘路由器和路由反射器上将 for 设置为 [edit policy-options policy-statement]
层次结构。在此示例中,为 NLRI 路由类型 1 和 NLRI 路由类型 4 配置了高优先级。
user@PE1#show policy-options policy-statement evpn-rt-priority-policy { term 1 { from { family evpn; nlri-route-type 1; } then { bgp-output-queue-priority priority 16; } } term 2 { from { family evpn; nlri-route-type 2; } then { bgp-output-queue-priority priority 1; } } term 3 { from { family evpn; nlri-route-type 3; } then { bgp-output-queue-priority priority 2; } } term 4 { from { family evpn; nlri-route-type 4; } then { bgp-output-queue-priority priority 16; } } }
有 17 个优先级输出队列:优先级最高的加急队列和 16 个编号队列,其中 1 的优先级最低,16 的优先级最高。
有关如何配置路由策略的详细信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能浏览器 查看您使用的平台是否支持某项功能。