本文详细的讲述了组播路由稀疏模式的实现,主要从RP的发现,共享树的建立过程以及源注册,共享树到源树的转换等方面进行的详细的介绍。
一、RP发现
RP发现机制:配置若干路由器成为备选RP,备选RP发送包含自身参与竞选的接口(一般用还回口来做),到224.0.0.39,被配置为RP映射器的路由器会监听该地址,并对所有参选的路由器进行比较选出RP,通告到地址224.0.0.40,所有开启组播DENSE-MODE的路由器将监听这个地址,获知RP
二、共享树的建立,共享树的建立过程
1、主机发送IGMP membership report加入组,叶路由器在本地路由表中添加(*,G)项,并添加链接主机的接口到出接口列表,
2.向RPF接口发出PIM JOIN消息(RPF通过单播路由表指向RP的接口)
3.如果是多路访问网络,则此工作由DR来完成,通过DR向上建立共享树。由此消息一直向上传递,直到DR。共享树建立完毕,注意稀疏模式是一种按需的模式,没有主机加入的链路上不会产生相关共享树。
4.置于转发状态的接口,如果三分钟没有收到来自下游邻居或主机的加组消息,则该接口计时器到0时,将删除该接口,如果一个(*,G)条目下的接口为空,那么将启动(*,G)条目的超时计时器,三分钟后如果仍无邻居,则删除(*,G)条目
5.共享树剪枝,共享树剪枝是由叶路由器或下游邻居的剪枝消息引起的,这和密集模式大致一样
6.为了适应路由表可能的更新,节点每5S做一次RPF校验。
三、源注册
1.***跳路由器,在收到源发出的数据流后在本地创建(S,G),其中出接口为空,RPF接口为0.0.0.0
2.***跳路由器用单播把组播数据封装在注册消息里发送给RP
3.RP收到后,知道了源的存活,如果此时已存在(*,G)共享树,就把该注册消息解封,把原数据向共享树路由下去。并开始向源树注册SPT,其注册过程为向着RPF(方向以源为准)方向逐条发送JOIN消息,一直到***跳路由器,一路创建(S,G)转发条目,创建成功后***跳路由器开始将原始数据顺着源树组播路由到RP。
4.RP发送保留消息单播给***跳路由器,***跳路由器停止发包含一份组播数据的单播注册消息。
5。源树(S,G)条目的接口启用超时计时器,三分钟内没收到邻居的JOIN消息就删除转出接口,如果转出接口为空,则(S,G)条目启用超时计时器,超时计时器三分钟到期后仍无JOIN消息,则删除(S,G)条目,凡(S,G)条目皆是如此处理。
四。共享树到源树的切换(SWITCHOVER)
1.在叶路由器收到***个由共享树的数据包时,开启共享树到源树的转换(默认情况下),非默认情况下将在达到组播数据速率阀值时启动
2.叶路由器如果RP计算的RPF接口和源计算出的RPF接口是同一个接口,将只朝着源的RPF方向发出(S,G)JOIN消息,开始构建源树(最短路径树)。如果RP计算的RPF接口和源计算出的RPF接口不是同一个接口,那么将同时发出带RP位的(S,G)剪枝消息,该消息由于带了RP位,将沿着共享树向上传递,上游一直到RP都会创建一个(S,G)条目,该条目将从(*,G)复制出接口,并以RP为RPF接口的计算准则,将收到该消息的接口从转出接口列表中剪除,以RP计算RPF接口,生成一个(S,G)条目。这样保证未达到阀值的路由器仍能从共享树正确的接收到消息。
3.一个很重要的原则是,当路由表里有(*,G)和(S,G)时,将以(S,G)为准转发数据。同时该过程触发的是两条路线,一条顺着最短路径注册源树,另一条从源树和共享树的分叉口开始向共享树进行带RP位的(S,G)剪枝消息,使共享树的相关枝叶上都生成了仍将RPF指向RP的(S,G)转发条目,然而RP上的(S,G)条目是在源注册后就生成的,他只剪除相应出接口,直至剪完。
4.最终相关达到阀值得路由器将从源树(SPT)接收到组播数据。
【编辑推荐】