RP控制:

概述:
RP ( Rendezvous Point)是PIM SM网络中一台“核心”路由器,它的位置建议放在网络的核心,在组播数据转发过程中,它起到的是“汇聚”的作用,汇聚组播接收者的加入/剪枝请求和组播源的组播数据。当某个网段的DR路由器通过IGMP协议了解该网段上有组播接收者时,就会向RP发送一个(* ,G) 的加入报文,用(* ,G)Join表示,表明本地需要接收来自任何组播源的、发往组播组G的组播数据。

在PIM SM中,每一个PIM组播组都需要一个RP地址,这个地址用来当作组播组相应的组播分发树的树根,用来连接SPT树和RPT树。在网络上的任何一台PIM SM路由器都需要知道组播组所需要的RP地址。

RP的作用:

  1. 共享树里所有组播流都通过RP转发到接收者。
  2. RP可以负责几个或者所有组播组的转发,网络中可以有一个或多个RP(只有一个作为主RP) 。用户通过配置命令,可以限制RP只为IP地址在一定范围的组播组服务。一个RP可以同时为多个组播组服务,但一个组播组只能对应一个RP。所有该组成员和向该组发送组播数据的组播源都向唯一的RP汇聚。

RP的发现:

  1. 静态RP:在PIM域中的所有PIM路由器上逐一进行配置,静态指定RP。static-rp rp-address 指定静态RP的IP地址。坏处是所有路由器都需要配置,配置量比较大,并且没有备份功能,当RP出问题以后就无法正常转发流量了,所以当静态和动态RP同时存在的时候,优选动态RP。
  2. 动态RP:在PIM域内选择几台PIM路由器,配置成为C-RP(Candidate-RP),最后从C-RP中竞选产生RP。 使用动态RP,必须同时配置C-BSR(Candidate-BootStrap Router)。由C-BSR竞选产生BSR。

RP是PIM-SM域中的核心路由器,在小型并且简单的网络中,组播信息量少,全网络仅依靠一个RP进行信息转发即可,此时可以在SM域中各路由器上静态指定RP位置。但是更多的情况下,PIM-SM网络规模都很大,通过RP转发的组播信息量巨大,为了缓解RP的负担同时优化共享树的拓扑结构,不同组播组应该对应不同的RP(可以自己设置),此时就需要自举机制来动态选举RP,配置自举路由器BSR(BootStrap Router)。动态RP可以进行相应的备份,当主RP失效时,会切换到备用的RP上。

动态RP部署:


动态RP的设计在中大型网络中要求比较多,好处是当网络拓扑发生变化的时候,RP和组的对应关系会自动调整,保证网络的冗余性。目前动态RP协议是PIMv2使用的BSR(自举协议)选择出来的。BSR就像是一个裁判,如果没有这个裁判,所有设置为了RP的设备都会发送自己的报文让别人进行筛选,但是别人只需要一个RP,其他次优的RP报文都是干扰报文,很浪费带宽。所以我们设置一个裁判——BSR,它会收集同一个域中所有想要成为RP设备的报文信息,然后综合在一起统一将所有信息周期性发送(自己不进行比较,让接收者比较,这样就可以有备份的RP信息得到了)。

当然,如果BSR挂掉了,这样也会使得RP的选举出现故障,所以我们也需要设置多个BSR作为备份,选举出一个主的BSR。当然,按照实际的网络情况,最好使用性能较好的设备作为支持(主RP最好别和BSR设置为同一个,这样如果坏掉以后BSR和RP都需要重新选举,实际较长)。

一、选举BSR的具体过程:
在一个PIM-SM域内,可能存在多台设备配置为C-BSR,但在同一时刻只能有一台设备成为BSR。BSR的选举是通过PIMv2的Bootrap(BSR)报文协商选举出来的,报文中带有BSR的优先级和BSR地址信息。

下图是BSR报文,从中可知,IP报文源IP地址为10.1.23.2, BSR 地址是10.1.2.2, Hash 掩码是30位,BSR优先级是0,RP映射(RP-set) ={ 10.1.2.2,224.0.0.0/4 }。

任何一台C-BSR路由器可工作在两种状态之一: “候选BSR”状态(C-BSR)或“已选举的BSR”状态。路由器启动时,初始状态都是“候选BSR”状态,在此状态下,130sBSR超时计时器启动。在此期间,若未听到任何其他“更优”的C-BSR的报文,超时后,当前C-BSR状态转换为“已选举的BSR”状态,即代表当前没有其他更优的C-BSR路由器,自己是域内唯一的 BSR。 BSR靠泛洪方式通告自身的报文,其泛洪过程有如
OSPF通告LSA,是逐跳的泛洪过程,任何PIMv2路由器都能听到BSR泛洪的报文。

