Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解具有 RSVP-TE 点对多点提供商隧道的 BGP MVPN 中基于发送方的 RPF

在 BGP 组播 VPN (MVPN)(也称为多协议 BGP 新一代组播 VPN)中,基于发送方的反向路径转发 (RPF) 有助于防止多个提供商边缘 (PE) 路由器将流量发送到核心,从而防止将重复流量发送给客户。在下图中,在出口设备 PE3 和设备 PE4 上配置的基于发送方的 RPF 可防止将重复流量发送给客户。

图 1:基于发送方的 RPF Sender-Based RPF

具有 MPC 线卡的 MX 系列平台支持基于发送方的 RPF。作为先决条件,路由器必须设置为 network-services enhanced-ip 模式。

基于发送方的 RPF(和热根备用)仅支持具有 RSVP 点对多点提供商隧道的 MPLS BGP MVPN。仅 SPT 和 SPT-RPT MVPN 模式均受支持。

当点对多点提供商隧道与标签交换接口 (LSI) 一起使用时,基于发送方的 RPF 不起作用。Junos OS 仅为每个 VRF 分配一个 LSI 标签,并将此标签用于所有点对多点隧道。因此,出口接收的标签不指示发送 PE 路由器。LSI 标签目前无法扩展以为每个点对多点隧道创建唯一的标签。因此,虚拟隧道接口 (vt) 必须用于通过点对多点提供商隧道实现基于发送方的 RPF 功能。

或者,LSI 接口可以继续用于单播目的,虚拟隧道接口可以配置为仅用于组播。

概述

通常,避免(或从中恢复)多个 PE 路由器将重复流量发送到核心非常重要,因为这可能会导致向客户发送重复流量。基于发送方的 RPF 有一个用例仅限于 BGP MVPN。由于以下原因,用例范围受到限制:

  • 本机 PIM 的传统 RPF 检查基于传入接口。此 RPF 检查可防止环路,但不能阻止 LAN 上的多个转发器。之所以使用传统的 RPF,是因为当前的组播协议要么避免 LAN 上的重复,要么具有数据驱动的事件,以便在检测到重复项后解决它们。

  • 在 PIM 稀疏模式下,正常协议操作中的 LAN 上可能会出现重复项。该协议具有数据驱动机制(PIM 断言消息),可在重复发生时检测并解决重复问题。

  • 在 PIM 双向模式下,将在所有 LAN 上执行指定转发器 (DF) 选择以避免重复。

  • 草案罗森 MVPN 使用 PIM 断言机制,因为草案罗森 MVPN 的核心网络类似于 LAN。

基于发送方的 RPF 是与 BGP MVPN 结合使用的解决方案,因为 BGP MVPN 使用数据驱动事件解决方案和双向模式 DF 选择的替代方案。之所以如此,是因为,一方面,核心网络并不完全是LAN。在 MVPN 场景中,可以确定哪个 PE 路由器发送了流量。Junos OS 仅当流量是从正确的 PE 路由器发送时,才会使用此信息转发流量。借助基于发送方的 RPF,RPF 检查得到增强,可以检查数据是否到达正确的传入虚拟隧道 (vt-) 接口,以及数据是否从正确的上游 PE 路由器发送。

更具体地说,数据到达时必须在用于通过核心封装数据的外部标头中带有正确的 MPLS 标签。标签标识隧道,如果隧道是点对多点,则标识上游 PE 路由器。

基于发件人的 RPF 不能替代单转发器选择,而是一项补充功能。在一个 PE 设备 (PE1) 上配置的主环路地址(或路由器 ID) 高于在另一个 (PE2) 上配置的主环路地址(或路由器 ID),可确保 PE1 成为单转发器选举的赢家。该 unicast-umh-election 语句会导致单播路由首选项确定单转发器选择。如果未使用单转发器选择,或者这不足以防止核心中的重复,则建议使用基于发送方的 RPF。

对于 RSVP 点对多点提供商隧道,传输标签标识发送 PE 路由器,因为在路由实例中配置 MVPN 协议时,使用点对多点提供商隧道时,默认情况下禁用倒数第二个跃点弹出 (PHP),MVPNs. PHP禁用。标签标识隧道和(因为 RSVP-TE 隧道是点对多点的)发送 PE 路由器。

RFC 6513, MPLS/BGP IP VPN 中的组播 第 9.1.1 节介绍了基于发送方的 RPF 机制。

注意:

