ip pim spare 源树 和 共享树_PIM

组播路由器将数据发送到需要改组路由数据的网络分支上,那们,组播流量转发路径该如何确定?如何确保流量被转发到正确的路径上?如何防止环路?这些问题都是组播路由器需要解决的问题,因此,组播路由协议需要判断报文出接口的合法性,及通过RPF( Reverse Path Forwarding,反向路径转发)来进行判断,然后在网络中建立一棵组播分发树,从而转发组播流量,在每台路由器上建立组播转发表项((*,G),(S,G)),记录该组播分发树;

PIM ( Protocol Independent Multicast )称为协议无关组播,这里的协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息。作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF( Reverse Path Forwarding ,逆向路径转发)检查,检查通过后创建组播路由表项,从而转发组播报文。

目前在实际网络中,PIM主要有三种模式:

  • PIM-DM ( PIM-Dense Mode )
  • PIM-SM ( PIM-Sparse Mode )
  • 双向PIM ( Bidirectional PIM )

上一篇文章就对PIM的DM和SM两种模式做了简单的介绍,这一节我们详细的说一下着三种模式;

PIM-DM密集模式

  • PIM-DM使用 “推(Push)模式”转发组播报文, 一般应用于组播组成员规模相对较小相对密集的网络。
  • PIM-DM假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时, PIM-DM会将组播源发来的组播报文扩散到整个网络的PIM路由器上,再裁剪掉不存在组播报文转发的分支。
  • PIM-DM通过周期性的进行“扩散( Flooding )一剪枝( Prune )” 来构建并维护一 棵连接组播源和组成员的单向无环SPT ( Shortest PathTree),如果在下一次“扩散一剪枝”进行前,被裁剪掉的分支由于其叶子路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接( Graft )机制主动恢复其对组播报文的转发。
  • PIM-DM的关键工作机制包括邻居发现、扩散、剪枝、嫁接,断言和状态刷新。其中,扩散、剪枝、嫁接是构建SPT的主要方法。

PIM-DM协议报文

  • Hello:用于建立及维护PIM邻居关系,协调PIM协议报文参数;
  • Join/Prune:加入/剪枝报文,加入报文用于加入组播分发树,剪枝则用于修剪组播分发树;
  • Graft:嫁接报文,用于将设备嫁接到组播分发树;
  • Graft-ACK:嫁接确认报文,用于对邻居发送的Graft报文进行确认;
  • Assert:断言报文,防止同一网段中多台路由器同时向网段中转发相同的流量;

剪枝否决机制

当组播组中有主机发送剪枝报文,若果当前组播组中仍然有主机在侦听组播路由流量,冒然的修剪掉当前的路由链路,就会妨碍仍然在工作的组播组主机,因此,当有主机发送剪枝报文后,我们可以通过启动剪枝延时计时器(缺省为3s),在这个时间内收到join报文,就会忽略之前的剪枝报文,该剪枝延时计时器就是为了给组播组中仍在侦听的主机留下的发送join报文的时间;

断言机制(Assert)

当网络中有多台PIM路由器RPF检查通过向该网段发送组播报文的时候,需要通过断言机制来保证只有一台PIM路由器向该网段中注入组播报文,当PIM路由器在接收到邻居发送的相同组播报文后,会以组播的方式向本网段的所有PIM路由器发送PIM Asser报文,报文的目的地址为224.0.0.13,其它PIM路由器在接收到Asser报文后,将自身参数与对方报文中携带的参数做比较,进行Asser竞选。

Assert选举规则:

  • 到达组播源的单播路由协议优先级较高者(优先级的值更小者)优先;
  • 如果优先级相同 ,则到组播源的单播路由的开销较小者优先;
  • 如果以上都相同,则接口IP地址最大者优先;

PIM-SM

PIM-SM使用“拉( Pull)模式”转发组播报文,一般应用于组播组成员规模相对较大、相对稀疏的网络。基于这一种稀疏的网络模型,它的实现方法是:

  • 在网络中维护一台重要的PIM路由器:汇聚点RP ( Rendezvous Point ) , 可以为随时出现的组成员或组播源服务。网络中所有PIM路由器都知道RP的位置;
  • 当网络中出现组成员时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT;

当网络中出现活跃的组播源(源向某组播组G发送第一个组播数据)时 ,第一跳路由器将组播数据封装在Register报文中单播发往RP ,在RP上创建(S,G)表项,注册源信息;

在ASM模型中,PIM-SM的关键机制包括邻居发现,DR竟选、RP发现、RPT构建、组播源注册、SPT切换、断言,同时也可通过配置BSR ( Bootstrap Router )管理域来实现单个PIM-SM域的精细化管理;

RP ( Rendezvous Point )

关于RP

  • 汇聚点RP为网络中一台重要的PIM路由器,用于处理组播源DR注册信息及组成员加入请求,网络中的所有PIM路由器都必须知道RP的地址,类似于个供求信息的汇聚中心;
  • 一个RP可以同时为多个组播组服务,但一个组播组只能对应一个RP;

