Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

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。

图 1:采用两个 PE 路由器 CE Device Multihomed to Two PE Routers的多宿主 CE 设备

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 主动-主动多宿主,请将 evpn-mh-profile 配置语句包含在 [edit system packet-forwarding-options firewall-profile] 层次结构级别。

注意:

更改配置文件并提交之后,需要发出 restart chassis-control CLI 命令来启动新配置文件,从而重新启动机箱管理过程。

重新启动 PFE 时将显示系统日志警告。

了解 EVPN 多宿主概念

图 2 显示了用于定义 EVPN 多宿主概念的简单 EVPN 网络拓扑。.

图 2:简单 EVPN 拓扑 Simple EVPN Topology
  • Ethernet segment—当 CE 设备多宿主到两个或多个 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) 是一个 EVPN 路由和转发实例,跨越参与该 VPN 的所有 PE 路由器。EVI 按客户在 PE 路由器上配置。每个 EVI 都有一个唯一的路由识别器以及一个或多个路由目标。

    路由器 PE1、PE2 和 PE3 上配置了 EVI。

  • Ethernet tag- 以太网标记标识特定广播域,如 VLAN。EVPN 实例由一个或多个广播域组成。以太网标记由该 EVPN 的提供商分配给给定 EVPN 实例的广播域。该 EVPN 实例中的每个 PE 路由器都会在其连接的每个 CE 设备理解的广播域标识符和相应的以太网标记之间执行映射。

  • Ethernet segment 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 配置中,我们不支持主动备用多宿主模式。因此,如果在 single-active QFX 系列交换机或 EVPN-VXLAN 配置中配置选项,设备将忽略该配置项目。

  • 主动-主动 — 当允许连接到以太网分段的所有 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 多宿主的主动-主动模式。

    要配置主动-主动模式,请在层级添加 ESI 值和 all-active 语句 [edit interfaces]

    图 3 显示了 EVPN 主动-主动多宿主的参考拓扑。设备 CE2 的 ESI1 以太网分段多宿主路由器 PE1、PE2 和 PE3。CE 设备上的以太网分段可配置为链路聚合组 (LAG) 或 ECMP 路径。设备 CE1 和 CE3 是单宿主客户边缘设备,ESI 值为 0。

图 3:主动-主动 EVPN 多宿主 Active-Active EVPN Multihoming

EVPN 多宿主实施

EVPN 主动-备用多宿主操作模式基于 EVPN draft-ietf-l2vpn-evpn-evpn-03,可针对接入链路故障和 PE 节点故障提供冗余。

EVPN 多宿主主动-备用和主动-主动操作模式的 Junos OS 实施包括:

新 BGP NLR

为了支持 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 设备上执行以下操作:

    1. 到达远程 ESI 或 CE 设备的当前下一跃点将被删除。

    2. 将创建通过剩余的多宿主 PE 设备的新下一跃点以到达远程 ESI 或 CE 设备。

    3. 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 功能包括:

  • 这是 4 类路由。此路由的目的是使连接到同一以太网分段的 PE 路由器能够在交换此路由时以最小配置自动发现彼此。

  • 此路由与 ESI 值浓缩为 6 字节的 ES 导入扩展社区相关联,类似于路由目标。

  • 此路由仅由播发以太网分段上的多宿主 PE 路由器播发和导入。

以太网分段路由通告

以太网分段路由与 ES 导入扩展社区一起在数据中心内的所有 PE 路由器之间交换。ES 导入扩展社区基于多宿主 ESI PE 路由器构建,以太网分段路由携带与 PE 路由器多宿主的以太网分段相关的 ESI 值。

以太网分段路由会根据 ES 导入扩展社区进行过滤,这样,只有同一以太网分段上多宿主的 PE 路由器才能导入此路由。连接到特定以太网分段的每台 PE 路由器都会构造一个导入过滤规则,以导入承载 ES 导入扩展社区的路由。

每个 EVPN 实例的自动发现路由

