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通信有两种方式:一种是在源主机与目的主机之间点对点的通信,即单播:另一种是在源主机与同一网段中所有其它主机之间点对多点的通信,即广播.如果要将信息发送给多 ...
随机推荐
- 通过TCP Allocate连接数告警了解promethous-NodeExporter数据采集及相关知识扩散
1.问题由来 近日有环境告警如下:TCP Allocate连接数过多 很多资料告诉我们使用:netstat –ant | grep ^tcp | wc –l命令查询,但查询的值与告警中获取的只相差很大 ...
- 让编程更轻松的 7 个 Visual Studio 扩展 : 以下几个扩展,BuildVision可以用
是时候升级你最喜欢的IDE了!在这篇文章中,我将介绍一些我最喜欢的与众不同的 Visual Studio 扩展,是它们让我的日常编程工作变得更加轻松.对于一些明摆着的,例如 ReSharper 和 O ...
- 在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区
在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区? 1 为什么要有Survivor区 先不去想为什么有两个Survivor区,第一个问题是,设置Survivor区的意义在哪 ...
- 你在项目中哪些地方用到了 XML?
XML 的主要作用有两个方面:数据交换和信息配置.在做数据交换时,XML 将数 据用标签组装成起来,然后压缩打包加密后通过网络传送给接收者,接收解密与 解压缩后再从 XML 文件中还原相关信息进行处理 ...
- APScheduler定时任务框架
1.简介 APScheduler是一个Python**定时任务框架**,提供了**基于日期**.**固定时间间隔**以及**crontab**类型的任务,并且可以**持久化任务**.基于这些功能,我们 ...
- springboot+shiro 01 - 实现权限控制
sb_shiro_session <?xml version="1.0" encoding="UTF-8"?> <project xmlns= ...
- CEPH-3:cephfs功能详解
ceph集群cephfs使用详解 一个完整的ceph集群,可以提供块存储.文件系统和对象存储. 本节主要介绍文件系统cephfs功能如何灵活的使用,集群背景: [cephadmin@yq01-aip- ...
- C++中类所占的内存大小以及成员函数的存储位置
类所占内存的大小是由成员变量(静态变量除外)决定的,虚函数指针和虚基类指针也属于数据部分,成员函数是不计算在内的.因为在编译器处理后,成员变量和成员函数是分离的.成员函数还是以一般的函数一样的存在.a ...
- 惯性传感器(IMU)
近两年来,车联网.自动驾驶.无人驾驶.汽车智能化.网联化等成为了汽车行业的热点话题,未来汽车一定是朝着安全.可靠及舒适的方向发展.而这一切背后的发展都离不开传感器的作用,今天我们就来聊聊用途越来越广的 ...
- c++中的赋值函数
在c++中,对于任意一个类Class A,如果程序员不显示的声明和定义上述函数,C++编译器将会自动的为A产生4个public inline 的默认函数,这4个函数最常见的形式为: A() //默认构 ...