技术介绍IP组播目录i目录PIM............................................................................................................................................1PIM简介......................................................................................................................................1PIM-DM简介........................................................................................................................1PIM-DM工作机制.................................................................................................................2PIM-SM简介........................................................................................................................4PIM-SM工作机制.................................................................................................................5PIM-SM管理域机制介绍....................................................................................................10SSM模型在PIM中的实现...................................................................................................12多实例的PIM......................................................................................................................13技术介绍IP组播PIM1PIMPIM简介PIM是ProtocolIndependentMulticast(协议无关组播)的简称,表示可以利用静态路由或者任意单播路由协议(包括RIP、OSPF、IS-IS、BGP等)所生成的单播路由表为IP组播提供路由。组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。PIM借助RPF(ReversePathForwarding,逆向路径转发)机制实现对组播报文的转发。当组播报文到达本地设备时,首先对其进行RPF检查:若RPF检查通过,则创建相应的组播路由表项,从而进行组播报文的转发;若RPF检查失败,则丢弃该报文。根据实现机制的不同,PIM分为以下两种模式:zPIM-DM(ProtocolIndependentMulticast-DenseMode,协议无关组播—密集模式)zPIM-SM(ProtocolIndependentMulticast-SparseMode,协议无关组播—稀疏模式) 说明:为了描述的方便,本文中把由支持PIM协议的组播路由器所组成的网络简称为“PIM域”。PIM-DM简介PIM-DM属于密集模式的组播路由协议,使用“推(Push)模式”传送组播数据,通常适用于组播组成员相对比较密集的小型网络。PIM-DM的基本原理如下:zPIM-DM假设网络中的每个子网都存在至少一个组播组成员,因此组播数据将被扩散(Flooding)到网络中的所有节点。然后,PIM-DM对没有组播数据转发的分支进行剪枝(Prune),只保留包含接收者的分支。这种“扩散—剪枝”现象周期性地发生,被剪枝的分支也可以周期性地恢复成转发状态。z当被剪枝分支的节点上出现了组播组的成员时,为了减少该节点恢复成转发状态所需的时间,PIM-DM使用嫁接(Graft)机制主动恢复其对组播数据的转发。技术介绍IP组播PIM2一般说来,密集模式下数据包的转发路径是有源树(SourceTree,即以组播源为“根”、组播组成员为“枝叶”的一棵转发树)。由于有源树使用的是从组播源到接收者的最短路径,因此也称为最短路径树(ShortestPathTree,SPT)。PIM-DM工作机制1.邻居发现在PIM域中,路由器通过周期性地的向所有PIM路由器(224.0.0.13)以组播方式发送PIMHello报文(以下简称Hello报文),以发现PIM邻居,维护各路由器之间的PIM邻居关系,从而构建和维护SPT。 说明:路由器每个运行了PIM协议的接口都会周期性地发送Hello报文,从而了解与该接口相关的PIM邻居信息。2.构建SPT构建SPT的过程也就是“扩散—剪枝”的过程:(1)在PIM-DM域中,组播源S向组播组G发送组播报文时,首先对组播报文进行扩散:路由器对该报文的RPF检查通过后,便创建一个(S,G)表项,并将该报文向网络中的所有下游节点转发。经过扩散,PIM-DM域内的每个路由器上都会创建(S,G)表项。(2)然后对那些下游没有接收者的节点进行剪枝:由没有接收者的下游节点向上游节点发剪枝报文(PruneMessage),以通知上游节点将相应的接口从其组播转发表项(S,G)所对应的出接口列表中删除,并不再转发该组播组的报文至该节点。 说明:z(S,G)表项包括组播源的地址S、组播组的地址G、出接口列表和入接口等。z路由器上收到组播数据的接口称为“上游”,转发组播数据的接口称为“下游”。剪枝过程最先由叶子路由器发起,如图1所示,没有接收者(Receiver)的路由器(如与HostA直连的路由器)主动发起剪枝,并一直持续到PIM-DM域中只剩下必要的分支,这些分支共同构成了SPT。技术介绍IP组播PIM3图1PIM-DM中构建SPT示意图“扩散—剪枝”的过程是周期性发生的。各个被剪枝的节点提供超时机制,当剪枝超时后便重新开始这一过程。 说明:剪枝在PIM-SM中有着相似的应用。3.嫁接当被剪枝的节点上出现了组播组的成员时,为了减少该节点恢复成转发状态所需的时间,PIM-DM使用嫁接机制主动恢复其对组播数据的转发,过程如下:(1)需要恢复接收组播数据的节点向其上游节点发送嫁接报文(GraftMessage)以申请重新加入到SPT中;(2)当上游节点收到该报文后恢复该下游节点的转发状态,并向其回应一个嫁接应答报文(Graft-AckMessage)以进行确认;(3)如果发送嫁接报文的下游节点没有收到来自其上游节点的嫁接应答报文,将重新发送嫁接报文直到被确认为止。4.断言在一个网段内如果存在多台组播路由器,则相同的组播报文可能会被重复发送到该网段。为了避免出现这种情况,就需要通过断言(Assert)机制来选定唯一的组播数据转发者。技术介绍IP组播PIM4图2Assert机制示意图如图2所示,当RouterA和RouterB从上游节点收到(S,G)组播报文后,都会向本地网段转发该报文,于是处于下游的节点RouterC就会收到两份相同的组播报文,RouterA和RouterB也会从各自的本地接口收到对方转发来的该组播报文。此时,RouterA和RouterB会通过本地接口向所有PIM路由器(224.0.0.13)以组播方式发送断言报文(AssertMessage),该报文中携带有以下信息:组播源地址S、组播组地址G、到组播源的单播路由的优先级和度量值。通过一定的规则对这些参数进行比较后,RouterA和RouterB中的获胜者将成为(S,G)组播报文在本网段的转发者,比较规则如下:(1)到组播源的单播路由的优先级较高者获胜;(2)如果到组播源的单播路由的优先级相等,那么到组播源的度量值较小者获胜;(3)如果到组播源的度量值也相等,则本地接口IP地址较大者获胜。PIM-SM简介PIM-DM使用以“扩散—剪枝”方式构建的SPT来传送组播数据。尽管SPT的路径最短,但是其建立的过程效率较低,并不适合大中型网络。PIM-SM属于稀疏模式的组播路由协议,使用“拉(Pull)模式”传送组播数据,通常适用于组播组成员分布相对分散、范围较广的大中型网络。PIM-SM的基本原理如下:zPIM-SM假设所有主机都不需要接收组播数据,只向明确提出需要组播数据的主机转发。PIM-SM实现组播转发的核心任务就是构造并维护RPT(RendezvousPointTree,共享树或汇集树),RPT选择PIM域中某台路由器作为公用的根节点RP(RendezvousPoint,汇集点),组播数据通过RP沿着RPT转发给接收者;z连接接收者的路由器向某组播组对应的RP发送加入报文(JoinMessage),该报文被逐跳送达RP,所经过的路径就形成了RPT的分支;技术介绍IP组播PIM5z组播源如果要向某组播组发送组播数据,首先由与组播源侧DR(DesignatedRouter,指定路由器)负责向RP进行注册,把注册报文(RegisterMessage)通过单播方式发送给RP,该报文到达RP后触发建立SPT。之后组播源把组播数据沿着SPT发向RP,当组播数据到达RP后,被复制并沿着RPT发送给接收者。 说明:复制仅发生在分发树的分支处,这个过程能够自动重复直到数据包最终到达接收者。PIM-SM工作机制1.邻居发现PIM-SM使用与PIM-DM类似的邻居发现机制,具体请参见“邻居发现”一节。2.DR选举借助Hello报文还可以为共享网络(如Ethernet)选举DR,DR将作为该共享网络中组播数据的唯一转发者。无论是与组播源相连的网络,还是与接收者相连的网络,都需要选举DR。接收者侧的DR负责向RP发送加入报文;组播源侧的DR负责向RP发送注册报文。 说明:z各路由器之间通过比较Hello报文中所携带的优先级和IP地址,可以为多路由器网段选举DR。选举出的DR对于PIM-SM有实际的意义;而对于PIM-DM来说,其本身其实并不需要DR,但如果PIM-DM域中的共享网络上运行了IGMPv1,则需要选举出DR来充当共享网络上的IGMPv1查询器。z在充当DR的设备上必须使能IGMP,否则连接在该DR上的接收者将不能通过该DR加入组播组。技术介绍IP组播PIM6JoinmessageEthernetEthernetRPDRDRHellomessageRegistermessageSourceReceiverReceiver图3DR选举示意图如图3所示,DR的选举过程如下:(1)共享网络上的各路由器相互之间发送Hello报文(携带有竞选DR优先级的参数),拥有最高优先级的路由器将成为DR;(2)如果优先级相同,或者网络中至少有一台路由器不支持在Hello报文中携带竞选DR优先级的参数,则根据各路由器的IP地址大小来竞选DR,IP地址最大的路由器将成为DR。当DR出现故障时,其余路由器在超时后仍没有收到来自DR的Hello报文,则会触发新的DR选举过程。3.RP发现RP是PIM-SM域中的核心设备。在结构简单的小型网络中,组播信息量少,整个网络仅依靠一个RP进行组播信息的转发即可,此时可以在PIM-SM域中的各路由器上静态指定RP的位置;但是在更多的情况下,PIM-SM域的规模都很大,通过RP转发的组播信息量巨大。为了缓解RP的负担并优化RPT的拓扑结构,可以在