在主动-主动模式下,每个多宿主 PE 设备都会使用有效的 MPLS 标签为每个 EVPN 实例 (EVI) 播发一个自动发现路由。此路由按 ESI 播发,并由远程 PE 设备导入。每个 EVI 自动发现路由中包含的 MPLS 标签稍后将用于混叠。

新的扩展社区

扩展社区在大多数方面都与普通社区相似。某些网络实施(如虚拟专用网 (VPN))使用扩展社区,因为 4 个八位组常规社区价值无法提供足够的扩展和灵活性。扩展社区是一个 8 八位位组值,分为两个主要部分。

为了支持主动-备用多宿主,我们引入了以下扩展社区:

ESI 导入

此扩展社区连接到 ES 路由,并从接口下配置的 ESI 值中提取的 ESI 导入值填充。为了解决与其他常规路由目标冲突的问题,将类型设置为 0x06,由 IANA 分配。

ESI 导入扩展社区路由目标填充为特殊实例配置的导入路由目标列表,在此实例中播发使用此社区的 ES 路由。

因此,如果 PE 路由器配置的以太网分段具有相同 ESI 值,则扩展社区中具有相同 ESI 导入值的传入 ESI 路由将由 PE 路由器导入。一旦 PE 路由器收到一组具有相同 ESI 导入扩展社区值的 ESI 路由,则可以在本地完成 DF 和 BDF 选择。

注意:

未隐式创建 ESI 导入扩展社区时,必须配置一个策略,将所有路由目标连接到每个以太网分段的自动发现路由。

分裂地平线

例如,参考 图 3 ,当一个多宿主到以太网分段 (ESI1) 上的两个或多个 PE 设备的 CE 设备在主动-主动冗余模式下将 BUM 数据包发送到一个非 DF PE 设备(例如 PE1)时,设备 PE1 会将该数据包转发至该 EVPN 实例中其他 PE 设备的所有或其他子集, 包括该以太网分段的 DF PE 设备在这种情况下,CE 设备采用多宿主的 DF PE 设备,无需将其转发回 CE 设备,即可丢弃数据包。此过滤称为水平分割。

  • 水平分割信令

    分裂的地平线扩展社区连接到每个以太网分段的自动发现路由。扩展社区的值是分裂水平或 Poisson 标签本身,这是 3 个字节,并播发为不透明的属性。

  • 水平分割广告

    • 在主动-备用模式下,分裂扩展社区中的备用位设置为 1,ESI 分割水平标签设置为 0。

    • 在主动-主动模式下,拆分水平扩展社区经过修改,将备用位清除为 0,并包含用于分割水平的有效 ESI 标签。

  • 水平分割 MPLS 路由

    DF PE 设备播发每个以太网分段的自动发现路由,带有分割水平标签 A,以及用于 BUM 流量转发的包含标签 B 的包容性组播路由。在 DF 上,来自核心的 BUM 数据包可附带以下标签:

    • 当非 DF PE 设备在其单宿主 ES 上收到 BUM 数据包时,BUM 数据包会发送到带有组播标签 B 的 DF PE 设备。

    • 当非 DF PE 设备在 ESI1 上收到 BUM 数据包时,BUM 数据包会使用两个 MPLS 标签(组播标签 B 作为外部标签,分割水平标签 A 作为内部标签)发送至 DF PE 设备。

    在 EVPN 多宿主场景中,当组播标签 B 是标签堆栈中唯一的标签时,将其 S 位设置为 1。在这种情况下,BUM 数据包需要在 DF PE 设备上的所有本地 ESI 上泛洪。但是,当分割水平标签 A 是标签堆栈中最内部的标签时,标签 B 的 S 位已设置为 0。在这种情况下,BUM 数据包需要在 DF PE 设备上的所有本地 EIS 上泛洪,但映射到分割水平标签 A 的 ESI 除外。

    假设数据包来自多宿主 CE 设备到多宿主分段 ESI1 上的非 DF PE 设备,当非 DF PE 设备将此数据包发送至 DF PE 设备时,将首先推送在每以太网分段自动发现路由中播发至非 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. 每个以太网分段的自动发现路由 —1:10.255.0.2:0::112233445566778899::0/304

  2. 每个 EVI 的自动发现路由 —1:100.100.100.1:1::22222222222222222222::0/304

  3. 以太网分段路由 —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 会从多宿主的 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 路由器在数据平面中对来自客户网络的数据包执行 MAC 学习,适用于特定 EVI。对于其他 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 路由器看到来自 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 ES 不会使用全 CE 泛洪路由,因此会相应地创建这些泛洪路由的下一跃点。在这种情况下,将使用非 DF ESI 泛洪路由。

      • 全 VE 泛洪路由

        当从核心接收数据包时,使用此泛洪路由。它用于将从核心接收的数据包泛洪到本地 ESI。由于从核心接收的数据包只能带有组播标签,或者同时带有组播标签和分期标签,因此必须遵循适当的转发规则,将数据包丢弃在映射到分割水平标签的多宿主 ESI 上。

      • 非 DF 泛洪路由

        此泛洪路由用于以下方面:

        • 在本地 ESI 上泛洪数据包。

        • 使用入口复制以及用于 ESI 的 DF 的 SH 标签,将数据包泛洪到远程 PE 设备。

