HCNP Routing&Switching之组播技术PIM-SM RP
前文我们了解了组播技术中,组播路由协议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的更多相关文章
- HCNP Routing&Switching之组播技术-组播路由协议PIM
前文我们了解了组播技术中组播分发树相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16019334.html:今天我们来聊一聊组播路由协议PIM相关话题 ...
- HCNP Routing&Switching之组播技术-组播协议IGMP
前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...
- HCNP Routing&Switching之组播技术-组播基础
组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...
- HCNP Routing&Switching之组播技术-组播地址
前文我们聊到了组播技术背景,单播.广播在点到多点应用中的问题,以及组播对比单播.广播在点到多点的网络环境中的优势.劣势,相关回顾请参考https://www.cnblogs.com/qiuhom-18 ...
- HCNP Routing&Switching之组播技术-组播分发
前文我们了解了组播技术中的igmp-snooping相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15860484.html:今天我们来聊一聊组播技术 ...
- HCNP Routing&Switching之组播技术PIM-SM 稀疏模式
前文我们了解了组播路由协议PIM以及PIM-DM密集模式相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16084310.html:今天我们来聊一聊PI ...
- HCNP Routing&Switching之组播技术-IGMP-Snooping
前文我们了解了组播协议IGMP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15700550.html:今天我们来聊一聊二层交换机处理组播报文所面临的 ...
- IP组播技术介绍及实现例子
引 言 近年来,随着Internet的迅速普及和爆炸性发展,在Internet上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网 络视频会议.网络音频/视频广播.AOD/VOD.股市行情发布. ...
- IP组播技术
1 概述 1.1 产生背景 传统的IP通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播:另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播.如果要将信息发送给多 ...
随机推荐
- 4月18日 python学习总结 异常处理、网络编程
一. 异常 1.什么是异常 异常是错误发生的信号,程序一旦出错,如果程序中还没有相应的处理机制 那么该错误就会产生一个异常抛出来,程序的运行也随之终止 2.一个异常分为三部分: 1.异常的追踪信息 2 ...
- vs 2019 社区版 .net core 5.0 之 .net core ef 迁移问题方案
问题一:Add-Migration 时出现 此类问题一般都是模型类主键标识问题增加KEY即可解决 报错: The entity type 'xxxx' requires a primary key t ...
- 16经典的SPI Flash的扇区擦除flash_se功能
一设计功能 对SPI_flash进行扇区擦除,分为写指令和扇区擦除两个时序部分. 二设计知识点 我简单理解flash,第一它是掉电不丢失数据的存储器,第二它每次写入新数据前首先得擦除数据,分为扇区擦除 ...
- 数据库中间件ShardingSphere-Proxy(一)
1.现实中的问题 我们知道数据库的数据,基本80%的业务是查询,20%的业务涵盖了增删改,经过长期的业务变更和积累数据库的数据到达了一定的数量之后,直接影响的是用户与系统的交互,查询时的速度,插入数据 ...
- JS的Event各种属性级target/currentTarget/relatedTarget各种目录的解释
1.Event属性解释:https://developer.mozilla.org/zh-CN/docs/Web/API/Event 2.Event.target/currentTarget/rela ...
- BeanFactory – BeanFactory 实现举例?
Bean 工厂是工厂模式的一个实现,提供了控制反转功能,用来把应用的配置和依赖从正真的应用代码中分离. 最常用的BeanFactory 实现是XmlBeanFactory 类.
- 错误问题之“Apache Log4j 漏洞,在版本为包含2.14以内!”
漏洞概述 Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器. Log4j 1.2 中包含一个 SocketServer 类,该类容易受到不可信数据反序列化的影响,当侦听 ...
- jdk_8接口的内部内容
目标: 如何创建已定义好的接口类型的对象呢? 步骤: 实现的概述 抽象方法的使用 默认方法的使用 静态方法的使用 接口的常量使用 讲解: 实现的概述 类与接口的关系为实现关系,即类实现接口,该类可以称 ...
- 深入理解FIFO(包含有FIFO深度的解释)
FIFO: 一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令. 1.什么是FIFO? FIFO是 ...
- 《基于.NET Core构建微服务》系列文章(更新至第6篇,最新第7篇,已发布主页候选区)
原文:Building Microservices On .NET Core – Part 1 The Plan 时间:2019年1月14日 作者:Wojciech Suwała, Head Arch ...