判定哪台C-BSR路由器更优依据如下:

  1. 先比较BSR报文中的优先级数值,数值越大越优先。
  2. 若优先级数值一 样,则比较BSR报文中的BSR的IP地址,数值越大越优先。但若在BSR计时器超时前收到一份 “更优”BSR报文,则产生那份BSR报文的C-BSR路由器被认定为“更优”的BSR路由器。

当前C-BSR对收到的“更优”BSR报文,本地做如下处理:

  1. 本地BSR超时计时器重置。
  2. 收到的“更优”BSR报文被转发出所有其他有PIM邻居的接口,自己不再通告自己的BSR报文。
  3. 把收到的BSR报文中的RP-映射复制到本地RP-Info中。

如若一台BSR路由器已处于“已选举的BSR状态”,已选举为BSR,则它负责周期产生BSR报文,其中包含RP映射。如果从另外一台路由器收到BSR报文,优先级更高,则不再产生自己的BSR报文,只转发已知的更优BSR的那份报文,并把自己的状态调整为“候选BSR”状态;否则,丢掉BSR报文。

设计建议:
BSR收集到各个C-RP的信息后,组合成为RP映射。然后将RP映射信息封装到BSR报文内向PIM邻居泛洪此消息,使PIM域内的RP信息是相同的。这样,任何组播组在不同的设备上都可以选择出相同的RP地址。建议CBSR至少2台,以避免单点故障,可和C-RP一起部署在同一台设备上。

二、C-RP的通告过程:
C-RP可以有多个,每个C-RP定义自己的一个接口IP地址和多个组播地址范围的对应关系。每一对IP地址和组:播地址范围的对应关系都叫做RP映射。多个C-RP的目的是为了增加网络的健壮性、冗余性。如果一台 C-RP失效,或到C-RP的链路故障,其他备选的CRP依然能够为相应的组播组提供服务。

当作为C-RP的PIMv2路由器收到泛洪过来的BSR报文后,从中了解到BSR地址。之后,每个C-RP会以单播的方式把C-RP上定义的RP-映射发给这个知道的唯一的 BSR路由器。若C-RP不知道BSR地址,则不会产生RP通告;当BSR收到CRP的映射之后,放到Cache中,并将收集到的RP映射放到周期性的BSR报文中,通告出去。

C-RP信息以单播形式通告:
C-RP通告的单播报文中包括C-RP的IP地址信息、需要服务的组播组地址范围(组播IP与掩码长度)及C-RP优先级。C-RP以60s周期向BSR单播发送C-RP消息,以免C-RP信息在BSR上超时。

建议设计:
C-RP 可以设置多个分散在PIM域的任何设备上,也可以集中在一台 PIM设备上,而且C-RP部署与BSR部署没有关联。但实际设计时,多将C-RP和C-BSR同时部署在一台设备上。

三、普通的PIMv2 (非BSR)路由器接收BSR报文:
任何PIMv2的路由器,也包括C-RP路由器,收到目标组地址224.0.0.13的BSR报文后,并非一味接收,而是对其先执行RPF检查。只有通过RPF检查的BSR报文才能被接收,并继续转发给其他PIM邻居。RPF检查是接收路由器对BSR报文中的BSR地址的检查,检查的目的是避免BSR报文的环路,使泛洪过程以BSR为树根,远离树根的路径去通告。

例如:

R3向所有PIM邻居泛洪自己的BSR报文。泛洪期间,报文内容不变化,报文流出的接口地址是BSR报文的源IP地址。R3的泛洪如图所示,R1 收到报文源IP地址是10.1.23.3 的BSR报文,R5 收到源IP地址是10.1.5.3 的BSR报文。BSR RPF检查规则:“根据BSR报文中BSR地址计算得出的RPF邻居必须等于BSR报文IP头中的源IP地址,RPF检查才通过,即路由器仅接收RPF邻居通告的BSR报文”。所以图7-43中,R5 和R1、R2对收到的BSR报文中地址10.1.3.3执行RPF计算(根据IP路由表中OSPF路由)后都满足BSR RPF 检查规则,把其中的RP-映射放入Cache后,继续泛洪。

