Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

借助 EVPN-VXLAN 多宿主技术快速重新路由以保护出口链路

您可以在 EVPN-VXLAN 网络中的多宿主对等提供商边缘 (PE) 设备上启用快速重新路由出口链路保护 (ELP) 功能。此功能缩短了路由收敛时间,并避免在 PE 设备链接到 CE 设备失败时流向多宿主客户边缘 (CE) 设备的负载均衡流量损失。

好处

  • 当与 CE 设备的链接出现故障时,可避免流向多宿主 CE 设备的负载均衡流量丢失。

  • 缩短了大规模 EVPN-VXLAN 交换矩阵中多宿主以太网分段路由的路由收敛时间。

快速重新路由 ELP 如何与以太网网段中的多宿主协同工作

在 EVPN 交换矩阵中,为了提高可靠性和性能,客户通常将多宿主 CE 设备迁移到以太网段 (ES) 中的两个或多个 PE 设备。多宿主有助于:

  • 如果 PE 设备链接到多宿主 CE 设备出现故障,可防止流量丢失。

  • 在通向目标的多条路径之间启用负载平衡。

多宿主 CE 与不同 PE 设备的连接共享一个 ES 标识符 (ESI)。EVPN 设备使用 ES 路由(EVPN Type 4 路由)通告其本地多宿主对等方 PE 连接。PE 设备还使用 ES 路由在对等设备之间选择指定转发器 (DF),以避免在 ESI 上发送重复流量。

借助 EVPN-VXLAN,连接到多宿主 CE 设备的 PE 设备会通告每个本地连接的 ESI 的 ES 隧道路由(VXLAN 隧道路由)。远程 PE 设备接收这些通告,并为 ES 创建负载均衡的下一跳表。远程 PE 设备使用 ES 下一跃点在与 ESI 关联的对等 PE 设备之间对发往多宿主 CE 设备的流量进行负载平衡。

当远程 PE 向多宿主 CE 设备发送流量时,其中一个 ESI 链路发生故障时:

  1. 链路故障的 PE 设备撤回对应的 ES 路由。

  2. 远程 PE 设备继续使用与故障链路对应的路由向 ESI 负载平衡流量,直到设备收到路由撤回并调整其负载平衡下一跃点。

  3. 具有故障链路的 PE 设备会丢弃发往故障链路的多余(剩余)负载均衡流量。

  4. 远程 PE 设备接收并处理路由撤销。远程 PE 设备更新其 MAC 地址、路由信息和下一跳表。此时,远程 PE 设备停止向故障链路发送负载均衡流量。

在远程 PE 路由表收敛之前(在扩展环境中可能需要几秒钟),目标 CE 设备将丢失部分流量。

为避免成员链路中断时 ESI 上的这种负载均衡流量丢失,可在多宿主对等 PE 设备上启用快速重新路由 ELP 功能。此功能还有助于缩短 ESI 路由收敛时间,特别是在大规模网络中。

在以太网网段中具有快速重新路由功能的 ELP

在 PE 设备上启用此功能时,设备会为其每个对等 PE 设备创建一个备份 VXLAN 隧道,称为 ELP 隧道,用于 ES。ES 链路故障时,PE 设备使用 ELP 隧道将流量重新路由至一个或多个对等 PE 设备。

注意:

要使此功能正常工作,请在与 ESI 关联的所有对等 PE 设备上统一启用它。ES 上的每个 PE 设备都有一个通向所有对等 PE 设备的 ELP 隧道。

下图说明了 ELP 隧道重新路由流程在简单的 EVPN-VXLAN 交换矩阵中的工作原理,其中:

  • CE1 与对等 PE 设备 PE1 和 PE2 多宿主。

  • PE1 和 PE2 彼此之间有 ELP 隧道。

  • PE3 是一个远程源,使用 PE1 和 PE2 上的 VXLAN 隧道端点 (VTEP) 对流向 CE1 的流量进行负载均衡。

