前文我们了解了组播技术中,组播路由协议PIM的稀疏模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16142795.html;今天我们来聊一聊组播路由协议PIM稀疏模式中RP相关话题;

  我们知道在RPT里,所有组播数据流都会通过RP转发到接收者;对于一个RP来说,它可以同时服务于多个组播组,但一个组播组只能对应一个唯一的RP;所谓RP就是RPT(Rendezvous Point Tree)里的RP(Rendezvous Point),即汇合点;所有的组播源和接收者都是以该点为树根所形成的数据转发路径(RPT)来转发报文,组播源先向树根发送数据报文,之后的报文再向下转发到达所有接收者;

  RP发现

  RP发现有两种方式,一种是静态RP,即通过人工手动指定静态RP的ip地址,在所有PIM路由器上配置;另一种就是动态RP,所谓动态RP就是通过几台PIM路由器配置C-RP(Candidate-RP,候选RP),最后从C-RP中竞选产生RP;在竞选RP之前,首先要配置C-BSR(Candidate-BootStrap Router,候选自举RP),从C-BSR中先选出BSR;BSR负责收集C-RP的通告信息,并发布到整个PIM-SM网络,让所有路由器知道RP的位置;简单讲动态RP是在众多C-BSR中先选举BSR,然后有选举的BSR收集C-RP的通告信息,然后再从多个C-RP中竞选出RP,然后再由BSR通告给PIM-SM整个网络路由器让其知道RP的位置;静态和动态是可以同时配置的,默认情况下静态比动态优先级更低,但是静态可以配置更高;

  提示:首先在PIM-SM网络中通过多个C-BSR中竞选出BSR,然后由BSR收集C-RP发出的通告信息,再从多个C-RP中竞选出RP;然后再由BSR将其竞选出RP的结果通告给整个PIM-SM网络中的所有路由器,让所有路由器知道RP的位置;

  BSR选举规则

  1、在多个C-BSR中先比较其优先级,优先级数字越大,优先级越高,即优先级越大越有限成为BSR;

  2、如果优先级一样,则比较接口ip地址,ip地址大者成为BSR;

  RP选举规则

  1、如果只有一个C-RP,那么该节点就是域里的RP;如果有多个C-RP,首先比较C-RP的优先级,优先级较高(数字越小)者称为RP;

  2、如果优先级相同,者使用哈希(hash)函数计算哈希值,该值较大者称为RP;

  3、如果优先级和哈希值都相同,则比较C-RP接口ip地址,ip地址大者成为RP;

  实验:如下拓扑,配置PIM-SM

  pc1、pc2、msc1的配置

  各路由器配置

  R1的配置

sys
sys R1
int g0/0/0
ip add 192.168.21.1 24
int g0/0/1
ip add 192.168.11.1 24
q ospf 1234 router-id 1.1.1.1
area 0
net 192.168.21.1 0.0.0.0
net 192.168.11.1 0.0.0.0
q
q multicast routing-enable
int g0/0/0
pim sm
int g0/0/1
pim sm

  R2的配置

sys
sys R2
int g0/0/0
ip add 192.168.32.2 24
int g0/0/1
ip add 192.168.42.2 24
int g0/0/2
ip add 192.168.21.2 24
q ospf 1234 router-id 2.2.2.2
area 0
net 192.168.32.2 0.0.0.0
net 192.168.42.2 0.0.0.0
net 192.168.21.2 0.0.0.0
q
q multicast routing-enable
int g0/0/0
pim sm
int g0/0/1
pim sm
int g0/0/2
pim sm

  R3的配置

sys
sys R3
int g0/0/0
ip add 192.168.13.254 24
int g0/0/1
ip add 192.168.32.3 24
q ospf 1234 router-id 3.3.3.3
area 0
net 192.168.13.254 0.0.0.0
net 192.168.32.3 0.0.0.0
q
q multicast routing-enable
int g0/0/0
pim sm
igmp en
int g0/0/1
pim sm

  R4的配置