R4路由器会从R2和R5收到泛洪过来的BSR报文,RPF 检查后,R4的RPF邻居是R2 (R4是OSPF ABR,经Area0 访问10.1.3.3), 所以R4接收R2通告的BSR报文。忽略R5通告的BSR报文。R4缓存RP-映射之后,继续向R5泛洪。R5 执行RPF检查后,忽略R4的BSR报文。至此,BSR 泛洪过程结束。60s之后,上述过程重复再发生。

对于通过检查的BSR报文,任何路由器本地的处理过程如下:

  1. 本地 BSR超时计时器重启。
  2. BSR 报文被转发出所有其他接口。
  3. 收到的BSR报文中的RP映射集被复制到本地RP-info中。
  4. BSR会每隔60s发送BSR报文,刷新路由器缓存的BSR信息,并重置130s 老化计时器。若超过130s, 仍未收到BSR报文,则本地已有的BSR信息及RP映射关系将由于老化而被清除。

四、C-RP的选举参数:
BSR通告的内容包含RP和组的映射关系,其中,组范围可能会重叠,即一个组地址会出现在多个映射的组范围中。如果这种情况发生,PIM 路由器通过计算只能选择一个RP,使用算法如下:

  1. 根据组范围的大小来选择RP,优选最小的组范围所对应的RP。
  2. C-RP优先级较高者获胜( 优先级数值越小优先级越高,默认为0)。
  3. 如果优先级相同,则执行Hash计算,Hash 计算结果中数值大者获胜。
  4. 如果以上都相同,则C-RP地址大者获胜。

设备在RP-映射中选择RP时,根据上述顺序选择出最好的RP。例,设备需要为组播组G选择RP,其过程如下:

  1. 如果需要计算组播组G的RP,第一步是查找RP-映射集,找到RP列表中最长匹配的RP地址。例: RP1 的组范围是224.0.0.0/4,RP2 的组范围是224.1.2.024,需要为组224.1.2.3选择RP,选择的结果是RP2,原因是其范围最小,最精确。
  2. 如果存在多个RP,则比较RP的优先级。优先级数值最小的RP胜出。如果上面的组范围相同的情况下,比较RP的优先级。
  3. 如果存在相同优先级的RP,则每个相同优先级的RP都进行一次Hash计算。选择Value最大的为组播组G的RP。
  4. 如果计算的结果相同,则选择IP地址最大的RP为组播组G的RP。

说明:
BSR中的负载分担是靠Hash掩码实现的,它使设备在选择RP时,做到不同的组播组使用不同的C-RP提供服务。其实现方式是在多个C-RP上分别定义相同的组地址范围,在C-RP优先级一样的情况下,设备将根据Hash掩码来计算RP。BSR 的负载分担是异组负载分担,一个组播组地址范围中的不同组播地址可以使用不同的RP。这种选择是靠以下公式计算得出的:

Hash(G,M,Ci)=(1 103515245*((1 103515245 *(G&M)+12345)XOR Ci)+ 12345)mod(2的31次方)其中,G为组地址;M为设备BSR的Hash掩码长度,默认为30位;Ci为RP的IP地址。

例,若C-RP 1.1.1.1 和2.2.2.2都定义并通告了229.1.2.0/24 组地址范围,BSR 定义的Hash掩码为30的情况下,则计算结果是上述组播范围中每4个连续地址段( 组播地址范围和hash掩码“相与”)会在2个RP中选择一个RP。如果Hash掩码是29位,则上述范围中,每8个连续组播地址段使用2个RP中的一个。同理,Hash 掩码越大,在多个RP间分配的组播地址段的颗粒度变大。但只要Hash掩码为非0,组播范围中的地址都按“段”在多个RP间“随机”分配。这种机制为BSR提供了“异组间负载”分担的能力。如果Hash掩码取值为0,则整个组播地址范围就是完整的一块,整块组播地址只会选择其中:一个RP地址,这使BSR丧失了负载分担的能力。示例中只为上述组播范围定义了两个RP一1.1.1.1 和2.2.2.2,按照上面的机制,每个RP会分担50%的组播组的转发任务。如果相同的组播范围配置了多个RP,如4个RP地址,则整个组范围将在4个RP间分担组播组业务。

BSR使用泛洪方式在组播域中通告RP-映射集的目 的是使全网的设备有一致的RP映射集,每台设备执行一样的计算过程,所以同一个组播组在每个设备上选择的RP一致。

实验:
模拟器eNSP

