PIM-SM——BSR工作机制

BSR

  • RP相当于组播网络中的一个组播数据汇聚中心,
  • 而BSR ( Bootstrap Router)则相当于组播网络中的管理中心,它管理着动态选举RP的整个过程。

BSR工作机制简述

  1. 首先网络中会选举出一台BSR,BSR被选举出来之后,它会将向整个网络通告自己的存在。
  2. 网络中的PIM-SM路由器会侦听BSR所泛洪的通告并保存BSR的相关信息,而C-RP ( Candidate-RP,候选RP)则纷纷向BSR发送自己的候选通告(通告中含义RP地址和所服务的组播组信息)。
  3. BSR收集所有C-RP发送过来的候选通告后,将这些通告加以汇总,然后将汇总的信息向全网进行泛洪。
  4. 网络中所有的PIM-SM路由器都会收到这个汇总信息,然后各自基于这些信息,采用相同的算法进行计算,最终得到组播组与RP的映射关系。由于每台PIM-SM路由器所收到的C-RP信息集合是一致的,而且基于这些信息采用相同的算法进行计算,因此得出的组播组与RP的映射关系必然也是相同的。

BSR相关设备类型

C-BSR

  • 网络中允许存在一台或者多台C-BSR。C-BSR (Candidate-BSR,候选BSR)是BSR的候选者,它们都有意愿成为BSR,在成为BSR之前,它们之间要进行选举,胜出的C-BSR成为该网络的BSR。
  • BSR的选举是通过PIM自举(Bootstrap)报文进行的,报文中包含C-BSR的优先级、哈希掩码长度,以及其IP地址等信息。网络中优先级值最大的C-BSR胜出成为BSR,如果优先级相等,那么拥有最大IP地址的C-BSR将会胜出。

BSR

  • 在一个PIM-SM网络中,可以存在一台或多台C-BSR,但只会存在一台BSR,它是从所有C-BSR中选举产生的。
  • BSR周期性地向网络中泛洪自举报文,以通告自己的信息。所有C-RP都会知晓BSR的地址。
  • BSR负责收集C-RP发送过来的信息,将C-RP信息汇总后泛洪到整个PIM-SM网络中。从这个层面可以看出,实际上BSR并不决定组播组与RP的映射关系,它只是简单地将C-RP的信息汇总并扩散,而决定组播组与RP映射关系的是每一台PIM-SM路由器自己。

C-RP

  • C-RP是RP的候选者,网络中允许存在一台或多台C-RP,这些C-RP可以为不同的组播组范围服务,而且组播组范围可以有重叠。
  • C-RP获知BSR的地址后,将自己服务的组播组范围、RP优先级及IP地址等信息以单播的形式发送给BSR。

RP

  • 如果PIM-SM路由器采用BSR自动发现RP,那么每一台PIM-SM路由器会基于BSR泛洪的、关于所有C-RP配信息进行计算,最终将组播组映射到RP。
  • 所有PIM-SM路由器针对相同的组播组,都会映射到同一台RP。

一台PIM-SM路由器可以是C-BSR,同时又是一台C-RP,当然,路由器也可以既不是C-BSR,又不是C-RP,此时它将不会参与BSR的竞选,也不会参与RP的竞选,但是它们会侦听BSR通告的C-RP汇总信息。

BSR工作机制示例

如下图所示,所有的路由器都运行了PIM-SM,其中R3及R5是C-BSR,R2、R4是C-RP。假设R5的BSR优先级值为100,R3的BSR优先级值为50。
PIM-SM——BSR工作机制_第1张图片

(1)C-BSR信息扩散过程:

  • 初始时,R3、R5都认为自己是BSR,它们都向网络中泛洪PIM自举报文,如下图所示,该报文以组播的方式发送,目的IP地址是组播IP地址224.0.0.13。

PIM-SM——BSR工作机制_第2张图片

  • 自举报文会被扩散到全网(实际上自举报文是逐跳地传遍整个网络的,报文的跳数只有一跳,TTL值为1),可以使得所有的C-BSR都能知晓网络中其他C-BSR的信息。

  • 自举报文中包含着多个重要信息,其中有两个信息在这个过程中发挥着关键作用,一是发送该报文的C-BSR的优先级,二是该C-BSR的IP地址。

  • 对于R5而言,做为C-BSR,它会从自己连接R3、R4及R6的接口都发送自举报文,其中,从连接R4的接口发出的自举报文的源地址为10.1.45.5,目的IP地址是224.0.0.13。下图描述了这个报文的结构,需要注意的是,该报文的TTL值为1,也就是只会传递1跳。
    PIM-SM——BSR工作机制_第3张图片

  • 对于R4而言,它会收到这个自举报文后,会记录报文中的相关信息,并重新产生自举报文,然后继续向其连接R1及R2的接口泛洪

  • 需要注意的一点是,R4在其连接R1的接口上泛洪的自举报文时,源IP地址为该接口的IP地址,目的IP地址为224.0.0.13,报文中承载着C-BSR R5的信息。此外,这个报文的TTL值也是为1,这就是所谓的逐跳传递。

  • R3做为C-BSR,也会将自己的C-BSR信息随着自举报文逐跳传递,最终扩散全网。也就是说R3和R5的C-BSR信息能够随着自举报文传递,最终扩散到全网。