混 叠

从 Junos OS 15.1 版开始,Junos OS 支持在 EVPN 中混叠。混叠是指远程 PE 设备将同一以太网分段的所有其他 PE 设备上的第 2 层单播流量负载均衡到 CE 设备的能力。

主动-主动模式下的混叠

图 3 中,主动-主动模式下的混叠如下所示:

  1. ESI1 在路由器 PE1、PE2 和 PE3 上配置。路由器 PE1、PE2 和 PE3 为 ESI1 播发每个以太网分段的自动发现路由。

  2. 设备 CE1 将带有源 MAC 地址 (MAC1) 的第 2 层流量发送至路由器 PE1。

  3. 路由器 PE1 学习上的 MAC1 地址(ESI1、vlan X),并使用 BGP 将其播发至所有 PE 路由器。

  4. 路由器 PE4 通过 BGP 接收 MAC1 路由。

  5. 由于路由器 PE4 还从路由器 PE2 和 PE3 接收了每个 EVI 的自动发现路由,因此知道 MAC1 必须通过路由器 PE2 和 PE3 进行访问。路由器 PE4 可构建其转发状态,以平衡路由器 PE1、PE2 和 PE3 中的 MAC1 第 2 层流量。

混叠和自动发现路由

来自路由器 PE2 和 PE3 的自动发现路由可以按任意顺序提供。因此,这些路由由第 2 层进程安装,如下所示:

  1. 从路由器 PE1 接收 MAC1 后,如果路由器 PE4 未收到任何自动发现路由,则 MAC1 由 PE4 进行编程,下一个跃点指向路由器 PE1。当 PE4 从同一 ESI 的路由器 PE2 接收自动发现路由时,将安装下一跃点,以便将 MAC1 的流量负载均衡到路由器 PE1 和 PE2。当 PE4 从同一 ESI 的路由器 PE3 接收自动发现路由时,将更新下一跃点,以在路由器 PE1、PE2 和 PE3 之间均衡 MAC1 的流量。

  2. 如果路由器 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 路由,尽管可以从路由器 PE1 远程学习 MAC。因此,数据包被转发到 ESI1。

EVPN 主动-主动多宿主和多机箱链路聚合

为 CE 设备配置面向 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 主动-备用多宿主配置示例:

  • 以太网接口配置

  • 单 VLAN 接口配置

注意:
  • ESI 值 0,所有 FF 均保留,不用于配置多宿主 Ehernet 分段。

  • 同一 EVI 中的两个接口不能配置相同的 ESI 值。

以下是 EVPN 主动-备用多宿主路由实例配置示例:

  • 路由实例配置

注意:

在主动-备用模式配置中,每个以太网分段的自动发现路由播发时,每个以太网分段的主动备用位设置为 1。

指定转发器选择