图 1 中,所有通向 CE1 的 ES 链路都已开启,因此 PE1 和 PE2 分别将其部分的负载均衡流量转发到 CE1。PE1 和 PE2 不需要使用其 ELP 隧道。

图 2 中,从 PE1 到 CE1 的链路出现故障。PE1 撤回故障链路的 ES 路由。但是,在 PE3 实现路由收敛之前,PE3 仍会向 PE1 发送一些多余的负载均衡流量。PE 1 不会丢弃其部分负载均衡流量,而是使用其 ELP 隧道将该流量重新路由到 PE2。PE2 将负载均衡流量的两部分转发到 CE1。

图 3 中,PE3 实现了路由收敛,并停止向 PE1 发送 ES 的任何负载均衡流量。PE3 仅将 ES 的所有流量发送至 PE2,PE2 将流量发送至 CE1。PE1 不再需要使用其到 PE2 的 ELP 隧道。

具有多个对等 PE 设备的 ELP 隧道

在 ES 上有两个或更多对等 PE 设备的 PE 设备上启用此功能时,PE 设备会为每个对等 PE 设备设置一个备用 VXLAN ELP 隧道。请参阅 图 4。每个 PE 设备都会维护一个下一跃点组,用于对发往 ES 的负载平衡流量进行处理。远程源 PE 设备在组中的下一跃点之间分配流向 ES 的流量。ES 上的每个对等 PE 设备还会维护一个负载均衡的下一跃点组,其中包含 ES 的所有 ELP 隧道,因此设备也可以对重新路由的流量进行负载均衡。

图 4 显示了如果 ES 上的一个链路发生故障时会发生什么情况。在这种情况下,从 PE1 到 CE1 的链路将会失败。其结果是:

  • 在 PE4 实现路由收敛之前,PE4 仍会向 PE1 发送一些负载均衡的多余流量。

  • PE1 不会丢弃其部分负载均衡流量,而是将其两个 ELP 隧道上的多余负载均衡流量重新路由到对等 PE 设备 PE2 和 PE3。

  • PE2 和 PE3 将所有流量发送到 CE1,包括它们从 PE4 接收的负载均衡流量以及从 PE1 的 ELP 隧道接收的流量。

  • (未显示)PE4 的路由表收起。PE4 停止向 PE1 发送任何流量,并仅对流向 PE2 和 PE3 的流量进行负载均衡。

图 4:两个或更多对等 PE 设备 ELP Tunnels for Two or More Peer PE Devices的 ELP 隧道

快速重新路由 ELP 要求和限制

要在 PE 设备上启用 ELP 隧道,请在[edit forwarding-options evpn-vxlan]层级配置 reroute-address 语句。使用inet ip-address语句的选项reroute-address指定设备用于 ELP 隧道的 IP 地址。在 PE 设备上配置快速重新路由 ELP 将详细介绍此语句以及配置此功能所需的其他步骤。

使用此功能:

  • 您必须在所有对等 PE 设备上为特定 ES 配置此语句,才能使任何对等 PE 设备上的 ELP 隧道正常工作。

  • 当 AE ESI 接口出现故障时,多宿主对等 PE 设备不会刷新处于活动/活动状态的聚合以太网 (AE) 接口束链路的 MAC 地址表条目。此行为有助于实施快速重新路由操作并缩短路由收敛时间。

快速重新路由 ELP 具有以下限制:

  • 此功能仅适用于在 AE 逻辑接口上配置的多宿主。

  • 我们仅支持将此功能用于 IPv4 客户端流量。

  • 此功能仅适用于单播流量和 VLAN 泛洪,不适用于组播流量。

  • 我们仅在企业样式界面配置中支持此功能。(请参阅 灵活以太网服务封装 ,了解有关此类接口配置的更多信息。)

  • 此功能可在 ES 链路发生故障时,一次仅在与特定 ESI 关联的一个多宿主对等方上处理重新路由流量。

注意:

