PIM-SM路由协议基础

PIM SM路由协议基础:

PIM SM基本原理:

  • PIM-SM使用拉的模式转发组播报文,类似于按需使用的方法,一般应用于组播组成员多,相对稀疏,规模较大的网络,

    PIM SM的工作机制:

RP的发现:

  • 在网络中维护一台RP,所有的pim路由器都知道RP的位置,RP负责接受组播数据,并向组播接受者进行转发,RP跟组播源构建一颗SPT树,RP跟组播接受者构建一颗RPT树。

RPT的构建:

  • 当网络中出现组成员,用户通过IGMP加入某组播组,然后由最后一跳路由器(成员端DR)向RP发送( G)表项的join报文,并逐跳在pim路由器上建立( G)表项。
  • ==成员端DR会每隔60S向上游pim路由器发送join报文,收到join报文后,重置接口计时器(210s),超时后就会将此接口从下游接口中移除==
  • ==只要接受者存在,成员端DR会每隔60S向上游pim路由器发送join报文,用来刷新(* G)条目。维护RPT树。==

组播源注册:

  • 当网络中出现活跃的组播源,源端DR会将此组播数据封装在register报文中,以单播的形式发送给RP,

SPT的构建:

  • RP收到此register报文后,就得知了组播源的地址,然后向组播源发送(S G)表项的join报文,然后在沿途的pim路由器上创建相应的(S G)表项,构建一颗SPT树,之后的组播数据就根据(S G)进行转发,
  • RP这时可以通过两个方向收到组播数据,一个是从SPT,另一个是根据单播注册隧道,这时就会由RP像源端DR发送register stop 报文,注册停止报文,DR收到之后,就会启动一个注册抑制计时器,60s,超时后,继续发送注册报文。
  • 为了降低RP的系统开销,在注册抑制计时器超时前5s,会像RP发送probe(空注册报文)报文中仅含组播源和组播组的信息,不含组播数据。
  • ==空注册报文的作用:向RP通告组播源处于活跃,通知RP发送注册停止报文刷新注册抑制计时器时间==

    断言机制:

  • 因为SM是拉流量的,在MA网络中,拉之前就已经选举了DR,所以非DR不会响应这个MA网络中主机的加组请求,也就不会像上发送(* G)jion,不能在上游路由器上创建下游接口,因此一般情况下不会触发断言机制,除非特殊情况,不通过DR,直接发送给RP.


BSR-自举协议:

RP的发现:

  • 静态RP:

    • 在每一台路由器上进行静态部署
  • 动态RP/C-RP

    • 将多个pim路由器部署为C-RP,来动态选出RP,同时还需要配置C-BSR,选举出BSR,来收集所有C-RP的通告信息。
  • C-BSR的竞选:
    • 开始,所有的C-BSR都认为自己的BSR,以组播地址224.0.0.13向全网发送bootstarp报文,TTL值为1。
    • bootstarp携带C-BSR优先级,地址,每一台pim路由器收到后,通过比较选出BSR
    • 先比较优先级再比较地址。都比大。
  • C-RP的竞选:
    • 所有的C-RP都会以单播的形式向BSR发送Advertisement报文,==60s一次。超时时间为150s==
    • Advertisement报文携带C-RP的服务的组地址范围,C-RP的地址,优先级。
    • BSR收到之后,会将所有C-RP发送过来的报文进行一个汇总,汇总成AS-set,并封装在boostarp报文中,进行全网发送。
    • pim路由器收到之后,使用相同的规则进行计算和比较,选出一个RP.
      1. C-RP服务的组地址范围,越精确越优,(掩码长者优先)
      2. 比较C-RP的优先级,比大
      3. 将组地址、C-RP的地址、BSR的hash掩码长度(默认为30),进行hash运算,进行比较
      4. 比较C-RP的地址。比大
    • 比较出RP后,将组播组和RP的对应关系保存下来,指导后续的建树过程。
  • RFP校验:
    • BSR发送bootstarp报文,要进行RPF检验。
      1. 接受组播数据的入接口是到达组播源的出接口
      2. 接受的组播数据源地址是到达组播源的下一跳。
    • 满足两个要求后,才可发送bootstarp报文。
    • 因为bootstarp报文的ttl值为1,所以路由器转发时,源地址逐跳封装。

RPT/SPT树的切换:

  • STP切换机制:成员端DR周期性的检测组播报文的转发速率,一旦发现(S G)报文的转发熟虑超过阈值,则触发SPT切换。

    1. 组成员端DR逐跳向远端DR逐跳发送(S G)join报文,并沿途创建(S G)表项,建立源端DR到成员端DR的SPT树
    2. SPT树建立后,成员端DR会沿着RPT树逐跳向RP发送剪枝报文,删除(* G)表项中相应的下游接口,之后再不必向下转发数据。
    3. 如果SPT不经过RP,那么RP会继续逐跳向源端DR发送剪枝报文,删除(S G)表项中相应的下游接口,之后再不必向下转发数据。

    缺省情况下,设备一般没有配置阈值,所以当成员端DR知道了组播源的地址时,就会触发SPT的切换。