Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:在 Draft-Rosen 组播 VPN 上配置 PIM 加入负载平衡

此示例说明如何为内部网关协议 (IGP) 指标不相等的外部和内部虚拟专用网 (VPN) 路由配置多路径路由,并在运行 Draft-Rosen 组播 VPN (MVPN) 的提供商边缘 (PE) 路由器上加入负载平衡。当 PE 路由器具有面向源或会合点 (RP) 的外部 BGP (EBGP) 和内部 BGP (IBGP) 路径时,此功能允许客户 PIM (C-PIM) 加入消息跨外部和内部 BGP (EIBGP) 上游路径进行负载均衡。

要求

此示例需要以下硬件和软件组件:

  • 三款路由器,可以是 M 系列多服务边缘路由器、MX 系列 5G 通用路由平台或 T 系列核心路由器的组合。

  • 在所有设备上运行的 Junos OS 12.1 或更高版本。

开始之前:

  1. 配置设备接口。

  2. 在所有 PE 路由器上配置以下路由协议:

    • Ospf

    • Mpls

    • 自民党

    • Pim

    • Bgp

  3. 配置组播 VPN。

概述和拓扑

Junos OS 12.1 及更高版本支持多路径配置以及 PIM 加入负载平衡。如果 PE 路由器具有指向源(或 RP)的 EBGP 和 IBGP 路径,则 C-PIM 加入消息可以在不相等的 EIBGP 路由之间实现负载均衡。在之前的版本中,仅使用活动 EBGP 路径发送加入消息。此功能适用于 IPv4 C-PIM 加入消息。

在负载平衡期间,如果 PE 路由器丢失了一个或多个指向源(或 RP)的 EBGP 路径,则之前使用 EBGP 路径的 C-PIM 加入消息将被移动到组播隧道接口上,并且根据哈希机制选择组播隧道接口上的反向路径转发 (RPF) 邻接方。

在发现指向源(或 RP)的第一条 EBGP 路径时,只有新加入消息会跨 EIBGP 路径实现负载均衡,而组播隧道接口上的现有加入消息将不受影响。

尽管多路径 PIM 加入负载平衡的主要目标是对组播流量使用不相等的 EIBGP 路径,但如果 PE 路由器仅选择 EBGP 路径,而远程 PE 路由器为不同组提供了一条或多条加入消息,则可以避免潜在的加入环路。如果远程 PE 路由器的加入消息在 PE 路由器已选择 IBGP 作为上游路径后到达,则可以将所选上游路径更改为 EBGP,从而破坏潜在的环路。

注意:

在平滑路由引擎切换 (GRES) 期间,C-PIM 加入消息的 EIBGP 路径选择可能会有所不同,因为会根据从 CE 和 PE 邻接方收到的加入消息,为新路由引擎再次执行上游接口选择。这可能会导致组播流量中断,具体取决于接收的加入消息数量和正常重启时网络上的负载。但是,不支持不间断活动路由功能,并且不会影响 Draft-Rosen MVPN 场景中的组播流量。

在此示例中,PE1 和 PE2 是上游 PE 路由器,为其配置了多路径 PIM 加入负载平衡功能。路由器 PE1 和 PE2 有一个 EBGP 路径和一个指向源的 IBGP 路径。连接到客户边缘 (CE) 路由器的源和接收器是免费 BSD 主机。

在具有指向源(或 RP)的 EIBGP 路径(如 PE1 和 PE2)的 PE 路由器上,将按如下执行 PIM 加入负载平衡:

  1. 执行基于加入计数的现有负载平衡,以便算法首先选择负载最少的 C-PIM 接口。如果所有 C-PIM 接口的负载相等或无负载,则加入消息将平均分布到可用的上游接口上。

    图 1 中,如果 PE1 路由器从 CE2 路由器接收 PIM 加入消息,并且如果指向源的 EBGP 和 IBGP 路径上负载相等或无负载,则加入消息在 EIBGP 路径上将实现负载均衡。

  2. 如果所选的最小负载接口是组播隧道接口,则如果客户加入 (C-join) 消息的下游列表已包含组播隧道接口,则可以存在潜在的加入环路。在这种情况下,EBGP 路径中最低负载的接口被选为 C-join 消息的上游接口。

    假设 IBGP 路径是负载最少的,PE1 路由器将使用 IBGP 路径将加入消息发送至 PE2。如果来自 PE3 路由器的 PIM 加入消息到达 PE1 上,则 PE3 的 C-join 消息下行列表已包含一个组播隧道接口,这可能导致潜在的加入环路,因为上游和下游接口都是组播隧道接口。在这种情况下,PE1 仅使用 EBGP 路径发送加入消息。

  3. 如果所选的最小负载接口是组播隧道接口,而组播隧道接口不存在于 C-join 消息的下行列表中,则无需环路防御机制。如果任何 PE 路由器已播发数据组播分布树 (MDT) 类型、长度和值 (TLV),则该 PE 路由器被选为上游邻接方。

    当 PE1 路由器使用加载最少的 IBGP 路径将加入消息发送至 PE2 时,如果 PE3 将其加入消息发送至 PE2,则不会创建任何加入环路。

  4. 如果没有与 C-join 消息对应的数据 MDT TLV,则组播隧道接口上负载最少的邻接方被选为上游接口。