以下部分将讨论 DF 选择:

DF 选举角色

指定转发器 (DF) 选择过程涉及选择指定转发器 (DF) PE 路由器和备份指定转发器 (BDF) 或非 DF(非指定转发器 PE 路由器角色)。

  • DF— 来自客户站点的 MAC 地址只能通过通告关联的 MAC 播发路由的 PE 路由器访问。此 PE 路由器是选择用于将 BUM 流量转发至多宿主 CE 设备的主要 PE 路由器,称为指定转发器 (DF) PE 路由器。

  • BDF— 其他 PE 路由器集中的每个 PE 路由器都会针对同一 ESI 在每个以太网分段上传播自动发现路由,并在 DF 出现故障时充当备份路径,这些路由器称为备份指定转发器 (BDF) 或非 DF(非指定转发器)PE 路由器。

    由于 DF 选择流程,如果本地 PE 路由器被选为 BDF,则连接到客户站点的多宿主接口将处于主动-备用模式的阻止状态。接口将一直处于阻止状态,直到 PE 路由器被选为接口所属的以太网分段的 DF。

根据 RFC 7432 选择 DF

DF 选举程序

以 ESI 和 EVI 的精细度进行 DF 选择的默认过程称为服务雕刻。借助 服务雕刻, 可以为每个以太网分段选择多个 DF(每个 EVI 一个),以便对发往给定以太网分段的多配置流量执行负载平衡。负载平衡过程均匀地在 PE 节点之间分配了 EVI 空间,使得每个 PE 都是一组不相交的 EVI 的 DF。

服务雕刻的程序如下:

  1. 当 PE 路由器发现所连接的以太网分段的 ESI 时,它会通过关联的 ES 导入扩展社区属性通告每个以太网分段的自动发现路由。

  2. 然后,PE 路由器启动计时器(默认值为 3 秒),以允许接收来自连接到同一以太网分段的其他 PE 节点的自动发现路由。在连接到同一以太网分段的所有 PE 路由器上,此计时器值必须相同。

    可以使用配置语句覆盖 designated-forwarder-election hold-time 默认等待计时器。

  3. 计时器到期后,每个 PE 路由器都会按增加顺序构建连接到以太网分段(包括本身)的所有 PE 节点的有序 IP 地址列表。然后,每个 PE 路由器都有一个序号,表示其在有序列表中的位置,从 0 开始作为数字上最低的 IP 地址的 PE 的序号。序数用于确定哪个 PE 节点是以太网分段上给定 EVI 的 DF。

  4. 为给定 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 选择按如下执行:

  1. DF 选择类型和首选项值在 ESI 下配置。默认情况下,基于优先级的 DF 选择类型基于模数 (MOD) 操作。

  2. 配置的优先级值和 DP 位使用 DF 选择扩展社区在第 4 类路由中使用多宿主 PE 设备播发。

  3. 接收 4 类路由后,PE 设备将按优先级值、DP 位和 IP 地址的顺序构建候选 DF 设备列表。

  4. DF 计时器到期后,PE 设备将根据最高的优先级值选择 DF。

    默认情况下,DF 根据每个 EVI 的最高优先级进行选择。但是,当语句包含在[edit routing-instances routing-instance-name protocols evpn]层次结构级别时designated-forwarder-preference-least,基于优先级的 DF 选择允许基于最低优先级值来选择 DF。

    注意:

    designated-forwarder-preference-least 宿主 EVI 上的配置应相同;否则可能会有两个DF 导致流量丢失或环路。

  5. 配置相同的优先级值后,PE 设备将根据 DP 位选择 DF。当 DP 位也相同时,将根据最低 IP 地址选择 DF。

DF 选择算法不匹配

本地配置的 DF 选择算法与远程 PE 设备的 DF 选择算法不匹配时,所有 PE 设备应回退到 RFC 7432 中规定的默认 DF 选择。

DF 选择算法迁移

在将旧 DF 选择迁移到新的 DF 选择期间,需要通过降低 ESI 并更改 DF 选择算法来在维护时段更改配置。