sys
sys R4
int g0/0/0
ip add 192.168.24.254 24
int g0/0/1
ip add 192.168.42.4 24
q ospf 1234 router-id 4.4.4.4
area 0
net 192.168.24.254 0.0.0.0
net 192.168.42.4 0.0.0.0
q
q multicast routing-enable
int g0/0/0
pim sm
igmp en
int g0/0/1
pim sm

  在R2上验证pim邻居

  提示:可以看到R2有三个邻居,分别是R1、R3和R4;和我们的拓扑是符合的;

  在R2的g0/0/2口抓包,让组播源发送数据,看看对应是否会生成组播路由?会不会像dm那样先扩散呢?

  提示:通过抓包,并没有发现有组播udp,只有pim的hello包;

  验证,看看R2上是否有组播路由产生呢?

  提示:可以看到R2上并没有组播路由产生;

  在R1上验证是否有组播路由产生呢?

  提示:可以看到R1上有组播路由产生,并且是(s,g)的形式;但是该路由信息只有上游接口,并没有下游接口;这是因为该路由器直连组播源,对应并没有接收者,所以只会有上游接口;通过上述截图我们也可以看到对应RP也是空;

  手动配置静态RP为2.2.2.2

  提示:在其他路由器上也需要配置同样的RP;同时其他路由器单播网络必须能够到达对应RP;

  提示:我们这里选择R2为RP,所以在R2上必须有一个接口的ip地址为RP的ip地址,并且该ip需要在ospf中宣告,便于其他路由器学习到到达RP的路由;

  在任意路由器上验证RP信息

  提示:验证RP信息,后面需要更对应组播地址,表示查看对应组播组里RP信息;默认情况下我们配置的静态RP信息是匹配所有组播组;

  提示:当然我们需要给某个组播组配置一个单独的RP,我们可以对应RP地址后面加ACL,表示ACL匹配到的地址都是对应的RP;prefered这个参数是配置静态RP信息优于动态RP,即当同时配置静态RP和动态RP后,静态RP上加上prefered这个参数后,对应静态RP的优先级就高于动态RP;

  在pc2上加入对应组播组,在R4上抓包看看对应过程

  提示:可以看到PC2 点加入对应组播组的时候,首先R4会发送igmp 查询,pc2报告有成员加入;

  提示:可以看到随后R4会发送加入消息给整个pim网络;

  查看R4的路由表,看看对应路由是否生成?

  提示:可以看到对应组播路由已经产生,并且是以(*,G)的形式,并不是(S,G);对应路由的下游接口也产生了;

  在R1上抓包,然后组播源发送数据

  提示:可以看到在R1上抓包能够抓到组播源向RP的注册包,这个包是通过在udp里封装了一个Pim包头来携带组播源的注册信息;

  在RP上查看对应组播路由

  提示:可以看到RP上的路由有源树和共享树两种形式,这是因为RP到组播源走SPT,RP到接收者走RPT;

  提示:同时我们在R2上也能抓到R4向R2发送到加入消息,对应是发送给RP所配置的地址;

  配置动态RP

  在R1和R2上新建lo接口,并配置c-bsr ,看看对应bsr的竞选过程

  将lo1接口宣告在ospf里

  提示:将lo1接口宣告在ospf里,是让其他路由器学习到相应接口的路由;

  提示:对应接口注意要先开启pim sm 然后才能配置对应角色;

  提示:可以看到在默认优先级的情况下,在R1配置成C-bsr以后,对应抓包会看到R1会周期性的发送bootstrap消息告诉其他路由自己是bsr;当R2配置c-bsr以后,对应R1看自己和R2的优先级一样,且R2的ip地址比自己大,此后R1就被抑制,取而代之的是R2成为BSR周期性的发送bootstrap消息告诉其他路由器自己是bsr;当然我们可以修改R1的优先级来来影响竞选结果;

  修改R1c-bsr的优先级为5

  再次查看bsr,看看谁是bsr?

  提示:可以看到当R1更改优先级以后,对应bsr就成为了R1;这是因为R1的优先级大于R2;

  配置R1和R2对应lo接口为c-rp接口

  抓包查看交互过程

  提示:从抓包的信息可以看到R2在向R1通告,R1向其他路由器发送bootstrap消息,说明BSR是R1;但RP是谁还不知道;

  验证:查看RP信息,看看谁竞选为RP了?

  提示:可以看到R2成为了RP;

  修改R2的C-RP的优先级为10,看看对应RP会不会被R1竞选?

  查看RP信息

  提示:可以看到把R2的c-RP的优先级加大以后,对应RP就变成了R1,这是因为RP选举首先看优先级,优先级数字越小则成为RP ;

  播放组播源,然后查看R4的路由表,看看对应是否发生了RPT向SPT切换了呢?

  提示:可以看到R4上也有了SPT,说明发生了RPT向SPT切换;

  在R4上修改永不向SPT切换

  再次查看R4的路由表,看看对应是否还会有SPT呢?

  提示:可以看到此时R4的路由表中就只有RPT,并没有SPT;说明RPT没有向SPT切换;

  PIM-DM和PIM-SM比较

  PIM-DM适用于规模较小、组成员相对比较密集的网络中,工作机制是通过周期性“扩散-剪枝”维护一棵连接组播源和组播成员的单向无环SPT;

  PIM-SM适用于组成员相对比较稀疏,分布广泛的大型网络中;工作机制采用接收者主动加入的方式建立组播分发树,需要维护RP、构建RPT、注册组播源;