(2)BSR选举过程:

  • 经过C-BSR信息的扩散,R3和R5都知道了对方的存在,也知道了对方的BSR优先级和IP地址。
  • 接下来开始BSR的选举过程:由于R5的优先级更高,因此它胜出成为该网络的BSR。
  • 在BSR选举胜出后,R5将继续周期性(缺省发送间隔为60秒)地向网络中泛洪自举报文,而R3则不再发送包含自己C-BSR信息的自举报文。

在路由器上使用display pim bsr-info命令可以查询当前的BSR信息:
PIM-SM——BSR工作机制_第4张图片

(3)C-RP选举信息收集过程:

  • 当网络中的C-RP (R2、R4)明确了当前的BSR后,便立即开始周期性地发送PIM C-RP通告(Candidate-RP-Advertisement,候选RP通告)报文。

  • C-RP通告报文是以单播的形式发送的,报文发往当前的BSR。

  • 如下图所示,假设R2使用其Loopback0接口的地址(2.2.2.2/32)作为C-RP的地址,那么R2所产生的C-RP通告报文的源IP地址为2.2.2.2,而目的IP地址为5.5.5.5。R2、R4通过查询自己的单播路由表获取到达BSR的路径。
    PIM-SM——BSR工作机制_第5张图片

  • 如下图所示显示了R2发往BSR的C-RP通告报文,该报文中包含一些用于RP选举的信息:

  1. “Priority”字段填写的是该C-RP的优先级,这个优先级的值越大,则优先级越低;
  2. "Holdtime”字段则指示BSR等待接收该C-RP发送的C-RP通告报文的超时时间;
  3. “RP”字段填写的是该C-RP的IP地址;
  4. "Group”字段填写的是C-RP所服务的组播组范围。
    PIM-SM——BSR工作机制_第6张图片

(4)C-RP选举信息汇总通告过程:

  • BSR收到了C-RP发送过来的通告后,便知晓了每台C-RP的信息,它将这些信息进行汇总,然后封装在自己的自举报文中,周期性地向网络中泛洪。如下图所示,描述了这个过程。
    PIM-SM——BSR工作机制_第7张图片

  • 经过BSR通告所有C-RP通告的汇总信息后,最终全网的PIM-SM路由器都发现了网络中所有的C-RP及其相关信息。

  • 需要强调的是,由于PIM-SM路由器都是从同一台BSR接收了C-RP的汇总信息,因此每台PIM-SM路由器最终获取到的信息是一致的。以R1为例,使用display pim rp-info命令可以看到如下输出:
    PIM-SM——BSR工作机制_第8张图片

从上述C-RP信息可以看出,R1发现了两个C-RP:服务于组播组范围224.0.0.0/4(所有组播组)的C-RP有一个:2.2.2.2;服务于组播组范围239.0.0.0/24的C-RP也有一个:4.4.4.4。
其中2.2.2.2的优先级值为0,4.4.4.4的优先级值为100。实际上网络中所有的PIM-SM路由器都拥有一致的信息。

(5)C-RP选举过程:
每台PIM-SM路由器都基于C-RP汇总信息,使用相同的算法进行计算,得到每个组播组对应的RP。采用的算法如下:

  1. C-RP所服务的组播组范围与该组播组地址匹配度最长的C-RP胜出。
  2. 如果C-RP所服务的组播组范围相同,则C-RP优先级值最小的胜出。
  3. 如果C-RP的优先级都相同,那么进行哈希计算,将组播组地址、BSR哈希掩码、C-RP的IP地址作为哈希函数的输入,得到哈希结果,哈希值最大的胜出。
  4. 如果哈希值相等,则C-RP的IP地址最大的胜出。

基于上述选举规则,在本例中,由于R4服务的组范围是239.0.0.0/24,而R2则是224.0.0.0/4,因此对于组播组239.0.0.1至239.0.0.255而言,网络中所有的PIM-SM路由器将会认为R4是这些组播组对应的RP。因为虽然R2及R4都可以为这些组播组服务,但是这些组地址与R4所服务的组范围的匹配度更长(R4的组范围掩码长度更长)。

而对于除了上述组地址之外的其他组播组,由于超出了R4所服务的范围,因此R2将会成为它们的RP。

如果此时网络中出现了新的C-RP,而且它服务的组范围与R2相同,那么两者的RP优先级将决定谁将胜出成为这些组播组的RP。而如果优先级相等,则比较哈希函数计算的结果。通过适当地设置BSR哈希掩码长度,可以将一部分组播组映射到一个C-RP而将另一部分组播组映射到另一个C-RP,从而实现RP的负载分担。

你可能感兴趣的:(组播,PIM-SM,RP)