拓扑描述:这里选择R3作为主BSR,R5作为备份BSR,同时R4作为主RP,R6作为备用RP。

一、首先进行BSR的配置:
根据选举顺序:

  1. 优先级较高者获胜(优先级数值越大优先级越高)。
  2. 如果优先级相同,IP地址较大者获胜。

R3上:IP地址为3.3.3.3小于5.5.5.5,所以优先级要配置大一点

pimc-bsr priority 20     //设置优先级,越高越优先c-bsr LoopBack0    //L0接口作为bsr

R5上:

pimc-bsr priority 10    //备份设备优先级设置小一点c-bsr LoopBack0

二、然后进行RP的配置:
根据选举顺序:

  1. C-RP对应组播路由掩码最长的优先。
  2. C-RP优先级较高者获胜(优先级数值越大优先级越低)。
  3. 如果优先级相同,则执行Hash函数,计算结果较大者获胜。
  4. 如果以上都相同,则C-RP指定的IP地址较大者获胜。

R4上:

pimc-rp LoopBack0 priority 10  //设置L0的优先级为10,越小越优先

R6上:

pimc-rp LoopBack0 priority 20

三、然后在R2上查看自己的RP信息:dis pim rp-info

组224.0.0.0/4有两个动态RP,其中一个IP地址为4.4.4.4,优先级为10,另外一个为6.6.6.6,优先级为20。所以对于224.0.0.0/4范围内的组播来说,掩码都相同,根据优先级小的更优,选择的RP就的IP地址就是4.4.4.4。

四、在R2上查看对应的BSR:dis pim bsr-info

可以看到选择的BSR为R3,因为相比于R5的优先级更大,为20;还可以可以看到C-RP的个数为2、Hash mask length字段为30等。

五、最后在R2上查看pim的路由信息:这里也可以显示RP具体的信息为4.4.4.4。

静态RP部署:

在小企业或网络结构简单的环境建议使用静态RP的部署方案。静态RP要求网络每台路由器要由工程师手工添加RP和组的对应关系。

图中,R2的Loopback0 (10.1.2.2)接口用作组播组范围229.1.2.0~ 229.1.2.255的RP,全网R1到R6的每台路由器上均要了解到这个RP信息。其他 PIM 路由器也做同样的静态配置。

说明:

  1. 如果配置的静态RP地址是本机状态为UP的某个接口地址,本机就作为静态RP。作为静态RP的接口不必使能PIM协议。
  2. 如果没有指定ACL, 则配置的静态RP为所有组播组224.0.0.0/4服务;如果指定了ACL,所配置的静态RP只为该ACL所许可的组播组服务。通过重复执行该命令可以配置最多50个静态RP,但同一个ACL不能对应到多个静态RP。如果不引用ACL,则只能配置一个静态RP。
  3. 如果配置静态RP的命令中未携带prefrred 关键字,则设 备优先选择BSR 机制选出的动态RP。即如果网络中未配置动态RP或动态RP失效,静态RP才能生效。而如果配置静态RP的命令中携带preferred 关键字,则设备优先选择静态RP。
  4. 重复执行此命令,会配置多个静态RP.如果存在多个静态RP为某个组服务的情况,则选择IP地址最大的RP为该组服务。

静态配置方案相比于动态配置方案:

  1. 配置容易,但部署复杂,手动工作量大;
  2. 不具备扩展性,当网络拓扑发生变化时,不能及时更新组和RP的对应关系;
  3. 适用在简单拓扑或小型网络中部署时,或当网络拓扑发生变化时对RP不敏感的网络环境。

整理资料来源:《HCIE路由交换学习指南》

