EVPN 多宿主概述
EVPN 多宿主简介
以太网 VPN (EVPN) 由连接到提供商边缘 (PE) 设备的客户边缘 (CE) 设备组成,这些设备构成了 MPLS 基础架构的边缘。CE 设备可以是主机、路由器或交换机。PE 设备在客户边缘设备之间提供第 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 说明了客户边缘设备如何多宿主到两个 PE 路由器。设备 CE 1 多宿主到路由器 PE 1 和 PE 2。设备 CE 2 有两条可能到达设备 CE 1 的路径,并且根据冗余的多宿主模式,任何时候都只有一条路径或两条路径处于活动状态。多宿主操作模式还可确定将流量转发到 CE 设备的一个或多个 PE 路由器。将流量转发到 CE 设备的 PE 路由器(也称为指定转发器)使用 MPLS LSP 或 GRE 隧道转发流量。如果此路径出现故障,则会选择新的指定转发器将流量转发到设备 CE 1。
QFX10000交换机支持的 EVPN MPLS 多宿主功能
从 Junos OS 17.4R1 开始,QFX10000交换机支持 EVPN MPLS 的多宿主。仅支持主动-主动多宿主。支持以下子功能:
ESI 配置(仅支持类型 0 手动配置和 IFD(物理接口))
别名和标签路由
EVPN 4 类路由(以太网分段路由)
扩展社区
流浪汉流量
指定转发器选择 (DF) 角色:DF 和 BDF
MPLS EVPN 核心上的QFX10000交换机仅支持默认交换机路由实例。不支持 EVPN 实例 (EVI)。
ACX5448 路由器上的 EVPN MPLS 多宿主
从 Junos OS 19.4R1 版开始,ACX5448 路由器支持 EVPN MPLS 的多宿主。仅支持主动-主动多宿主。要在路由器上启用 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— 当客户边缘设备多宿主到两个或更多 PE 路由器时,以太网链路集构成一个以太网段。以太网段显示为 CE 设备的链路聚合组 (LAG)。
从路由器 PE1 和 PE2 到设备 CE1 的链路形成以太网段。
在主动-备用多宿主中,构成以太网段的链路形成一个桥接域。在主动-主动多宿主中,以太网段显示为 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) 是跨越参与该 VPN 的所有 PE 路由器的 EVPN 路由和转发实例。PE 路由器上为每个客户配置 EVI。每个 EVI 都有一个唯一的路由识别符和一个或多个路由目标。
在路由器 PE1、PE2 和 PE3 上配置 EVI。
Ethernet tag— 以太网标记标识特定广播域,例如 VLAN。EVPN 实例由一个或多个广播域组成。以太网标记由给定 EVPN 实例的提供商分配给该实例的广播域。该 EVPN 实例中的每个 PE 路由器都会在其每个连接的 CE 设备可理解的广播域标识符与相应的以太网标记之间执行映射。
Ethernet segment route (EVPN Type 4 route)— 连接到多宿主客户边缘设备的 PE 路由器使用 BGP 以太网段路由消息来发现每个 PE 路由器都连接到同一以太网段。PE 路由器通告以太网分段路由,该路由由 ESI 和 ES 导入扩展社区组成。
路由器 PE1 和 PE2 使用 ES 导入扩展社区(以及路由目标等其他扩展社区)通告 ES 路由。PE 路由器还构造基于 ES-import 扩展社区的过滤器,这样只有这些 PE 路由器导入 ES 路由并确定它们是否连接到同一以太网段。
Extended community— 扩展社区在大多数方面与常规社区相似。EVPN 使用扩展社区,因为 4 个八位字节常规社区值无法提供足够的扩展和灵活性。扩展社区是一个 8 个八位字节的值,分为两个主要部分。
BUM traffic— 此类流量被发送到多个目标,包括广播流量、在以太网段中广播的未知单播流量和组播流量。
DF— 当客户边缘设备多宿主到两个或更多 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 多宿主的主动-主动操作模式。在此方案中,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) 使用 ESI MPLS 标签扩展社区(备用位设置为 1)通告每个以太网分段的自动发现路由。自动发现路由按 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-import 扩展社区相关联,其 ESI 值压缩为 6 个字节,类似于路由目标。
此路由仅由播发以太网段上多宿主的 PE 路由器播发和导入。
以太网分段路由通告
以太网分段路由通过 ES-import 扩展社区在数据中心内的所有 PE 路由器之间进行交换。ES-import 扩展社区是基于多宿主的 ESI PE 路由器构建的,以太网分段路由携带与 PE 路由器多宿主的以太网段相关的 ESI 值。
以太网分段路由基于 ES-import 扩展社区进行过滤,因此只有在同一以太网分段上多宿主的 PE 路由器才会导入此路由。连接到特定以太网段的每个 PE 路由器都会构造一个导入过滤规则,以导入承载 ES-import 扩展社区的路由。
每个 EVPN 实例的自动发现路由
在主动-主动模式下,每个多宿主 PE 设备都会使用有效的 MPLS 标签通告每个 EVPN 实例 (EVI) 的自动发现路由。此路由按 ESI 播发,并由远程 PE 设备导入。每个 EVI 的自动发现路由中包含的 MPLS 标签稍后将用于混叠。
新的扩展社区
扩展社区在大多数方面与常规社区相似。某些网络实现(如虚拟专用网络 (VPN))使用扩展社区,因为 4 个八位字节的常规社区值无法提供足够的扩展和灵活性。扩展社区是一个 8 个八位字节的值,分为两个主要部分。
为了支持主动-备用多宿主,引入了以下扩展社区:
ESI-导入
此扩展社区连接到 ES 路由,并从接口下配置的 ESI 值中提取的 ESI 导入值进行填充。为了解决与其他常规路由目标冲突的问题,将类型设置为 0x06,该类型已由 IANA 分配。
ESI 导入扩展社区路由目标填充为特殊实例配置的导入路由目标列表,从中通告使用此社区的 ES 路由。
因此,如果 PE 路由器配置了具有相同 ESI 值的以太网段,则 PE 路由器将导入扩展社区中具有相同 ESI 导入值的传入 ESI 路由。一旦 PE 路由器收到一组具有相同 ESI 导入扩展社区值的 ESI 路由,就可以在本地完成 DF 和 BDF 选择。
如果未隐式创建 ESI 导入扩展社区,则必须配置一个策略以将所有路由目标附加到每个以太网段的自动发现路由。
水平分割
以 图 3 为例,当以太网段 (ESI1) 上两个或多个 PE 设备多宿主并在主动-主动冗余模式下运行的 CE 设备向其中一个非 DF PE 设备(例如 PE1)发送 BUM 数据包时,设备 PE1 将该数据包转发到该 EVPN 实例中的全部或部分其他 PE 设备, 包括该以太网段的 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 查找以切换数据包。
以下路由在 EVPN 组播的 mpls.0 表中编程:
(组播标签,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 将代理 MAC 和 IP 地址路由通告从多宿主的 PE 发送到 CE 设备。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 通告路由类型在 BGP NLRI 中通告 MAC 地址。
MAC 学习有两种类型:
本地 MAC 学习 — PE 路由器必须通过标准协议支持本地 MAC 学习过程。
远程 MAC 学习 — 本地学习过程完成后,PE 路由器可以通过 MP-IBGP 将本地学习的 MAC 地址播发至远程 PE 路由器节点。通过 MP-IBGP 接收附属客户的远程 MAC 地址的过程称为远程 MAC 学习过程。
MAC 通告路由类型用于将 BGP 中本地获知的 MAC 地址通告到远程 PE 路由器。如果播发单个 MAC 地址,则 IP 地址字段对应于该 MAC 地址。如果 PE 路由器看到来自客户边缘设备的 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 流量)。在多宿主 EVPN 中,BUM 流量按如下方式转发:
在主动-备用模式下
CE 到核心 — CE 设备将所有 BUM 流量泛洪到以太网段中的所有链路。具有活动路径的 DF PE 路由器将 BUM 数据包转发到核心。处于待机模式的 BDF PE 路由器会丢弃来自客户边缘设备的所有流量,因为接口的 EVPN 多宿主状态处于阻止状态。但是,如果客户边缘设备使用单独的链路或 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 都需要一个这样的下一跃点。
以下泛洪路由在主动-主动模式下使用:
全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 中,主动-主动模式下的混叠工作原理如下:
ESI1 在路由器 PE1、PE2 和 PE3 上配置。路由器 PE1、PE2 和 PE3 为 ESI1 通告每个以太网段的自动发现路由。
设备 CE1 使用源 MAC 地址 (MAC1) 将第 2 层流量发送到路由器 PE1。
路由器 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 未收到任何自动发现路由,则 PE4 对 MAC1 进行编程,下一跃点指向路由器 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 主动-主动多宿主和多机箱链路聚合
当客户边缘设备配置了朝向 PE 设备的 LAG 时,以下两个选项可用于在 PE 设备上运行 LACP:
在所有 PE 设备上配置相同的 LACP 系统 ID。
在 PE 设备上配置多机箱链路聚合。
使用 EVPN 配置多机箱链路聚合时,需要一组简化的主动-主动多机箱链路聚合过程。这些过程提供链路和节点级别的冗余。多机箱链路聚合对于 CE 设备完全透明,并以纯 LAG 的形式实现。多机箱链路聚合也在端口级别运行。这实质上意味着,如果多机箱链路聚合配置为主动-主动,则多机箱链路聚合端口上的所有 VLAN 都将在主动-主动多宿主模式下工作。
将多机箱链路聚合与 EVPN 一起配置时,需要考虑以下因素:
必须启用多机箱链路聚合和 EVPN ESI 才能仅在主动-主动模式下工作。
使用 EVPN 实现多机箱链路聚合不需要以下功能:
Mac 同步 — 此操作在 EVPN 的 BGP 控制平面中执行。
ICL 链接 — 这由 EVPN 的混叠功能处理。
ARP 同步 — 这由具有 IRB 功能的 BGP 控制平面处理。
EVPN 主动-主动多宿主和 IRB
配置 IRB 后,EVPN 路由将同时包含 MAC 和 IP 信息。主动-主动多宿主需要在多宿主 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。
指定货运代理选择
以下各节讨论DF选举:
DF 选举角色
指定转发器 (DF) 选择过程涉及选择转发角色,如下所示:
Designated forwarder (DF)— 只能通过宣布关联 MAC 通告路由的 PE 路由器访问客户站点的 MAC 地址。此 PE 路由器是选择将 BUM 流量转发到多宿主客户边缘设备的主 PE 路由器,称为指定转发器 (DF) PE 路由器。
Backup designated forwarder (BDF)— 其他 PE 路由器集中的每个 PE 路由器为同一 ESI 通告每个以太网段的自动发现路由,并在 DF 发生故障时充当备份路径,称为备份指定转发器 (BDF)。
作为 DF 选择过程的结果,如果选择本地 PE 路由器作为 BDF,则连接到客户站点的多宿主接口将进入主动-备用模式的阻止状态。接口将一直处于阻塞状态,直到 PE 路由器被选为接口所属以太网段的 DF。
-
Non-designated forwarder (non-DF)— 未选择作为 DF 的其他 PE 路由器。BDF也被认为是非DF。
根据 RFC 7432 进行 DF 选举
DF 选举程序
以 ESI 和 EVI 的粒度进行 DF 选择的默认过程称为服务雕刻。通过 服务划分, 可以为每个以太网段选择多个 DF(每个 EVI 一个),以便对发往给定以太网段的多目标流量执行负载平衡。负载平衡过程在 PE 节点之间均匀地划分 EVI 空间,这样每个 PE 都是一组不相交的 EVI 的 DF。
服务雕刻的过程如下:
当 PE 路由器发现连接的以太网段的 ESI 时,它会使用关联的 ES-import 扩展社区属性通告每个以太网段的自动发现路由。
然后,PE 路由器启动一个计时器(默认值为 3 秒),以允许从连接到同一以太网段的其他 PE 节点接收自动发现路由。在连接到同一以太网段的所有 PE 路由器上,此计时器值必须相同。
可以使用配置语句覆盖
designated-forwarder-election-hold-time
默认等待计时器。计时器到期时,每个 PE 路由器将按数字递增顺序构建连接到以太网段的所有 PE 节点(包括自身)的 IP 地址的有序列表。然后,每个 PE 路由器都有一个序号,指示其在有序列表中的位置,从 0 开始,作为具有数字最低 IP 地址的 PE 的序号。序号用于确定哪个 PE 节点是以太网段上给定 EVI 的 DF。
被选为给定 EVI 的 DF 的 PE 路由器会取消阻止与该 EVI 关联的以太网标记的流量。DF PE 可取消阻止流向以太网段出口方向的多目标流量。所有非 DF PE 路由器将继续在流向以太网段的出口方向上丢弃多目标流量(对于关联的 EVI)。
在图 3 中,在路由器 PE1、PE2 和 PE3 之间选择用于主动-主动多宿主的 DF。作为此 DF 选择的结果,这些路由器中的每一个都可以成为 ESI1 上配置的一系列 VLAN 中特定 VLAN 的 DF。DF 负责转发它被选为 DF 的 ESI 和 VLAN 上的 BUM 流量。非 DF PE 路由器会阻止该特定以太网段上的 BUM 流量。
DF 选举触发器
通常,DF 选举过程在以下情况下触发:
当接口新配置了非零 ESI 时,或者当 PE 路由器从与核心隔离(无 BGP 会话)状态转换为连接到核心(已建立 BGP 会话)状态时,将施加等待计时器。默认情况下,接口将处于阻塞状态,直到 PE 路由器被选为 DF。
完成 DF 选择过程后,PE 路由器将接收新的以太网分段路由或检测到现有以太网分段路由的撤销,而无需强加等待计时器。
当非 DF PE 路由器的接口从链路故障中恢复时,PE 路由器不知道其他 PE 路由器施加的等待时间。因此,不会为恢复的 PE 路由器设置等待计时器,以避免流量丢失。
基于偏好的 DF 选择
基于 RFC 7432 的 DF 选择不能满足某些服务提供商所需的某些操作要求。作为解决此问题的方法,从 Junos OS 17.3 版开始,可以使用 ESI 的管理首选项值来控制多宿主 EVPN 网络中的 DF 选择。
在默认的 DF 选择过程中(如 RFC 7432 中指定),DF 是从具有模操作的多宿主设备之一中随机选择的。通过基于首选项的 DF 选择,将使用接口配置选项(如首选项值、不抢占 (DP) 位以及路由器 ID 或环路地址)手动选择 DF。
基于偏好的DF选举程序
EVPN 和 PBB-EVPN 支持基于首选项的 DF 选择,并允许手动选择 DF。当需要根据接口属性(例如与接口关联的带宽)选择 DF 时,此功能非常有用。
基于首选项的 DF 选择按如下方式执行:
DF 选择类型和首选项值在 ESI 下配置。默认情况下,基于首选项的 DF 选择类型基于模 (MOD) 操作。
配置的首选项值和 DP 位将使用 EVPN 4 类路由中的 DF 选择扩展社区通告到多宿主 PE 设备。
收到 EVPN 4 类路由后,PE 设备将按优先级值、DP 位和 IP 地址的顺序构建候选 DF 设备列表。
当 DF 计时器过期时,PE 设备将根据最高首选项值选择 DF。
默认情况下,DF 是根据每个 EVI 的最高优先级选出的。但是,当语句包含在层次结构级别时
[edit routing-instances routing-instance-name protocols evpn]
,基于首选项的 DF 选择允许根据最低首选项值designated-forwarder-preference-least
选择 DF。注意:designated-forwarder-preference-least
两个多宿主 EVI 上的配置应相同;否则可能会有两个 DF 导致流量丢失或环路。配置相同的首选项值后,PE 设备将根据 DP 位选择 DF。当 DP 位也相同时,将根据最低 IP 地址选择 DF。
DF 选择算法不匹配
当本地配置的 DF 选择算法与远程 PE 设备的 DF 选择算法不匹配时,所有 PE 设备都应回退到 RFC 7432 中指定的默认 DF 选择。
DF 选择算法迁移
在将旧的 DF 选择迁移到新的 DF 选择期间,预计将在维护时段内通过关闭 ESI 和更改 DF 选择算法来更改配置。
要执行迁移,请执行以下操作:
软件升级后,在非 DF 设备上关闭具有相同 ESI 的所有接口。
在 DF PE 上配置新的 DF 选择算法。
在其他多宿主 PE 设备上配置 DF 选择算法。
启动非 DF PE 设备上的所有接口。
更改维护首选项
迁移 DF 选举算法后,并且所有多宿主 PE 设备都在运行基于首选项的 DF 选择算法,只需更改配置的首选项值即可执行现有 DF 上所需的维护任务。这将更改给定 ESI 的 DF。
要更改给定 ESI 的 DF,请执行以下操作:
将当前非 DF 设备上的首选项值更改为更高的值。
将当前 DF 设备上的首选项值更改为较低的值。
更改 ESI 的首选项值可能会导致在将更新的 BGP 路由传播中的延迟与新首选项值集成所需的短时间内丢失一些流量。
虚拟交换机的 DF 选择
虚拟交换机允许在单个 EVPN 实例 (EVI) 中使用多个桥接域。虚拟交换机还支持中继端口和接入端口。Junos OS 允许在端口上提供灵活的以太网服务;因此,单个端口上的不同 VLAN 可以是不同 EVI 的一部分。
虚拟交换机的 DF 选择取决于以下因素:
端口模式 — 子接口、中继接口和接入端口
EVI 模式 — 具有 EVPN 和 EVPN-EVI 的虚拟交换机
在虚拟交换机中,多个以太网标记可以与单个 EVI 相关联,其中 EVI 中数字最低的以太网标记值用于 DF 选择。
处理故障转移
在以下情况下,可能会发生故障转移:
DF PE 路由器失去其 DF 角色。
DF PE 路由器上出现链路或端口故障。
失去 DF 角色后,DF PE 路由器上面向客户的接口将处于阻止状态。
在链路或端口发生故障时,将触发 DF 选择过程,从而导致选择 BDF PE 路由器作为 DF。届时,单播流量和 BUM 流量会受到如下影响:
单播流量
CE 到核心 — CE 设备继续在所有链路上泛洪流量。之前的 BDF PE 路由器将接口的 EVPN 多宿主状态从阻塞状态更改为转发状态,并且通过此 PE 路由器学习和转发流量。
核心到 CE — 发生故障的 DF PE 路由器会撤回每个以太网段的自动发现路由和本地获知的 MAC 路由,从而导致远程 PE 路由器将流量重定向到 BDF。
将 BDF PE 路由器转换为 DF 角色可能需要一些时间,从而导致接口的 EVPN 多宿主状态继续处于阻止状态,从而导致流量丢失。
流浪汉流量
CE 到核心 — 所有流量都路由到 BDF。
核心到 CE — 远程 PE 路由器会淹没核心中的 BUM 流量。
物理、聚合以太网和逻辑接口上的 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
set interfaces ae0 unit 2
在聚合以太网接口 ae0 上配置的所有逻辑接口也都处于关闭状态,这使得逻辑接口 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
EVPN 网络中的所有提供商边缘路由器和路由反射器上设置 [nlri-route-type
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 是最高优先级。
有关如何配置路由策略的更多信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。