在只有指向源(或 RP)的 IBGP 路径(如 PE3)的 PE 路由器上,将按如下执行 PIM 加入负载平衡:

  1. PE 路由器仅将组播隧道接口作为 RPF 接口,并在组播隧道接口上的 C-PIM 邻接方之间实现负载平衡。

    路由器 PE3 对从 CE4 路由器接收的消息通过 IBGP 路径到 PE1 和 PE2 路由器进行负载均衡。

  2. 如果任何 PE 路由器已播发与 C-join 消息对应的数据 MDT TLV,则会选择该 PE 路由器作为 RPF 邻接方。

对于特定的 C 组播流,至少有一个具有指向源(或 RP) 的 EIBGP 路径的 PE 路由器必须仅使用 EBGP 路径,以避免或中断加入环路。由于环路避免机制,当下行列表中已存在组播隧道接口时,PE 路由器只能选择 EIBGP 路径。

图 1 中,假设 CE2 主机要接收来自源的流量,而 CE2 会为不同组(组地址为 203.0.113.1 的组 1 和组地址为 203.0.113.2)发起多个 PIM 加入消息,则两个组的加入消息将到达 PE1 路由器。

然后,路由器 PE1 在 EIBGP 路径之间平均分配加入消息,以指向源。假设第 1 组加入消息直接使用 EBGP 路径发送至 CE1 路由器,而组 2 加入消息则使用 IBGP 路径发送至 PE2 路由器,PE1 和 PE2 分别成为第 1 组和第 2 组加入消息的 RPF 邻接方。

当 CE3 路由器启动第 1 组和第 2 组 PIM 加入消息时,两个组的加入消息将到达 PE2 路由器。然后,路由器 PE2 会将加入消息在 EIBGP 路径之间平均分布到源。由于 PE2 是组 2 加入消息的 RPF 邻接方,因此它使用 EBGP 路径将组 2 加入消息直接发送到 CE1 路由器。第 1 组加入消息使用 IBGP 路径发送至 PE1 路由器。

但是,如果 CE4 路由器发起多个第 1 组和第 2 组 PIM 加入消息,则无法控制在 PE3 路由器上接收的这些加入消息如何分布以到达源。PE3 选择 RPF 邻接方会影响 EIBGP 路径上的 PIM 加入负载平衡。

  • 如果 PE3 将第 1 组加入消息发送至 PE1,并将第 2 组加入消息发送至 PE2,则 RPF 邻接方不会发生变化。因此,不会创建任何加入环路。

  • 如果 PE3 将第 1 组加入消息发送至 PE2,并将第 2 组加入消息发送至 PE1,则不同组的 RPF 邻接方发生变化,从而导致创建加入环路。为避免潜在的加入环路,PE1 和 PE2 不会将 IBGP 路径用于发送从 PE3 路由器接收的加入消息。相反,加入消息仅使用 EBGP 路径直接发送至 CE1 路由器。

Draft-Rosen MVPN 中的环路避免机制具有以下限制:

  • 由于远程 PE 路由器上加入消息的到达时间决定了加入消息的分布,因此在加入计数方面分布可能处于次优状态。

  • 由于加入消息的时机无法避免并可能发生连接环路,因此后续 RPF 接口更改会导致组播流量丢失。通过实施 PIM 先断功能,可以避免这种情况。

    PIM 先成后断功能是一种在 Draft-Rosen MVPN 中检测和断开 C-PIM 加入环路的方法。在建立 PIM 邻接方关系之后,但在更新相关组播转发条目之前,C-PIM 加入消息将被发送到新的 RPF 邻接方。虽然上游 RPF 邻接方会更新其组播转发条目并开始向下游发送组播流量,但下游路由器不会转发组播流量(由于 RPF 校验失败),直到组播转发条目更新为新的 RPF 邻接方。在交换组播转发条目的 RPF 接口之前,这有助于确保组播流量在新路径上可用。

图 1:草案罗森 MVPN PIM Join Load Balancing on Draft-Rosen MVPN 上的 PIM 加入负载平衡

配置

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到 [edit] 层次结构级别的 CLI 中。

PE1

PE2

程序

逐步过程

以下示例要求您在配置层次结构中的各个级别上导航。有关导航 CLI 的信息,请参阅 在配置模式下使用 CLI 编辑器。要配置 PE1 路由器:

注意:

修改每个路由器的相应接口名称、地址和任何其他参数后,对 MVPN 域中的每个瞻博网络路由器重复此过程。

  1. 配置 VPN 路由和转发 (VRF) 实例。

  2. 为 VRF 实例启用与协议无关的负载平衡。

  3. 配置 BGP 组和邻接方以启用 PE 到 CE 的路由。

  4. 配置 PIM 以启用 PE 到 CE 组播路由。

  5. 在所有网络接口上启用 PIM。

  6. 为 VRF 实例启用 PIM 加入负载平衡。

结果

在配置模式下,输入 show routing-instances 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。

完成设备配置后,请在配置模式下输入 提交

验证

确认配置工作正常。

验证不同加入消息组的 PIM 加入负载平衡

目的

验证 PE1 路由器上接收的不同加入消息组的 PIM 加入负载平衡。

行动

在操作模式下,运行 show pim join 实例扩展 命令。

意义

输出显示了 PE1 路由器如何均衡四个不同组的 C-PIM 加入消息。

  • 对于组 1(组地址:203.0.113.1)和第 3 组(组地址:203.0.113.3)加入消息,PE1 路由器已选择指向 CE1 路由器的 EBGP 路径来发送加入消息。

  • 对于第 2 组(组地址:203.0.113.2)和第 4 组(组地址:203.0.113.4)加入消息,PE1 路由器已选择指向 PE2 路由器的 IBGP 路径来发送加入消息。