EVPN 多宿主功能概述
EVPN 多宿主简介
以太网 VPN (EVPN) 由连接到提供商边缘 (客户边缘) 设备的客户边缘 (CE) 设备组成,这些设备构成了 MPLS 基础架构的边缘。客户边缘设备可以是主机、路由器或交换机。PE 设备在客户边缘设备之间提供第 2 层虚拟网桥连接。提供商网络中可以有多个 EVPN。PE 路由器之间的学习使用 BGP 在控制平面中进行,这与传统桥接不同,传统桥接在数据平面中学习。
在早于 Junos OS 15.1 的版本中,MX 系列路由器上的 EVPN 功能支持仅限于使用 MPC 和 MIC 接口的路由器。在较新的 Junos OS 版本中,可以使用使用 DPC 的 MX 系列路由器在面向 CE 设备的客户边缘接口上提供 EVPN 支持。
同时考虑以下事项,为 EVPN 提供 DPC 支持:
-
DPC 在主动-备用模式下为 EVPN 提供支持,包括对以下方面的支持:
-
EVPN 实例 (EVI)
-
虚拟交换机
-
集成路由和桥接 (IRB) 接口
-
-
用于提供 EVPN 主动-备用支持的 DPC 必须是面向客户边缘设备的线卡。EVPN 域中的 PE 设备必须是 MPC 接口或 MIC 接口。
EVPN 多宿主功能允许您将客户站点连接到两个或更多 PE 设备,以提供冗余连接。一个客户边缘设备可以多宿主到不同的 PE 设备或同一 PE 设备。冗余 PE 设备可以在检测到故障后立即向客户站点提供网络服务。因此,在发生以下类型的网络故障时,EVPN 多宿主有助于保持 EVPN 服务以及与多宿主站点之间的流量转发:
-
PE 设备到客户边缘设备链路故障
-
PE 设备故障
-
本地 PE 设备与远程 PE 设备之间的 MPLS 可达性故障
图 1 说明了客户边缘设备如何多宿主到两个 PE 路由器。设备客户边缘 1 与路由器 PE 1 和 PE 2 多宿主。设备客户边缘 2 有两条可能路径可以到达设备客户边缘 1,并且根据冗余的多宿主模式,始终只有一条路径或两个路径处于活动状态。多宿主操作模式还决定了哪些 PE 路由器或路由器将流量转发到客户边缘设备。将流量转发到客户边缘设备(也称为指定转发器)的 PE 路由器使用 MPLS LSP 或 GRE 隧道来转发流量。如果此路径发生故障,则会选择新的指定转发器将流量转发至设备客户边缘 1。
QFX10000 交换机支持的 EVPN MPLS 多种功能
从 Junos OS 17.4R1 版开始,QFX10000 交换机支持 EVPN MPLS 的多宿主。仅支持主动-主动多宿主。支持以下子功能:
-
ESI 配置(仅支持 0 类手册配置和 IFD(物理接口))
-
混叠和标签路由
-
EVPN 4 类路由(以太网分段路由)
-
扩展社区
-
BUM 流量
-
指定转发器选择 (DF) 角色:DF 和 BDF
通过 MPLS EVPN 核心的 QFX10000 交换机仅支持默认交换机路由实例。不支持 EVPN 实例 (EVI)。
ACX5448 路由器上的 EVPN MPLS 多宿主
从 Junos OS 19.4R1 版开始,ACX5448 路由器支持 EVPN MPLS 的多宿主。仅支持主动-主动多宿主。要在 ACX5448 路由器上启用 EVPN A/A 多宿主,请在 [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 路由器时,以太网链路集构成一个以太网分段。以太网分段显示为客户边缘设备的链路聚合组 (LAG)。
从路由器 PE1 和 PE2 到设备 CE1 的链路形成一个以太网分段。
在主动-备用多宿主中,构成以太网段的链路形成桥接域。在 A/A 多宿主中,以太网段显示为 客户边缘 设备的 LAG。
-
ESI— 以太网分段必须具有唯一的非零标识符,称为以太网分段标识符 (ESI)。ESI 编码为 10 个八位位组的整数。手动配置 ESI 值时,最高有效八位位组(称为类型字节)必须为 00。当单宿主客户边缘设备连接到以太网段时,整个 ESI 值为零。
多宿主设备 CE1 的以太网段分配了 00:11:22:33:44:55:66:77:88:99。单宿主设备 CE2 的 ESI 值为 0。
-
EVI— EVPN 实例 (EVI) 是跨越参与该 VPN 的所有 PE 路由器的 EVPN 路由和转发实例。EVI 是根据每个客户在 PE 路由器上配置的。每个 EVI 都有一个唯一的路由识别符和一个或多个路由目标。
在路由器 PE1、PE2 和 PE3 上配置了 EVI。
-
Ethernet tag— 以太网标记标识特定广播域,例如 VLAN。EVPN 实例由一个或多个广播域组成。以太网标记由该 EVPN 的提供商分配给给定 EVPN 实例的广播域。该 EVPN 实例中的每个 PE 路由器都会在其连接的每个客户边缘设备所理解的广播域标识符与相应的以太网标记之间执行映射。
-
Ethernet segment route (EVPN Type 4 route)— 连接到多宿主客户边缘设备的 PE 路由器使用 BGP 以太网段路由消息来发现每个 PE 路由器是否连接到同一以太网段。PE 路由器播发由 ESI 和 ES 导入扩展社区组成的以太网分段路由。
路由器 PE1 和 PE2 使用 ES 导入扩展社区(以及路由目标等其他扩展社区)播发 ES 路由。PE 路由器还会构造基于 ES 导入扩展社区的过滤器,这会导致只有这些 PE 路由器导入 ES 路由并识别它们连接到同一以太网段。
-
Extended community— 扩展社区在大多数方面与常规社区相似。EVPN 使用扩展社区,因为 4 个八位字节的常规社区值无法提供足够的扩展和灵活性。扩展社区是一个 8 个八位字节的值,分为两个主要部分。
-
BUM traffic— 这种类型的流量被发送到多个目标,包括广播流量、在以太网段中广播的未知单播流量和组播流量。
-
DF— 当一个客户边缘设备连接到两个或多个 PE 路由器时,根据多宿主操作模式,将使用一个或全部多宿主 PE 路由器到达客户站点。承担将 BUM 流量转发到 客户边缘设备的主要角色的 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 多宿主。客户边缘设备上的以太网段可以配置为链路聚合组 (LAG) 或 ECMP 路径。设备 CE1 和 CE3 是单宿主客户边缘设备,ESI 值为 0。
EVPN 多宿主实施
EVPN 主动-备用多宿主操作模式为多宿主客户边缘设备提供接入链路故障和 PE 节点故障的冗余,它基于 EVPN draft-ietf-l2vpn-evpn-03。
EVPN 多宿主、主动-备用和主动-主动操作模式的 Junos OS 实施包括:
- 新的 BGP NLRI
- 新的扩展社区
- 较新的 EVPN 路由类型
- 多宿主代理 MAC 和 IP 地址路由通告
- 更新到 MAC 转发表
- 信息流
- 混淆
- EVPN A/A 多宿主和多机箱链路聚合
- EVPN A/A 多宿主和 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 配置发生更改时,将使用批量撤销功能。
当多宿主客户边缘设备与多宿主 PE 设备之间的链路发生故障时,PE 设备将撤回每个以太网段的自动发现路由。在这种情况下,其他PE设备通过以下方式处理批量退出功能:
-
远程 PE 设备
当远程 PE 设备收到用于批量撤销的 BGP 更新时,将在远程 PE 设备上执行以下操作:
-
将删除到达远程 ESI 或客户边缘设备的当前下一跃点。
-
将创建穿过剩余多宿主 PE 设备的新下一跃点,以到达远程 ESI 或客户边缘设备。
-
客户边缘设备后面的所有 MAC 路由都将使用新创建的下一跃点进行更新。
从 Junos OS 17.4R1 版开始,Junos OS 可在 EVPN 网络中支持动态列出下一跃点。现在,当客户边缘设备与多宿主 PE 设备之间的链路发生故障时,ESI 或客户边缘的下一跃点将会更新,从而减少批量撤销的需要。有关启用动态列表下一跃点的详细信息,请参阅 配置动态列表下一跃点。
-
-
其他多宿主 PE 设备
由于批量撤销,多宿主客户边缘设备上发生负载平衡,原因如下:
-
当其他多宿主 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 路由器进行播发和导入。
以太网分段路由通告
以太网分段路由通过 ES-import 扩展社区在数据中心内的所有 PE 路由器之间进行交换。ES-import 扩展社区基于多宿主的 ESI PE 路由器构建,以太网分段路由携带与多宿主的以太网分段相关的 ESI 值。
以太网分段路由会根据 ES 导入扩展社区进行过滤,这样,只有在同一以太网分段上多宿主的 PE 路由器才能导入此路由。连接到特定以太网段的每个 PE 路由器都会构造一个导入过滤规则,用于导入承载 ES 导入扩展社区的路由。
每个 EVPN 实例的自动发现路由
在主动-主动模式下,每个多宿主 PE 设备都会为每个具有有效 MPLS 标签的 EVPN 实例 (EVI) 播发一个自动发现路由。此路由按 ESI 播发,并由远程 PE 设备导入。每个 EVI 的自动发现路由中包含的 MPLS 标签稍后将用于混叠。
新的扩展社区
扩展社区在大多数方面与常规社区相似。某些网络实施(如虚拟专用网 (VPN))使用扩展社区,因为 4 个八位字节的常规社区值无法提供足够的扩展和灵活性。扩展社区是一个 8 个八位字节的值,分为两个主要部分。
为了支持主动-备用多宿主,引入了以下扩展社区:
ESI 导入
此扩展社区连接到 ES 路由,并从接口下配置的 ESI 值中提取的 ESI 导入值进行填充。为了解决与其他常规路由目标发生冲突的问题,将类型设置为IANA分配的0x06。
ESI 导入扩展社区路由目标将填充为特殊实例配置的导入路由目标列表,从中播发使用此社区的 ES 路由。
因此,如果 PE 路由器配置了具有相同 ESI 值的以太网分段,则在扩展社区中具有相同 ESI-import 值的传入路由器将由 PE 路由器导入。一旦 PE 路由器收到一组具有相同 ESI-import 扩展社区值的 ESI 路由,就可以在本地完成 DF 和 BDF 选择。
如果未隐式创建 ESI 导入扩展社区,则必须配置一个策略,以便将所有路由目标连接到每个以太网段的自动发现路由。
水平分割
参考 图 3 例如,如果与以太网段 (ESI1) 上的两个或多个 PE 设备多宿主,且在主动-主动 冗余 模式下运行的 客户边缘 设备向其中一台非 DF PE 设备(如 PE1)发送 BUM 数据包,则设备 PE1 会将该数据包转发至该 EVPN 实例中的所有或一部分其他 PE 设备, 包括该以太网段的 DF PE 设备。在这种情况下,客户边缘设备多宿主的 DF PE 设备将丢弃数据包,而不将其转发回客户边缘设备。此过滤称为水平分割。
-
水平分割信令
水平分割扩展社区附加到每个以太网段的自动发现路由。扩展社区的值是水平分割或泊松标签本身,它是 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 数据包将发送到 DF PE 设备,其中包含两个 MPLS 标签:组播标签 B 作为外部标签,水平分割标签 A 作为内部标签。
在 EVPN 多宿主方案中,当组播标签 B 是标签堆栈中的唯一标签时,其 S 位会设置为 1。在这种情况下,需要在 DF PE 设备上的所有本地 ESI 上泛洪 BUM 数据包。但是,当水平分割标签 A 是标签堆栈中最里面的标签时,标签 B 的 S 位设置为 0。在这种情况下,需要在 DF PE 设备上的所有本地 ESI 上泛洪 BUM 数据包,映射到水平分割标签 A 的 ESI 除外。
假设数据包从多宿主客户边缘设备发送到多宿主分段 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 会将代理 MAC 和 IP 地址路由播发从多宿主的 PE 发送到客户边缘设备。Junos 在 EVPN 第 2 层属性扩展社区中使用代理标志,将邮件识别为代理 MAC 和 IP 地址通告。获知 MAC 和 IP 地址的 PE 会发送正常的 EVPN 2(MAC 和 IP 地址)路由播发。以太网分段上从远程 PE 获知新路由的 PE 现在会发送设置了代理位的 MAC 和 IP 地址路由消息。如果 MAC 和 IP 地址条目过时,或者 PE 和客户边缘之间的链路发生故障,则必须重新学习条目,并且流量可能会丢失。这样可以防止在与叶设备的某个连接发生故障时出现流量丢失。多宿主代理 MAC 将自动启用。
更新到 MAC 转发表
在主动-备用 EVPN 多宿主中,MAC 地址被视为可路由地址,MP-IBGP 协议用于承载客户 MAC 地址。PE 路由器的 MAC 学习不是发生在数据平面上,而是发生在控制平面中。这导致在学习机制方面应用了更多的控制。
PE 路由器在数据平面中对来自特定 EVI 的客户网络的数据包执行 MAC 学习。对于位于其他 PE 路由器后面的客户边缘 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 路由器看到来自客户边缘设备的 IP 地址 ARP 请求,并且 PE 路由器具有该 IP 地址绑定的 MAC 地址,则 PE 路由器将执行 ARP 代理并响应 ARP 请求。
ARP 代理仅对网关执行,不对主机执行。
MPLS 标签字段取决于分配类型。PE 路由器可以为每个 EVI 的所有 MAC 地址通告单个 MPLS 标签,这需要最少数量的 MPLS 标签并节省 PE 路由器内存。但是,在转发到客户网络时,PE 路由器必须执行 MAC 查找,这可能会导致延迟并增加 CPU 周期数。
信息流
在 EVPN 多宿主中,流量在转发平面中执行。泛洪路由是为数据包泛洪而创建的,用于以下场景:
-
当本地 ESI 上收到数据包时
-
当从核心接收到数据包时
EVPN 多宿主中的流量可以基于两种流量类型:
-
单播流量
单播流量是一种点对点通信,一个发送方和一个接收方。在多宿主 EVPN 中,单播流量的转发方式如下:
-
在主动-备用模式下
-
客户边缘到核心 — 流量由 DF PE 路由器学习和转发。
-
核心到客户边缘 — 远程 PE 路由器从 DF 学习 MAC 地址,并将所有单播流量转发到 DF PE 路由器。
-
-
在主动-主动模式下
-
客户边缘到核心 — 流量负载均衡到所有连接的多宿主 PE 设备。
-
核心到客户边缘 — 来自远程 PE 设备的流量负载均衡到连接到远程客户边缘设备的所有多宿主 PE 设备。
-
-
-
BUM 流量
发送到多个目标的流量,包括广播流量、在以太网段中广播的未知单播流量和组播流量称为 BUM 流量。在多宿主 EVPN 中,BUM 流量的转发方式如下所示:
-
在主动-备用模式下
-
客户边缘到核心 — 客户边缘设备将任何 BUM 流量泛洪到以太网段中的所有链路。具有活动路径的 DF PE 路由器会将 BUM 数据包转发到核心。处于备用模式的 BDF PE 路由器将丢弃来自客户边缘设备的所有流量,因为接口的 EVPN 多宿主状态处于阻塞状态。但是,如果客户边缘设备使用单独的链路或 LAG 连接到 PE 设备,则 BUM 流量会同时到达 DF 和 BDF PE 设备。
-
核心到客户边缘 — 远程 PE 路由器将所有 BUM 流量泛洪到 DF 和 BDF PE 路由器。只有 DF 会将 BUM 流量转发至 客户边缘设备。BDF PE 路由器将丢弃所有流量,因为接口的 EVPN 多宿主状态处于阻止状态。
-
-
在主动-主动模式下
根据要求,可以在主动-主动模式下启用或禁用本地 ESI 之间的泛洪和交换。这被称为无本地切换行为。
EVPN 服务的核心在多宿主 PE 设备之间提供全网状连接。因此,EVPN 在核心中使用水平分割,因此从核心收到的数据包永远不会切换或泛洪回核心。相反,入口复制用于将数据包复制到远程 PE 设备。
要将数据包泛洪到远程 PE 设备,可以使用组播和水平分割下一跃点。组播下一跃点通过隧道使用包含组播标签的数据包组播,水平分割下一跃点使用带有组播标签和水平分割标签的数据包建立隧道。每个远程 PE 设备的每个多宿主 ESI 都需要一个这样的下一跃点。
在主动-主动模式下使用以下泛洪路由:
-
全客户边缘泛洪路由
本地 ESI 将此泛洪路由用于以下目的:
-
在本地 ESI 上对数据包进行泛洪(当允许本地交换时)。
-
将数据包泛洪到远程 PE 设备。远程 PE 设备在其本地 ESI 上泛洪数据包。
由于 BUM 流量仅由指定转发器 (DF) 转发,而不由非 DF 多宿主 PE 设备转发,因此非 DF 使用水平分割下一跃点将此数据包泛洪至其他 PE 设备。但是,PE 设备为其非 DF 的多宿主本地 ESI 不参与泛洪。
非 DF ESI 不会使用全客户边缘泛洪路由,并且会相应地创建这些泛洪路由的下一跃点。在这种情况下,将使用非 DF ESI 泛洪路由。
-
-
全 VE 泛滥路由
从核心接收数据包时使用此泛洪路由。它用于将从核心接收的数据包泛洪到本地 ESI。由于从核心接收的数据包可以仅带有组播标签,也可以同时带有组播标签和水平分割标签,因此必须遵循适当的转发规则,以便将数据包丢弃到映射到水平分割标签的多宿主 ESI 上。
-
非 DF 泛洪路由
此泛洪路由用于以下用途:
-
在本地 ESI 上泛洪数据包。
-
使用入口复制将数据包泛洪到远程 PE 设备,并为 ESI 的 DF 提供 SH 标签。
-
-
-
混淆
从 Junos OS 15.1 版开始,Junos OS 支持 EVPN 中的混叠。混叠是远程 PE 设备在具有相同以太网段的所有其他 PE 设备上向客户边缘设备均衡第 2 层单播流量的能力。
主动-主动模式下的混叠
在 图 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 的自动发现路由,因此它知道 MAC1 必须可以通过路由器 PE2 和 PE3 到达。路由器 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 条目如下所示:
标签 A 路由指向 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 A/A 多宿主和多机箱链路聚合
当客户边缘设备配置了面向 PE 设备的 LAG 时,以下两个选项可用于在 PE 设备上运行 LACP:
-
在所有 PE 设备上配置相同的 LACP 系统 ID。
-
在 PE 设备上配置多机箱链路聚合。
使用 EVPN 配置多机箱链路聚合时,需要精简的一组主动-主动多机箱链路聚合过程。这些过程提供链路和节点级别的冗余。多机箱链路聚合对客户边缘设备完全透明,并以纯 LAG 的形式实现。Multichassis 链路聚合也会在端口级别运行。这实质上意味着,如果将多机箱链路聚合配置为主动-主动,则多机箱链路聚合端口上的所有 VLAN 都将在主动-主动多宿主模式下工作。
当多机箱链路聚合与 EVPN 一起配置时,将考虑以下事项:
-
必须同时启用多机箱链路聚合和 EVPN ESI,才能仅在主动-主动模式下工作。
-
使用 EVPN 进行多机箱链路聚合不需要以下功能:
-
MAC 同步 — 这在 EVPN 的 BGP 控制平面中执行。
-
ICL 链路 — 这由 EVPN 的混叠功能处理。
-
ARP 同步 — 这由具有 IRB 功能的 BGP 控制平面处理。
-
EVPN A/A 多宿主和 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。
指定转发商选择
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 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 Type 4 用于选择指定转发器。 |
高 |
要确定 NLRI 路由类型的bgp-output-queue-priority priority优先级,请在 EVPN 网络中所有提供商边缘路由器和路由反射器上的 [edit policy-options policy-statement] 层次结构级别设置 fornlri-route-type。在此示例中,为 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 是最高优先级。
有关如何配置路由策略的详细信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。