对于计划中的管理链路关闭事件,例如当通过运行命令在 PE 设备上本地管理禁用 PE-CE 接口时, set interface interface-name disable 不支持快速重新路由 ELP。如果需要,对于 PE 设备上计划的接口关闭维护事件,请采取其他管理措施以防止维护期间的流量丢失。但是,如果 PE-CE 链路由于 CE 设备上的管理链路关闭命令而中断,PE 设备将检测到链路故障,并在这种情况下调用快速重新路由操作。

在 PE 设备上配置快速重新路由 ELP

您可以在支持的多宿主对等 PE 设备上为 ES 配置快速重新路由 ELP 功能元素。要使此功能正常工作,必须在 ES 的所有多宿主对等 PE 设备上启用它。您可以在每个对等 PE 设备上统一配置此处列出的步骤。

无需在 ES 中的多宿主 CE 设备或向 ES 发送流量的远程源 PE 设备上配置任何对应的元素。CE 设备和远程源 PE 设备可能是不支持此功能的设备。

要在 ES 的多宿主对等 PE 设备上启用快速重新路由 ELP 功能,请执行以下操作:

  1. 配置要用作 ELP ES 的 ELP 隧道源 VTEP 地址的 IP 地址。您可以将此地址配置为设备环路接口 (lo0) 上的辅助地址。ELP 隧道地址必须不同于设备路由器 ID 地址(主要首选地址)。

    例如,在路由器 ID 为 192.168.0.1 的 PE 设备 PE1 上,您可以使用 192.168.102.1 作为 ELP 隧道到对等 PE 设备 PE2 的 IP 地址:

  2. 使用您在步骤 1 中配置的辅助 lo0 地址启用快速重新路由 ELP。

    当您提交此配置时,PE 设备会创建相应的 ELP 隧道。

    例如,使用步骤 1 中的辅助 lo0 接口 IP 地址:

    注意:

    ELP 隧道处于空闲状态,直到 PE 设备到多宿主 CE 设备的成员链路出现故障。当链路出现故障时,远程源设备会继续向故障链路发送一些负载均衡的流量,直到路由收敛。PE 设备仅使用 ELP 隧道将多余的负载均衡流量重新路由至其对等 PE 设备,直到远程源停止向其发送流量。在此之后,ELP 隧道再次处于空闲状态。

验证快速重新路由 ELP 隧道的创建和运行

启用快速重新路由 ELP 隧道功能后,您可以使用本节中的 CLI show 命令查看 ELP 隧道 IP 地址、下一跳 ID 以及源和远程 VTEP 信息。

我们根据 类似于图 2 的拓扑来解释一些示例 show 命令输出,下面再次包含这些拓扑以供参考:

图 5:show 命令输出 Sample Topology for Show Command Output的示例拓扑

表 1 显示了 PE 设备的主 lo0 IP 地址及其 ELP 隧道的辅助 lo0 IP 地址示例拓扑:

表 1:多宿主对等 PE 设备的示例拓扑 IP 地址
设备 IP 地址 ELP 隧道 IP 地址

PE1型

192.168.0.1/32

192.168.102.1/32

从 PE1 到 PE2 的 ELP 隧道

PE2

192.168.0.2/32

192.168.201.1/32

从 PE2 到 PE1 的 ELP 隧道

图 5 中,示例拓扑的 CE 设备后面也有这些主机(未显示):

表 2:第 2 层的示例拓扑主机信息
主机说明 VLAN 名称 (VLAN ID) MAC 地址

CE1 后面的接收器

VLAN2(VLAN ID 2)

00:00:94:00:00:01

CE2 背后的远程源

VLAN3(VLAN ID 3)

00:01:95:00:00:01

最后,在此示例拓扑中,分配给从 CE1 到 PE1 和 PE2 的多宿主链路的 ESI 为 00:00:00:00:20:00:00:00:00:00:00。

显示以太网交换表

show ethernet-switching table mac-address extensive使用命令查看特定 MAC 路由的 ELP 隧道下一跃点。

例如,此输出显示 PE1 将使用 ELP 隧道下一跃点(ELP-NH 字段)将其接收到的任何流量发送到 VLAN2 上 CE1 后面的主机(MAC 地址 00:00:94:00:00:01):