RP的发现机制

  • 静态RP:在网络中的所有PIM路由器上配置相同的RP地址,静态指定RP的位置。
  • 动态RP:在PIM域内选择几台PIM路由器,配置C-RP ( Candidate-RP,候选RP )来动态竟选出RP,同时,还需要通过配置C-BSR ( Candidate BSR ,候选BSR )选举出BSR,来收集C-RP的通告信息,向PIM-SM域内的所有PIM路由器发布;

注:

  在PIM域内选择几台PIM路由器,配置C-RP(Candidate-RP,候选RP)来动态竞选出RP。同时,还需要通过配置C-BSR(Candidate-BSR,候选BSR)选举出BSR,来收集C-RP的通告信息,向PIM-SM域内的所有PIM路由器发布。

  C-BSR在竞选的时候,开始时每个C-BSR都认为自己是BSR,向全网发送Bootstrap报文。Bootstrap报文中携带C-BSR地址,C-BSR的优先级。每一台PIM路由器都收到所有C-BSR发出的Bootstrap报文,通过比较这些C-BSR信息,竞选产生BSR。

竞选BSR规则如下:

  • 优先级较高者获胜(优先级数值越大优先级越高);
  • 如果优先级相同,IP地址较大者获胜。由于所有PIM路由器使用相同的RP-Set和竞选规则,所以得到的组播组与RP之间的对应关系也相同。PIM路由器将“组播组—RP”对应关系保存下来,指导后续的组播操作;

C-RP的竞过程如下:

  • C-RP向BSR发送Advertisement报文,报文中携带C-RP地址,服务的组范围和C-RP优先级;
  • BSR将这些信息汇总为RP-Set,封装在Bootstrap报文中,发布给全网的每一台PIM-SM路由器;
  • 各PIM路由器根据RP-Set,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选出该组RP;

竞选RP规则如下:

  • 与用户加入的组地址匹配的C-RP服务的组范围掩码最长者获胜;
  • 如果以上比较结果相同,则C-RP优先级较高者获胜(优先级数值越小优先级越高);
  • 如果以上比较结果都相同,则执行Hash函数,计算结果较大者获胜;
  • 如果以上比较结果都相同,则C-RP的IP地址较大者获胜;

PIM-SM协议报文

  • Hello:用于建立及维护PIM邻居关系,协调PIM协议报文参数;
  • Register :注册报文,用于组播源向RP的注册过程;
  • Rogister-Stop:注册停止报文, RP使用该报文通知第一跳路由器停止在注册报文中发送组播流量;
  • Join/Prune:加入/剪枝报文,加入报文用于加入组播分发树,剪枝则用于修剪组播分发树;
  • Bootstrap:自举报文,用于BSR选举和发送C-RP汇总信息;
  • Assert:断言报文,防止同一网段中多台路由器同时向网段中转发相同的流量;
  • Candidate-RP-Advertisement:C-RP通告报文,C-RP使用该报文向BSR发送通告;

源注册

当组播分发树刚刚建立的时候,RP路由器并不知道组播源的位置(组播的源可以是任意的),因此,吓一跳路由器并不在组播分发树中,当组播源将组播报文刚发送到第一条路由器时,第一条路由器并不知道RP的地址,因此,他将组播报文分装到单播报文中,该报文为Register报文,当该报文通过单播的方式发送到RP的时候,RP拆解该Register报文,将组播报文发送到当前的组播分发树上,这个时候,RP路由器已经知道了第一条路由器的IP地址,因此,他通过向上游接口发送join报文,第一条路由器收到该报文后,将下游接口的IP记录在路由表项中,于是,下一跳路由器就加入了组播分发树中,于是,RP路由器就会向吓一跳路由器发送一个Rogister-Stop报文,告诉下一条路由器,当其再次发送组播报文的时候不再需要进行Register封装;

SPT切换

   当组播中完成组播分发树的建立的时候,组播中同时存在第一条路由器和RP之间的SPT和RP同组播组中其他路由器的RPT,如果组播组中的某台主机通过RP分发组播组路由流量,不是最优路径,就会触发SPT切换,通过不断地发送Join报文和Prune报文,重新建立起当前组中的组播分发树;

PIM-SM DR

在组播源或组成员所在的网段,通常同时连接着多台PIM路由器,这些PIM路由器之间通过交互Hello报文成为PIM邻居,Hello报文中携带DR优先级和该网段接口地址,PIM路由器将自身条件与对方报文中携带的信息进行比较,选举出唯一的DR来负责源端或组成员端组播报文的收发, 竟选规则如下:

  • DR优先级较高者获胜(如果网段中所有PIM路由器都支持DR优先级) ;
  • 如果DR优先级相同或该网段存在至少一台PIM路由器不支持在Hello报文中携带DR优先级,则IP地址较大者获胜。

如果当前DR出现故障,将导致PIM邻居关系超时,其他PIM邻居之间会触发新轮的DR竞选;

在连接组播源的共享网段,由DR负责向RP发送Register报文, 与组播源相连的DR称为源端DR;

在连接组成员的共享网段,由DR负责向RP发送Join报文, 与组成员相连的OR称为组成员端DR;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值