组播路由协议基础——PIM-SM DR

7 篇文章 2 订阅
1 篇文章 0 订阅

问题背景

在这里插入图片描述

如上图所示,假设网络中已经部署了PIM-SM,R1及R2都连接到了同一台交换机上,两台路由器的GE0l0/0接口处于同一个广播域并且使用相同的IP网段。当组播源Source开始向网络中发送组播流量时,R1及R2都将在它们的GE0/0/0接口上收到这些流量。

  • 在这个网络拓扑中,R1、R2都是直连组播源的第一跳路由器,很显然,在收到组播流量后,二者都向RP发起注册过程,那么最终导致RP将收到重复的组播流量,这样的操作是没有意义的,而且还造成了设备资源及网络带宽的浪费。

另一边的R5、R6也存在类似的问题,这两台路由器的GE0/0/1接口,以及组播接收者PC1都连接到了同一台交换机,当PC1需要组播流量时,它会向网络中发送IGMP成员关系报告以宣告自己加组,R5及R6都会收到这个IGMP报文。

  • 由于R5及R6都是直连着组成员的最后一跳路由器,很显然,如果两者都执行RPT加入过程,都朝着RP的方向发送PIM加入报文,那么造成的结果是R5及R6都将与RP建立一段RPT的分支,组播流量将沿着这两段分支分别到达R5和R6。
  • 当然,初始时R5及R6都会将组播流量从自己的GE0/0/1接口发出,然后触发断言机制,假设R5在断言机制中落败,它便会将自己从RPT上剪除。(如果R5、R6、PC1运行的是IGMPv1,R5、R6进行IGMP查询器选举时,是需要依靠PIM中的DR,和最终只有DR才能加入RPT可以保持一致;但是如果三者运行的是IGMPv2、IGMPv3,需要通过配置保证最终的DR和IGMPv2查询器角色一致)
  • 实际上,对于R5及R6而言,只需一台路由器(例如R6)启动RPT加入机制即可,既可以减少R5加入、剪除RPT的成本,也可以避免触发断言机制。

解决方法

PIM设计了DR来解决上述问题。DR主要用于以下两种场景:

  1. 组播源所在网段中的DR负责向RP发起组播源注册过程;
  2. 组成员所在网段中的DR负责向RP发起RPT加入过程。

如下图所示,第一跳路由器处理流程:

  • 组播源Source所在的网段中连接着两台第一跳路由器:R1及R2。这两台路由器的GE0/0/0接口都已经激活了PIM。PIM将在该网段中选出一台DR。如果R2(的GE0/0/0接口)胜出成为该网段的DR,那么当Source开始发送组播流量时,将由R2向RP发送注册报文、启动注册过程,而R1(的GE0/0/0接口)由于在DR选举中落败,因此不向RP发起注册过程。
    在这里插入图片描述

最后一跳路由器处理流程:

  • 如上图所示,R5的GE0/0/1接口、R6的GE0/0/1接口与组成员处于同一个网段,如果果R6(的GE0/0/1接口)胜出成为该网段的DR,那么当PC1宣告加入组播组时,将由R6向RP发送加入报文、执行RPT加入过程。

DR选举原理

DR的选举依赖于PIM的Hello报文,当设备的接口激活PIM后,该接口便开始发送Hello报文,PIM使用Hello报文发现并建立邻居关系,Hello报文中携带着接口的DR优先级以及IP地址等信息。当设备在接口上收到其他邻居发送过来的Hello报文后,便会将自己的DR优先级和IP地址与报文中的内容进行比较,从而选举出该网段中的DR。DR的选举规则如下:

  1. 当网络中的设备都支持DR优先级时,DR优先级最高的设备(的接口)将胜出成为该网段的DR。DR优先级的值越大,则优先级越高。
  2. 如果DR优先级相同,或者接入该网段的设备中至少有一台设备不支持在Hello报文中携带DR优先级,那么接口IP地址最大的设备将成为该网段的DR。(如果设备收到邻居发来的Hello报文后,发现该报文中并未携带DR优先级字段,它将意识到对方不支持DR优先级,此时它将不再使用自己的DR优先级与对方进行竞争,而是采用接口IP地址与对方的IP地址进行比较,IP地址更大者胜出。)

DR角色抢占问题

需要注意的一点是,DR的角色是可抢占的。假如一个网段中已经存在DR,而后又出现了一台新的设备,且该设备的接口DR优先级要高于当前DR,那么它将会抢占其角色,成为该网段的新DR。

通常为了保证一个网段中DR角色的稳定,建议根据网络实际情况选择DR设备,并将该设备的接口DR优先级调高。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值