HCNP Routing&Switching之组播技术PIM-SM RP的更多相关文章

  1. HCNP Routing&Switching之组播技术-组播路由协议PIM

    前文我们了解了组播技术中组播分发树相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16019334.html:今天我们来聊一聊组播路由协议PIM相关话题 ...

  2. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

  3. HCNP Routing&Switching之组播技术-组播基础

    组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...

  4. HCNP Routing&Switching之组播技术-组播地址

    前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...

  5. HCNP Routing&Switching之组播技术-组播分发

    前文我们了解了组播技术中的igmp-snooping相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15860484.html:今天我们来聊一聊组播技术 ...

  6. HCNP Routing&Switching之组播技术PIM-SM 稀疏模式

    前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...

  7. HCNP Routing&Switching之组播技术-IGMP-Snooping

    前文我们了解了组播协议IGMP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15700550.html:今天我们来聊一聊二层交换机处理组播报文所面临的 ...

  8. IP组播技术介绍及实现例子

    引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...

  9. IP组播技术

      1  概述 1.1  产生背景 传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播:另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播.如果要将信息发送给多 ...

随机推荐

  1. tomcat启动 ssm项目出现乱码的解决

    0.乱码产生原因:编码和解码的方式是不同 1.出现乱码的解决方式[推荐]: 在tomcat 的配置文件web.xml 中添加上请求编码过滤器: <!-- 请求编码过滤器 --> <f ...

  2. Prometheus自定义监控告警项-3

    prometheus 编写告警规则 将自定义的告警规则写到独立的文件中,prometheus.yml中引用如下: rule_files: - "rules/*.yml" [root ...

  3. JDK8新特性关于Stream流

    在Java1.8之前还没有stream流式算法的时候,我们要是在一个放有多个User对象的list集合中,将每个User对象的主键ID取出,组合成一个新的集合,首先想到的肯定是遍历,如下: 1 2 3 ...

  4. Mysql查询优化器之关于JOIN的优化

    连接查询应该是比较常用的查询方式,连接查询大致分为:内连接.外连接(左连接和右连接).自然连接 下图展示了 LEFT JOIN.RIGHT JOIN.INNER JOIN.OUTER JOIN 相关的 ...

  5. SpringDataRedis持续更新部分值使用方式

    官方文档:https://docs.spring.io/spring-data/redis/docs/2.3.4.RELEASE/reference/html/#redis.repositories. ...

  6. 什么是 Apache Kafka?

    Apache Kafka 是一个分布式发布 - 订阅消息系统.它是一个可扩展的,容错的 发布 - 订阅消息系统,它使我们能够构建分布式应用程序.这是一个 Apache 顶 级项目.Kafka 适合离线 ...

  7. centos 后台 运行jar包方法

    后台运行jar包方法: 1.nohup java -jar shareniu.jar & nohup意为后台不挂断运行,与是否账号退出无关 2.nohup java -jar shareniu ...

  8. 基于融云的IM通讯

    一.业务场景 项目的发展需要吧原来自己的写的通讯换为第三方的,多家对比后选择了融云IM通讯,项目要实现的功能这要是单聊.群聊.聊天室.发送的内容为文字.图片.文件.语音通话与视频通话.听起来挺复杂的我 ...

  9. Java/C++实现命令模式---多次撤销和撤回

    某系统需要提供一个命令集合(注:可以使用链表,栈等集合对象实现),用于存储一系列命令对象,并通过该命令集合实现多次undo()和redo()操作,可以使用加法运算来模拟实现.\ 类图: Java代码: ...

  10. 什么是静态内部(Static Inner)类,语法要注意什么?

    4静态内部类(Static Inner Classes) 马克-to-win:这里的内部类的static,意思是它可以不用实例化外部类,就自己单独被实例化,单独存在(有点像生活中的办公室和办公桌(独立 ...