有两种稀疏模式路由协议:
- 协议无关组播稀疏模式(PIM-SM)
- 基于核心的树(CBT)
本文介绍了PIM-SM的操作。
协议无关组播稀疏模式的操作
PIM-SM与PIM-DM的策略完全相反 ,尽管协议的机制并不完全相反。PIM-SM假定没有主机要接收多播数据包,除非它们明确要求接收它们。结果,在子网中的主机要求接收特定组的多播之前,多播永远不会传递到该子网。
使用PIM-SM,下游路由器必须使用PIM Join消息请求接收多播。同样,下游路由器收到这些消息后,必须继续向上游路由器发送Join消息;否则,上游路由器将停止转发,从而将链路置于修剪状态。此过程与PIM-DM使用的过程相反,在PIM-DM中,默认情况是泛洪多播,下游路由器需要连续发送Prunes或State Refresh消息以保持链接处于修剪状态。
PIM-DM和PIM-SM之间的相似性
PIM-SM与PIM-DM有很多相似之处。与PIM-DM一样,PIM-SM使用单播路由表执行RPF检查-不管表中填充了什么单播路由协议。与PIM-DM一样,PIM首字母缩略词的“与协议无关”部分来自以下事实:PIM-SM不依赖于任何特定的单播IP路由协议。
此外,PIM-SM还使用PIM-DM使用的以下机制:
- 通过交换Hello消息来发现PIM邻居。
- 单播路由表更改时,重新计算RPF接口。
- 在多路访问网络上选举DR。当网络上使用IGMPv1时,DR将执行所有IGMP进程。
- 在多址网络上使用“修剪优先”。
- 使用 Assert消息 在多路访问网络上选举指定的转发器。
将数据包发送到集合点的源
PIM-SM使用两步过程将组播数据包从特定源最初传递到希望接收数据包的主机。后来,除了这些初始步骤之外,还改进了该过程。使用PIM-SM进行多播初始转发的步骤如下:
- 源将数据包发送到称为集合点(RP)的路由器。
- RP将多播数据包发送到已注册接收该组数据包的所有路由器/主机。此过程使用共享树。
下图显示了注册过程的示例,其中RP知道当前没有主机希望将IP多播发送到组228.8.8.8,无论是哪个源发送它们。所有路由器的所有物理接口上均配置了全局命令ip多播路由和接口命令ip pim sparse-mode。 请注意,通常将环回接口地址用作RP地址。R3的环回网络10.1.10.3/32在单播路由协议中发布,以便所有路由器都知道如何到达RP。
在此示例中,靠近源(R1)的路由器正在尝试向RP注册,但是RP告诉R1不再打扰,因为没有人想要那些多播消息。R1在这一点上尚未转发任何本机多播消息,这与PIM-SM策略不同,即在主机请求它们之前,不转发多播。
加入共享树
根路径树(RPT)是一棵树,其中RP在根处,该树定义应转发多播以到达所有必需路由器的链路。对于互联网络中当前活动的每个多播组,都存在一个这样的树。因此,在将每个源发送的多播数据包转发到RP之后,RP使用该多播组的RPT来确定将这些数据包转发到何处。
PIM-SM路由器通过向RP发送PIM Join消息来共同创建RPT。PIM-SM路由器选择在两种情况下发送加入:
- 当PIM-SM路由器在用于将数据包路由到RP的接口以外的任何其他接口上接收到PIM Join消息时。
- 当PIM-SM路由器从直接连接的子网上的主机接收到IGMP成员资格报告消息时
完成源注册流程
本文的这一部分通过显示当RP知道某些主机想要接收那些多播时RP对PIM注册消息的反应来完成整个故事。
当RP收到活动组播组的Register消息时(换句话说,RP认为它应该转发发送到该组的数据包)RP不发送Register-Stop消息。相反,它通过解封装多播数据包并转发它来响应注册消息。
RP对注册消息的响应行为指出了注册消息的第二个主要功能。其主要两个功能如下:
- 允许路由器通知RP它具有特定多播组的本地源。
- 为了允许路由器将多播转发到封装在单播数据包中的RP,直到注册过程完成
共享分发树
如果网络具有同一组的多个源,则来自所有源的流量将首先传播到RP,然后沿着此共享RPT传播到所有接收器。因为多播组中的所有源都使用公共共享树,所以使用(*,G)通配符表示法来标识RPT,其中*表示所有源,G表示多播组地址。
下面的示例显示了多播路由表条目。在Cisco路由器上,show ip mroute命令显示多播路由表条目。
上面示例中显示的信息的解释如下:
第一行显示228.8.8.8组的(*,G)条目是在8秒钟前创建的,如果路由器在2分58秒内未使用该条目转发组数据包,则该条目将过期。每次R4转发数据包时,计时器都会重置为3分钟。创建该条目是因为R4从H1收到了IGMP加入消息。
该组的RP是10.1.10.3。S标志表示该组正在使用稀疏模式(PIM-SM)路由协议。C标志表示路由器具有228.8.8.8的直接连接的组成员。
此(*,228.8.8.8)条目的传入接口是s0,RPF邻居是10.1.6.5。请注意,对于SPT,RPF接口是根据到达RP的路由选择的,而不是根据到达特定源的路由选择的。
组流量在Ethernet0接口上转发出去。在此示例中,将Ethernet0添加到传出接口列表中,因为在此接口上从H1收到了IGMP报告消息。该接口处于转发状态8秒钟。Prune计时器指示,如果在接下来的2分钟52秒内仍未在该接口上再次收到IGMP Join,它将从传出接口列表中删除。