互联网草案 draft-morin-l3vpn-mvpn-fast-failover-05 组 播 VPN 快速上游故障转移 中描述的热根待机技术是一种出口 PE 路由器功能,其中出口 PE 路由器将源树 C 组播加入消息同时发送到主路由器和备份上游 PE 路由器。这允许流量的多个副本通过提供商核心流向出口 PE 路由器。基于发送方的 RPF 和热根备用可以一起使用,以支持 实时 BGP MVPN 流量。这是一种 MPLS 组播方案,用于承载任务关键型专业广播电视和 IPTV 流量。其中许多部署的一个关键要求是网络设备(包括入口和出口 PE 路由器)的完全冗余。在某些情况下,需要实时-实时方法,这意味着两个重复的流量会沿着不同的路径通过网络发送。将此技术与基于发送方的转发结合使用时,出口 PE 路由器将接收两个实时流量流,出口 PE 路由器会将单个流转发到客户网络。网络中的任何故障都可以在出口 PE 路由器上本地修复。有关热根备用数据库的详细信息,请参阅 热根备用数据库。

基于发件人的 RPF 可防止将重复项发送给客户,即使提供商网络中存在重复项也是如此。由于热根备用配置,或者如果单转发器选择不足以防止重复,提供程序中可能存在重复。单转发器选择用于防止重复到核心网络,而基于发送方的 RPF 可以防止重复发往客户,即使核心网络中存在重复。在某些情况下,单转发器选择无法阻止重复流量到达出口 PE 路由器。这方面的一个例子(在 RFC 6513 的 9.3.1 节中概述)是在客户网络中配置 PIM 稀疏模式,并且 MVPN 处于具有 I-PMSI 的 RPT-SPT 模式时。

确定上游 PE 路由器

Junos OS 选择入口 PE 路由器后,基于发送方的 RPF 决策将决定是否选择正确的入口 PE 路由器。如 RFC 6513 第 9.1.1 节所述,出口 PE 路由器 PE1 为给定 (C-S,C-G) 选择特定的上游 PE 路由器。当 PE1 从 PMSI 接收 (C-S,C-G) 数据包时,它或许能够识别将该数据包传输到 PMSI 的 PE 路由器。如果该传输器不是 PE1 选择作为上游 PE 路由器的 PE 路由器,则 PE1 可以丢弃数据包。这意味着 PE 路由器检测到重复项,但不会转发重复项。

当出口 PE 路由器生成类型 7 C 组播路由时,它会使用 VPN-IP 路由中携带的 VRF 路由导入扩展社区朝向源来构造 C 组播路由承载的路由目标。此路由目标会导致 C 组播路由被发送到上游 PE 路由器,并导入到上游 PE 路由器上的正确 VRF 中。出口 PE 路由器对转发条目进行编程,使其仅接受来自此 PE 路由器的流量,并且仅接受根植于该 PE 路由器的特定隧道上的流量。

当出口 PE 路由器生成类型 6 C 组播路由时,它会使用 VPN-IP 路由中携带的前往集合点 (RP) 的 VRF 路由导入扩展社区来构造 C 组播路由承载的路由目标。

此路由目标会导致将 C 组播路由发送到上游 PE 路由器,并导入到上游 PE 路由器上的正确 VRF 中。出口 PE 路由器对转发条目进行编程,使其仅接受来自此 PE 路由器的流量,并且仅接受根植于该 PE 路由器的特定隧道上的流量。但是,如果其他一些 PE 路由器已切换到 (C-S, C-G) 的 SPT 模式,并发送了源活动 (SA) 自动发现 (A-D) 路由(类型 5 路由),并且出口 PE 路由器只有 (C-*, C-G) 状态,则 (C-S, C-G) 的上游 PE 路由器不是朝向它发送了类型 6 路由的 RP 的 PE 路由器, 而是为 (C-S, C-G) 发起 SA A-D 路由的 PE 路由器。(C-S、C-G) 的流量可能会通过 I-PMSI 或 S-PMSI 传输,具体取决于上游 PE 路由器通告的方式。

此外,当出口 PE 路由器只有 (C-*, C-G) 状态而没有 (C-S, C-G) 状态时,出口 PE 路由器可能正在从多个 PE 路由器接收 (C-S, C-G) 5 类 SA 路由,并选择最佳路由,如下所示: 对于每个接收的 (C-S, C-G) SA 路由,出口 PE 路由器会在其上游组播跃点 (UMH) 路由候选设置为 C-S 中找到具有相同路由识别符 (RD) 的路由。在找到的所有此类路由中,PE 路由器选择 UMH 路由(基于 UMH 选择)。最佳 (C-S, C-G) SA 路由是其 RD 与所选 UMH 路由相同的路由。