PIM SM RP控制原理与实验相关推荐

  1. PIM SM模式下BSR与RP选举机制

    PIM SM模式下BSR与RP选举机制 BSR作用: BSR:bootstrap router 管理动态选举RP.选举出BSR,BSR然后向整个网络通告自己的存在.PIM-SM路由器侦听BSR洪泛的通 ...

  2. PIM SM + IGMP Snooping 适用性测试(二) ttl 问题

    PIM SM + IGMP Snooping 适用性测试(二) ttl 问题 简介 上节的两个问答是基于理论分析与实验验证得出的,这节描述一下实验与实验中遇到的问题. 测试拓扑 图1 实验描述 做实验 ...

  3. 自动控制matlab实验,自动控制原理MATLAB实验报告.doc

    自动控制原理MATLAB实验报告 实验一 控制系统数学模型的Matlab实现 一.实验目的 二.实验环境及仪器 五.思考题 实验一 控制系统数学模型的Matlab实现 一.实验目的 二.实验环境及仪器 ...

  4. 自动控制原理matlab实验,自动控制原理MATLAB实验报告[稻谷书苑]

    <自动控制原理MATLAB实验报告[稻谷书苑]>由会员分享,可在线阅读,更多相关<自动控制原理MATLAB实验报告[稻谷书苑](15页珍藏版)>请在人人文库网上搜索. 1.实验 ...

  5. 控制原理实验根轨迹MATLAB,《自动控制原理》实验报告(线性系统的根轨迹)

    线性系统的根轨迹 实验四 线性系统的根轨迹 一.实验目的 1. 熟悉MATLAB用于控制系统中的一些基本编程语句和格式. 2. 利用MATLAB语句绘制系统的根轨迹. 3. 掌握用根轨迹分析系统性能的 ...

  6. 【自动控制原理仿真实验】 稳定性及稳态误差实验(实验三)

    稳定性及稳态误差实验(实验三) 一.实验要求 二.实验简介 稳态误差的分类 1.原理性误差 2.实际性误差 三.实验过程 1.控制系统特征方程与稳定性的关系 2.分析给定输入的系统稳态误差影响 0型二 ...

  7. 【自动控制原理仿真实验】 控制系统仿真实验(实验二)

    控制系统仿真实验(实验二) 一.实验目的 二.实验简介 1.欧拉法 2.梯形法 3.四阶Runge-kutta法 4.离散相似法 保持器类型 三.实验过程 仿真时间及仿真步距的估计 1.整体离散法 2 ...

  8. 华为PIM-SM 动态RP实验配置

    目录 建立PIM SM邻居 配置DR 配置动态RP 组成员端DR上配置IGMP 配置PIM安全 配置SPT切换 配置Anycast RP 配置接口的IP地址,并配置路由协议使得全网互通 建立PIM S ...

  9. PIM其它特性——IPv6、Anycast RP

    PIM IPv6 MLD 接收端到组播路由器之间使用MLD协议来支持IPv6组播 MLD版本 MLDv1同ICMPv2 MLDv2同ICMPv3 MLD报文 通过ICMPv6进行发包 ICMPv6-- ...

最新文章

  1. Deformable 可变形的DETR
  2. 微信小程序图片自适应宽高比例显示解决方法
  3. 人脸对齐--One Millisecond Face Alignment with an Ensemble of Regression Trees
  4. Linux Shell编程实战---以逆序形式打印行
  5. Effective C++ --3 资源管理
  6. 06_1.Pytorch中如何表示字符串、word embedding、One - hot、Embedding(Word2vec、BERT、Glove)【学习总结】
  7. [LNMP]——LNMP环境配置
  8. 返回顶部小火箭(仿电脑管家)
  9. 西门子伺服电机选型手册_记,新入行维修电工大胆拆解伺服电机和编码器的经历...
  10. 【51单片机快速入门指南】3.3:USART 串口通信
  11. c++程序设计中文件输入输出流知识点
  12. 电平通讯速度_飞凌干货丨几种常见的电平转换电路分析及应用
  13. c语言复制二进制文件
  14. oracle去除首个字符,oracle如何去除字符串中的重复字符
  15. MMC-HVDC仿真模型,pscad柔性直流输电仿真mmc仿真模型
  16. 什么是性能测试,性能测试的目的
  17. 多传感器融合定位 第十章 基于优化的定位方法
  18. “3G域名”遭恶炒 用友移动代理被指画饼圈钱
  19. lol比尔吉沃特服务器未响应,LOL比尔吉沃特9月30日网络波动公告 引起卡机掉线丢包状况...
  20. python画太极图

热门文章

  1. 注册微信公众号需要哪些材料?
  2. 保姆级教程:最新下载及安装vscode(含常用插件)
  3. 乐视pro3精英版乐视X722线刷兼救砖_纯净刷机包_教程
  4. 分布式系统之-我的书单
  5. 毕业三周年,又一个离别季
  6. 开源软件学习交流计划 (西游记项目)
  7. SAP HANA中日期格式转换
  8. BW项目随手记:SAP 采购单位和基本计量单位转换关系
  9. java计算机毕业设计教师管理系统源码+mysql数据库+系统+lw文档+部署
  10. 什么样的台灯灯光是好的?推荐中性色温的护眼台灯