显示以太网交换 VXLAN-隧道-端点 ESI

show ethernet-switching vxlan-tunnel-end-point esi esi-identifier esi-value使用命令查看 ELP 隧道、VTEP IP 地址、下一跃点和 VTEP 接口名称。

例如,此输出显示 PE1 有一个 ELP 隧道,以及 ELP 下一跃点(ELP-NH 字段)到远程 VTEP PE2(RVTEP-IP 字段),用于 ESI 00:00:00:00:20:00:00:00:00:00: 00: 00:

显示以太网交换 VXLAN-隧道-端点远程

show ethernet-switching vxlan-tunnel-end-point remote使用命令查看有关设备的 ELP 隧道源 VTEP 和远程 VTEP 信息,包括:

  • VTEP IP 地址和接口名称

  • 对应的下一跳 ID 和 ELP 隧道 IP 地址

ELP-IP如果输出字段包含 IP 地址,则表示列中的RVTEP-IP远程 VTEP 具有对应的 ELP 隧道。此外,如果该RVTEP-IP地址是 ELP 隧道地址,ELP-IP则该行中的列RVTEP-IP将包含 “ELP”。

有关此输出含义的详细信息,请参阅下面的示例输出和 表 3

表 3:show ethernet-switching vxlan-tunnel-end-point 远程输出字段示例
输出字段 含义

SVTEP-IP - 192.168.0.1

ELP-SVTEP-IP—192.168.102.1

PE1 (192.168.0.1) 是源 VTEP,并有一个 IP 地址为 192.168.102.1 的 ELP 隧道到 PE2。

RVTEP-IP 标题下的第一行,显示:

RVTEP-IP - 192.168.0.2

ELP-IP—192.168.201.1

PE1 具有 PE2 (192.168.0.2) 作为远程 VTEP。PE2 有一个 IP 地址为 192.168.201.1 的 ELP 隧道到 PE1。

RVTEP-IP 标题下的第三行,显示:

RVTEP-IP - 192.168.201.1

ELP-IP—ELP

IP 地址为 192.168.201.1 的远程 VTEP 是 ELP 隧道远程 VTEP。从此表中的其他输出字段中,我们知道这个远程 VTEP 是从 PE2 到 PE1 的 ELP 隧道。

显示以太网交换 VXLAN-隧道-端点源

show ethernet-switching vxlan-tunnel-end-point source使用命令在输出字段中ELP-SVTEP-IP查看设备 ELP 隧道源 VTEP IP 地址。

例如,PE1 上的以下示例输出显示,PE1 (SVTEP -IP 192.168.0.1) 在 lo0 接口上有一个 IP 地址为 192.168.102.1 (ELP-SVTEP-IP) 的 ELP 隧道:

显示路由表 __default_evpn__.evpn.0 extensive

show route table __default_evpn__.evpn.0 extensive路由表命令包含显示本地重新路由 ELP 隧道地址的Reroute address字段。

例如, Reroute address 下面的字段显示 PE1 (192.168.0.1) 上的 ELP 隧道的 IP 地址为 192.168.102.1:

显示路由表 bgp.evpn.0 extensive

命令 show route table bgp.evpn.0 extensive 包括 Reroute address 显示设备 ELP 隧道地址的字段。

例如:

show interfaces(带 ELP 隧道 VTEP 接口)

show interfaces使用带有 ELP 隧道 VTEP 接口名称的命令,查看设备何时在 ELP 隧道上重新路由流量。

例如,我们之前在 show ethernet-switching vxlan-tunnel-end-point remote 中看到的示例命令输出显示,ELP 隧道 VTEP 接口名称为 vtep.32831( Interface 包含到 PE2 的隧道的远程 VTEP 的列)。

如果输入 show interfaces vtep.32831 命令,在 CE1 和 PE1 之间的链路出现故障之前, Output packets 字段会显示 VTEP 的流量未通过 ELP 隧道:

CE1 和 PE1 之间的链路出现故障后,同一命令会显示流量会在短时间内沿 ELP 隧道路径(直到源路由表融合为止):