要进行迁移,请执行以下操作:

  1. 软件升级后,非 DF 设备上的所有具有相同 ESI 的接口都关闭。

  2. 在 DF PE 上配置新的 DF 选择算法。

  3. 在其他多宿主 PE 设备上配置 DF 选择算法。

  4. 启动非 DF PE 设备上的所有接口。

维护偏好的改变

迁移 DF 选择算法且所有多宿主 PE 设备均运行基于优先级的 DF 选择算法之后,只需更改配置的优先级值,即可执行对现有 DF 所需的维护任务。这会更改给定 ESI 的 DF。

要更改给定 ESI 的 DF:

  1. 将当前非 DF 设备上的优先级值更改为更高的值。

  2. 将当前 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 多宿主状态继续处于阻止状态,从而导致流量丢失。

BUM 流量

  • 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 网络中自动生成的 EVI

EVPN 网络中的融合

如果大规模 EVPN 系统中的网络拓扑发生变化,融合时间可能很大。您可以确定 NLRI 更新的优先级,这些更新对于路由策略中的路由选择至关重要,以改善融合。 表 1 列出了 NLRI 路由类型和必须在路由策略中配置的优先级。

表 1: NLRI 路由类型的优先级

NLRI 路由类型

描述

优先

NLRI 路由类型 1

以太网自动发现路由 — Type 1 支持快速融合和混叠,用于向 MAC 大规模撤销发出信号。

NLRI 路由类型 2

MAC/IP 通告路由 — Type 2 用于播发 EVPN 网络中的 MAC 地址和 IP 地址。

NLRI 路由类型 3

包含组播以太网标记 — 类型 3 用于为 BUM 流量设置路径。

NLRI 路由类型 4

以太网分段路由 — 类型 4 用于选择指定转发器。

要确定 NLRI 路由类型的优先级,请bgp-output-queue-priority prioritynlri-route-type设置 EVPN 网络中所有提供商边缘路由器和路由反射器上的 [edit policy-options policy-statement] 层次结构级别。在此示例中,为 NLRI 路由类型 1 和 NLRI 路由类型 4 配置了高优先级。

注意:

共有 17 个优先级输出队列:优先级最高的加速队列和 16 个编号队列,其中 1 个优先级最低,16 个为最高。

有关如何配置路由策略的更多信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南

版本历史记录表
释放
描述
18.4R1
从 Junos OS 18.4R1 版开始,您可以配置聚合以太网接口和聚合以太网逻辑接口,以自动从 LACP 配置派生 ESI。
17.4R1
从 Junos OS 17.4R1 版开始,Junos OS 支持 EVPN 网络中动态列表下一跃点。
16.1R4
从 Junos OS 16.1R4 和 16.2R2 版开始,所有 EX9200 交换机都支持 EVPN 多宿主的主动-主动模式。
16.1R4
从 Junos OS 17.4R1 QFX10000 版本开始,交换机支持 EVPN 多宿主的主动-主动模式。
15.1F6
为了更好地利用 EVPN 多宿主主动-备用或主动-主动模式下的逻辑接口,从适用于 MX 系列路由器的 Junos OS 15.1F6 和 17.1R1 版和 EX9200 交换机的 Junos OS 17.3R1 版开始,您可以指定逻辑接口上的 ESI。因此,即使某个逻辑接口是非 DF,同一物理或聚合以太网接口上的其他逻辑接口仍然可以为其各自的客户站点 (VLAN) 提供服务。
15.1
从 Junos OS 15.1 版开始,Junos OS 支持在 EVPN 中混叠。
14.1x53-D30
从 QFX5100 交换机的 Junos OS 14.1x53-D30 版和 EX4600 交换机的 Junos OS 18.2R1 版开始,这些交换机支持 EVPN 多宿主的主动-主动操作模式。
14.1R4
从 Junos OS 14.1R4、14.2、15.1F6 和 16.1R1 版开始,Junos OS 支持 MX 系列路由器上的 EVPN 多宿主的主动-主动模式。