Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

示例:配置 PIM RPT 和 SPT 直接转换

了解组播集合点、共享树和集合点树

在共享树中,分布树的根是路由器,而不是主机,并且位于网络核心的某个位置。在主稀疏模式组播路由协议协议无关组播稀疏模式 (PIM SM) 中,位于共享树根部的核心路由器是集合点 (RP)。来自上游源的数据包和来自下游路由器的加入消息在此核心路由器“会合”。

在 RP 模型中,其他路由器不需要知道每个组播组的源地址。他们只需要知道 RP 路由器的 IP 地址。RP 路由器发现所有组播组的源。

RP 模型将查找组播内容源的负担从每个路由器((S,G) 符号)转移到网络((*,G) 符号只知道 RP)。RP 查找源的单播 IP 地址的确切方式各不相同,但必须有一些方法来确定特定组的组播内容的正确源。

考虑为某个组提供一组没有任何活动组播流量的组播路由器。当路由器了解到该组的相关接收方位于其直接连接的子网上时,路由器会尝试将该组的分布树联回 RP,而不是内容的实际源。

若要加入共享树(或在 PIM 稀疏模式中称为 (),路由器必须执行以下作:

  • 确定该组的 RP 的 IP 地址。确定地址可以像路由器中的静态配置一样简单,也可以像一组嵌套协议一样复杂。

  • 为该组构建共享树。路由器对其路由表中的 RP 地址执行 RPF 检查,这将生成最接近 RP 的接口。路由器现在检测到,来自此 RP 的组播数据包需要通过此 RPF 接口流入路由器。

  • 使用正确的组播协议(可能是 PIM 稀疏模式)在此接口上发送加入消息,以通知上游路由器它想要加入该组的共享树。此消息是 (*,G) 联接消息,因为 S 未知。只有 RP 是已知的,而 RP 实际上并不是组播数据包的来源。接收 (*,G) 加入消息的路由器会将接收消息的接口添加到该组的传出接口列表 (OIL) 中,并对 RP 地址执行 RPF 检查。然后,上游路由器从 RPF 接口向源发送一条 (*,G) 加入消息,通知上游路由器它也希望加入该组。

每个上游路由器都会重复此过程,从 RPF 接口传播加入消息,并在此过程中构建共享树。当加入消息到达以下区域之一时,该过程将停止:

  • 要加入的组的 RP

  • RPT 上的路由器,该路由器已为要加入的组具有组播转发状态

无论哪种情况,都会创建分支,并且数据包可以从源流向 RP,再从 RP 流向接收方。请注意,不能保证共享树 (RPT) 是到源的最短路径树。很可能不是。但是,在数据包流开始后,有一些方法可以将共享树“迁移”到 SPT。换句话说,转发状态可以从 (*,G) 转换为 (S,G)。这两种树的形成在很大程度上取决于 RPF 检查和 RPF 表的作。有关 RPF 表的详细信息,请参阅 了解组播反向路径转发

在 RP 和接收器之间构建 RPT

RPT 是组播组中 RP 和接收器(主机)之间的路径(参见 图 1)。RPT 是通过来自接收方 DR 的 PIM 加入消息构建的:

  1. 接收方在互联网组管理协议 (IGMP) 主机成员报告中发送加入组 (G) 的请求。PIM 稀疏模式路由器(接收方的 DR)接收有关直连子网的报告,并为关注的组播组创建 RPT 分支。

  2. 接收方的 DR 将 PIM 加入消息发送到其 RPF 邻接方、RPF 表中的下一跃点地址或单播路由表。

  3. PIM 加入消息沿树向上传输,并组播到 ALL-PIM-ROUTERS 组 (224.0.0.13)。树中的每个路由器都通过使用 RPF 表或单播路由表查找其 RPF 邻接方。直到消息到达 RP 并形成 RPT 为止。 沿路径的路由器可设置组播转发状态,以将请求的组播流量沿 RPT 转发回接收方。

图 1:在 RP 和接收器 Building an RPT Between the RP and the Receiver之间构建 RPT

PIM 稀疏模式源注册

RPT 是单向树,允许流量沿一个方向从 RP 向向接收器。要使组播流量从源到达接收方,需要从源的 DR 到 RP 构建分配树的另一个分支,称为最短路径树。

最短路径树的创建方式如下:

  1. 源变为活动状态,在它所连接的 LAN 上发出组播数据包。源的 DR 接收数据包并将其封装在 PIM 寄存器消息中,然后发送到 RP 路由器( 参见图 2)。

  2. 当 RP 路由器从源收到 PIM 寄存器消息时,它会将 PIM 加入消息发送回源。

    图 2:交换的 PIM 寄存器消息和 PIM 加入消息 PIM Register Message and PIM Join Message Exchanged
  3. 源的 DR 接收 PIM 加入消息,并开始沿 SPT 向 RP 路由器发送流量(参见 图 3)。

  4. 一旦 RP 路由器收到流量,它就会向源的 DR 发送寄存器停止消息,以停止寄存器进程。

    图 3:从源发送到 RP 路由器 Traffic Sent from the Source to the RP Router的流量
  5. RP 路由器沿 RPT 向接收器发送组播流量(参见 图 4)。

    图 4:从 RP 路由器向接收方 Traffic Sent from the RP Router Toward the Receiver发送的流量

组播最短路径树

用于组播的分布树根植于源,也是最短路径树 (SPT)。考虑一组组播路由器,对于某个组没有任何活动组播流量(也就是说,它们对该组没有组播转发状态)。当路由器了解到该组的感兴趣接收方位于其直接连接的子网上时,路由器会尝试加入该组的树。

要加入分布树,路由器需要确定该组的源的单播 IP 地址。此地址可以是路由器上的简单静态配置,也可以是一组复杂的协议。

要为该组构建 SPT,路由器将对其路由表中的源地址执行反向路径转发 (RPF) 检查。RPF 检查会生成最靠近源的接口,这是来自此源的此组组播数据包需要流入路由器的位置。

接下来,路由器使用正确的组播协议在此接口上发送加入消息,以通知上游路由器它想要加入该组的分布树。此消息是 (S,G) 联接消息,因为 S 和 G 都是已知的。接收 (S,G) 加入消息的路由器会将接收消息的接口添加到该组的输出接口列表 (OIL) 中,并对源地址执行 RPF 检查。然后,上游路由器在 RPF 接口上向源发送一条 (S,G) 加入消息,通知上游路由器它也想加入该组。

每个上游路由器重复此过程,在 RPF 接口上传播联接,同时构建 SPT。当加入消息执行以下两项作之一时,该过程将停止:

  • 到达直接连接到作为源的主机的路由器。

  • 到达已为此源-组对具有组播转发状态的路由器。

无论哪种情况,都将创建分支,每个路由器都具有源-组对的组播转发状态,并且数据包可以沿着分布树从源流向接收方。每个路由器上的 RPF 检查可确保树是 SPT。

SPT总是最短的路径,但它们不一定是短的。也就是说,源和接收器往往位于路由器网络的外围,而非主干网,并且组播分配树往往会蔓延到网络中的几乎每个路由器。由于组播流量可能会使速度缓慢的接口不堪重负,并且一个数据包很容易在主干网的另一侧变成一百个或一千个,因此提供共享树作为分布树是有意义的,这样组播源就可以位于网络中更中心的位置,即骨干上。根植于核心网络的分布树的这种共享通过组播会合点完成。有关 RP 的详细信息,请参阅 了解组播集合点、共享树和集合点树

SPT 切换

不是继续对 RP 使用 SPT,对接收器使用 RPT,而是按以下方式在源和接收器之间创建直接 SPT:

  1. 一旦接收方的 DR 收到来自源的第一个组播数据包,DR 就会向其 RPF 邻接方发送 PIM 加入消息(参见 图 5)。

  2. 源的 DR 接收 PIM 加入消息,并创建附加 (S,G) 状态以形成 SPT。

  3. 来自该特定源的组播数据包开始来自源的灾难恢复,并沿着新的 SPT 流向接收方的灾难恢复。接收方的 DR 现在正在接收源发送的每个组播数据包的两份副本,一份来自 RPT,一份来自新 SPT。

    图 5:接收方 DR 向源 Receiver DR Sends a PIM Join Message to the Source发送 PIM 加入消息
  4. 为了停止重复组播数据包,接收方的 DR 向 RP 路由器发送 PIM 删除消息,使其知道不再需要来自此特定源、来自 RPT 的组播数据包(参见 图 6)。

    图 6:PIM 删除消息从接收方的 DR 向 RP 路由器 PIM Prune Message Is Sent from the Receiver’s DR Toward the RP Router发送
  5. RP 路由器接收到 PIM 删除消息,并停止向接收方的 DR 发送组播数据包。接收方的 DR 仅通过新 SPT 获取此特定源的组播数据包。但是,来自源的组播数据包仍会从源的灾难恢复传入 RP 路由器(参见 图 7)。

    图 7:RP 路由器收到 PIM 删除消息 RP Router Receives PIM Prune Message
  6. 要停止来自此特定源的不需要的组播数据包,RP 路由器会向源的 DR 发送 PIM 删除消息(参见 图 8)。

    图 8:RP 路由器向源 DR RP Router Sends a PIM Prune Message to the Source DR 发送 PIM 删除消息
  7. 接收方的 DR 现在仅接收来自 SPT 的特定源的组播数据包(参见 图 9)。

    图 9:源的 DR 停止向 RP 路由器 Source’s DR Stops Sending Duplicate Multicast Packets Toward the RP Router发送重复组播数据包

SPT 切换控制

在某些情况下,最后一跃点路由器需要保留在到 RP 的共享树上,而不是转换为到源的直接 SPT。例如,当低带宽组播流从 RP 转发到最后一跳路由器时,您可能不希望最后一跳路由器进行转换。最后一跃点和源之间的所有路由器都必须维护并刷新 SPT 状态。这可能会成为一项资源密集型活动,对特定源地址和组播组地址的网络效率不会有太大影响。

在这些情况下,您可以在最后一跃点路由器上配置 SPT 阈值策略,以控制向直接 SPT 的转换。应用于源-组地址对的 SPT 切换阈值为无限,这意味着最后一跳路由器永远不会过渡到直接 SPT。对于所有其他源组地址对,最后一跳路由器会立即转换为根植于源 DR 的直接 SPT。

示例:配置 PIM 断言超时

此示例说明如何配置 PIM 断言转发器的超时期限。

要求

开始之前:

概述

PIM 断言消息的作用是确定包含多个路由器的网络上的转发器。转发器是将组播数据包转发到具有组播组成员的网络的路由器。转发器通常与 PIM DR 相同。

当路由器在匹配路由条目的传出接口列表中列出的接口上收到组播数据包时,将发送断言消息。在传出接口上收到消息表示有多个路由器将相同的组播数据包转发至网络。

图 10 中,两个路由设备 R1 和 R2 都转发网络上相同 (S,G) 条目的组播数据包。两台设备都会检测到这种情况,并且两台设备都会在以太网网络上发送断言消息。除了源地址和组地址之外,断言消息还包含向源发送数据包的单播成本指标以及单播成本的首选指标。优先级指标表示单播路由协议之间的优先级。具有最小优先级指标的路由设备成为转发器(也称为断言获胜者)。如果优先级指标相等,则发送最低单播成本指标的设备将成为转发方。如果单播指标也相等,则具有最高 IP 地址的路由设备成为转发器。断言消息传输后,只有转发方继续在网络上转发消息。

当收到断言消息并将 RPF 邻接方更改为断言获胜者时,断言计时器将设置为断言超时时间段。每次在传入接口上收到路由条目的后续断言消息时,都会重新启动断言超时期。当断言计时器过期时,路由设备会根据其单播路由表重置其 RPF 邻接方。然后,如果仍存在多个转发器,转发器将重新进入断言消息周期。实际上,断言超时期限决定了组播路由设备进入 PIM 断言消息周期的频率。

范围为 5 到 210 秒。默认设置为 180 秒。

断言消息对于连接多个路由设备但没有主机的 LAN 很有用。

拓扑学

图 10 显示了此示例的拓扑。

图 10:PIM 断言拓扑 PIM Assert Topology

配置

程序

分步过程

下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅《Junos OS CLI 用户指南中的在配置模式下使用 CLI 编辑器。

要配置断言超时:

  1. 配置超时期限(以秒为单位)。

  2. (选答)跟踪断言消息。

  3. 如果完成设备配置,请提交配置。

  4. 要验证配置,请运行以下命令:

    • 显示 PIM 联接

    • 显示 PIM 统计信息

示例:配置 PIM SPT 阈值策略

此示例说明如何应用抑制从以 RP 为根的集合点树 (RPT) 到以源为根的最短路径树 (SPT) 的转换的策略。

要求

开始之前:

概述

运行 PIM 稀疏模式的组播路由设备可以通过植根于 RP 的 RPT 或植根于源的 SPT 将相同的组播数据包流转发到同一个 LAN 上。在某些情况下,最后一跳路由设备需要保留在到 RP 的共享 RPT 上,而不是转换为到源的直接 SPT。在 SPT 上接收组播数据流量是最佳选择,但会在网络中引入更多状态,这在某些组播部署中可能并不可取。理想情况下,低带宽组播流可以在 RPT 上转发,高带宽流可以使用 SPT。此示例说明如何配置此类策略。

此示例包含以下设置:

  • spt-threshold — 允许您在最后一跳路由设备上配置 SPT 阈值策略,以控制向直接 SPT 的转换。在主 PIM 实例中包含此语句时,PE 路由器将保留在 RPT 上以控制流量。

  • infinity — 将 SPT 切换阈值 infinity 应用于源-组地址对,以便最后一跳路由设备永远不会转换为直接 SPT。对于所有其他源组地址对,最后一跳路由设备会立即转换为根植于源 DR 的直接 SPT。此语句必须引用正确配置的策略,以将特定源组对的 SPT 直接切换阈值设置为无穷大。不支持对 SPT 阈值使用无穷大以外的值。您可以配置多个策略。

  • policy-statement — 配置策略。最简单的 SPT 阈值策略类型使用路由过滤器和源地址过滤器来指定组播组和源地址,并将该对地址的 SPT 阈值设置为无穷大。该策略将应用于主 PIM 实例。

    此示例将源组对 10.10.10.1 和 224.1.1.1 的 SPT 转换值设置为无穷大。将策略应用于最后一跃点路由器时,来自此源组对的组播流量永远不会转换为到源的直接 SPT。流量将继续通过 RP 到达。但是,此路由器上任何其他源组地址组合的流量将转换为到源的直接 SPT。

配置 SPT 阈值策略时,请注意以下几点:

  • 对 SPT 阈值策略的配置更改会影响路由设备处理 SPT 转换的方式。

  • 首次配置策略时,路由设备将继续转换为源组地址对的直接 SPT,直到使用 clear pim join 命令清除 PIM 联接状态。

  • 如果在首次应用无限策略配置时未清除 PIM 联接状态,则必须在启动 PE 路由器之前应用该状态。

  • 首次删除源组地址对的策略时,路由设备不会转换为该源组地址对的直接 SPT,直到使用 clear pim join 命令清除 PIM 联接状态。

  • 首次为源组地址对更改策略时,路由设备不会使用新策略,直到使用 clear pim join 命令清除 PIM 联接状态。

拓扑学

配置

程序

CLI 快速配置

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

分步过程

下面的示例要求您在各个配置层级中进行导航。有关 CLI 导航的信息,请参阅 Junos OS CLI 用户指南

要配置 SPT 阈值策略,请执行以下作:

  1. 应用策略。

  2. 配置策略。

  3. 如果完成设备配置,请提交配置。

  4. 清除 PIM 加入缓存以强制配置生效。

结果

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

验证

要验证配置,请运行 show pim join 命令。