当出口 PE 路由器只有 (C-*, C-G) 状态而没有 (C-S, C-G) 状态,并且稍后出口 PE 路由器创建 (C-S, C-G) 状态(例如,由于从其客户边缘 [CE] 邻接方之一接收 PIM 加入 (C-S, C-G) 消息),则该路由器的上游 PE 路由器 (C-S, C-G) 不一定是发起已为其选择的最佳 SA A-D 路由(C-S、C-G)的同一 PE 路由器。可能会出现这样一种情况:为 (C-S, C-G) 发起最佳 SA A-D 路由的 PE 路由器通过 I-PMSI 传输 (C-S, C-G),而其他一些 PE 路由器(也连接到包含 C-S 的站点)通过 S-PMSI 传输 (C-S,C-G)。在这种情况下,下游 PE 路由器不会加入 S-PMSI,而是继续通过 I-PMSI 接收 (C-S, C-G),因为 C-S 的 UMH 路由是由通过 I-PMSI 传输 (C-S, C-G) 的 PE 路由器播发的路由。这是预期行为。

出口 PE 路由器通过在 C-S 的 UMH 路由候选集中查找其 RD 与 SA A-D 路由相同的路由,确定 (C-S, C-G) 类型 5 SA A-D 路由的发送方。找到的路由的 VRF 路由导入扩展社区包含 SA A-D 路由发送方的 IP 地址。

RPF 列表中的多个活动和备份路径

在中断前合 (MBB) 事件期间,Junos OS 将多个等权重标签分配给 MVPN 提供商隧道中的标签交换路径 (LSP)。出口设备仅接受来自活动的下一跃点(即首先安装的下一跃点)的流量。此后安装的下一跃点被视为丢弃下一跃点。只要流量流经首先安装的标签,就不会有流量丢失。当来自入口 PE 的流量流经接下来安装的标签(在出口 PE 处被视为丢弃)时,在 MBB 事件完成之前,流量会暂时丢失。

从 Junos OS 演化版 23.4R1 开始, Session Id 将根据提供商隧道的名称创建一个。会话在此下 Session Id 分组,用于单播下一跃点。这样,同一 LSP 中的不同标签将被分配相同的 Session Id.Junos OS 使用它 Session Id 来接受和转发来自任何标签的流量,并带有匹配 Session ID的 .

在下图中,PE3 配置了 MVPN 热根备用 (HRS),从而从主入口设备 PE1 和辅助入口设备 PE2 获取组播流量。在 PE1 和 PE3 之间建立 RSVP P2MP 隧道,传入标签为 L1。PE2 和 PE3 之间存在第二个 RSVP P2MP 隧道,传入标签为 L2。如果 PE1 因任何原因无法访问,出口设备 PE3 将开始从 PE2 获取流量。如果触发 MBB 事件,PE2 会发出新 LSP 路径的信号,PE3 会分配新的传入 LSP 标签 L3。在此期间,PE3 中的 RPF 列表使用两个传入标签进行编程。入口 PE 决定何时将流量从旧标签切换到新标签。当流量切换到新标签时,旧标签将被拆除。PE3 修改其 RPF NH 以标记 L3,然后恢复流量。

通过将两个标签(L2 和 L3 合二为一 Session Id)分组,两个 LSP 标签之间的切换变得无缝,并导致小于 50 毫秒的最小过渡延迟。

图 2:HRS 期间触发的 MBB event triggered during HRS MBB 事件

同样,对于具有 I-PMSI 流量速率阈值的 MVPN 提供商隧道,流量会流经 I-PMSI 隧道,直到超过阈值,在这种情况量将切换到 S-PMSI 隧道。在从 I-PMSI 切换到 S-PMSI 隧道期间,由于出口 PE 接收和转发流量的下一跃点发生变化,您可能会遇到流量丢失的情况。

图 3:I-PMSI 到 S-PMSI 的切换 I-PMSI to S-PMSI switchover

Junos 使用 将 Session Id I-PMSI 和 S-PMSI 下一跃点分组在一起,将转换延迟降至 50 毫秒以下。

运行命令 show multicast route extensive instance instance 将包括 Session IdSession Status (如果存在)。