PIM spase mode
在spase mode中存在shared tree(RP tree)和source tree(SPT)
在spase mode中,在没有组播流量传递时,依然会形成shared tree

Spase mode工作过程

首先所有运行组播协议的路由器都得知道RP点是谁在哪,与dense mode不同的是,在没有组播源发送组播流量时候,依旧可以形成组播路由条目。
组播接收者给最后一跳路由器发送IGMP的成员报告报文,那么最后一跳路由器就知道谁想加组,并且加入那个组。接着它会向RP点发送(,G)校验消息,是PIM的校验消息。会把加入组写成主机想加入的那个组播组地址,然后组播源就会写成RP地址,依靠单播路由表传递到RP点所在的路由器,收到这种信息,RP点所在的路由器会立即生成组播路由条目。最后一跳路由器也会有组播路由条目。
在dense mode中最后一跳路由器也会产生组播路由条目,只是路由条目并不能转发数据,因为没有进向接口,全是出向接口,而在spase mode中,它的进向接口地址为最后一跳路由器到RP点的RPF地址,是可以转发数据的。接着倒数第二跳路由器收到这种信息也产生组播路由条目,继续向RP点发送,进向接口地址依旧是单播路由中到达RP点的最优的地址,也就是RPF地址。RP点收到后,出向地址为收到(
,G)的接口地址,但是没有入向地址,并不知道组播源是谁。也就是说RP到达最后一跳路由器之间的组播路由条目可以转发数据,但是RP的组播路由条目不能转发数据。
当组播源发送组播流量,流量到达第一跳路由器,不会像dense mode那样直接把组播流推下去,这个时候单播向RP发送PIM 注册消息,只是这个消息封装是双层的。
IP+PIM+IP+data,后面的IP字段就是组播源地址向主机加入的组播组地址发送,PIM字段写的就是PIM的注册消息,前面的IP是源IP是第一跳路由器到达RP的出接口,目标地址是RP地址。到达RP点后,会解封装前面的IP字段,露出PIM字段,在注册信息中会详细说明组播源向那个组播组发送组播流量。
当RP点发现没有主机想加入组播组的话,会单播发送注册停止报文,如果发现有组播接收者,RP路由器就会将注册报文撕掉,露出里面的IP字段与data字段。这个时候报文就可以依照之前的组播路由条目(*,G)转发了。

至此,组播源到达RP之间的注册报文是用单播传输的,而RP到达最后一跳路由器用的是共享树进行转发。当RP收到了注册报文后,就知道了组播源是谁,就会向组播源发送一个(S,G)的校验消息,沿途路由器就会产生(S,G)的组播路由条目,最终传递到第一跳路由器,这样第一跳路由器与RP之间就有了(S,G)的组播路由条目。
组播源这个时候继续发送组播流量,这个时候就选择组播路由条目和注册报文一起进行转发,因为还没有收到注册停止报文。这样的话,RP就会收到两个信息,现在针对注册报文就会单播回复注册停止报文,丢弃注册报文,防止转发重复流量。
这样RP到组播源之间就是最短树,到达组播接收者就是共享树。
还存在一个问题,从组播源到达组播接收者这条路很明显是不优的,默认对于最后一跳路由器来说,当它知道组播源在哪里时,就会选择最优的路径发送(S,G)的校验消息,最终到达第一跳路由器。那么对于第一跳路由器来说,就会有两个出向接口地址,那么组播流量到达第一跳路由器后,该怎么转发?是同时转的,那么对于倒数第二跳路由器就会收到两份组播流量,那么只会判断真正的组播源发送过来的流量,也就是选择了源树,不选择共享树,这个时候倒数第二跳路由器就会给RP发送带有RP位的修剪报文。到达RP后,RP也会向组播源发送正常的(S,G)修剪报文,到达组播源后,那么上面的(S,G)组播路由条目就会被清楚,之前RP位的修剪也会清楚组播路由条目。修建完成后,组播源到达组播接收者就选择了源树,这个过程也叫做共享树向源树的切换。

Q:我们最后发现组播源到组播接收者还是选择使用了源树,那么spase mode设置RP,又设置共享树是为了什么?
A:其实通过这个过程可以把组播源与组播接收者接起来,dense mode中是不知道组播接收者在哪的。RP的设置就是为了连接两者。

Q:RP怎么产生?如果挂了,备份怎么做?
A:手工指定RP,是没办法做备份的
Auto-RP cisco私有,多做几个RP,比较选举
BSR:bootstrap RP,与cisco原理一致,只是它是单播,cisco为组播

Q:存在多个最后一跳路由器,那个转发数据?或者说那个发送(*,G)和(S,G)校验消息?
A:只有DR才可以发送。同理多个第一跳路由器的话,也是DR发送注册报文

拓扑图:
R1模拟组播服务器,R5模拟主机,R3作为RP

R2 R3 R4 R6运行IBGP

R2 R3 R4 R6开启组播路由功能

让R5加组



目前R4的组播路由条目不是正常的(*,G),原因是没有配置RP点
R2 R3 R4 R6上手工指定RP


继续在R4上查看组播路由条目

在R3上查看组播路由条目,发现incoming interface一样是null,这是因为没有组播源发送流量

R1发送组播流量

此时R3不仅产生(*,G),还产生(S,G)路由条目

而达到的效果应该是R1 R2 R3是源树,R3 R4为共享树
但是当R4也就是最后一跳路由器收到组播流量,会向上发送(S,G)的校验消息,开始共享树向源树的切换。

在R2上查看

至此,这就是一个稳定的spase mode。

R6上查看是没有组播路由信息的,因为没有加组,创建一个环回,让它加组

那么如何让共享树不向最短树切换呢?
首先清空所有路由表项
Clear ip mroute *
达到目的,R1 R2 R3 R6为最终切换的最短树,R1 R2 R3 R4 R5为最短树与共享树的结合。
在最后一跳路由器上配置,若是存在多个,就在DR上做,

这个时候还没有组播流量的发送,查看

发送组播流量后,R6上查看,存在(S,G),说明切换了最短树

而在R4上并不存在(S,G)组播路由条目,说明还是选择了共享树

Hello报文,周期间隔为30S,超时时间105S

(*,G)join消息

RP可达性消息

注册报文

RP向组播源发送(S,G)join请求

注册停止报文

最后一跳路由器发送(S,G)join报文,也就是切换树给组播源发送

RP的产生方式:1.手工RP 2.auto-rp 3.BSR
Auto-RP:cisco私有
候选RP:备份RP(最大接口地址)
Mapping agent :映射代理,可以用来选举出真正的RP,也可以配置多个映射代理
224.0.1.40—所有支持组播cisco路由器都会加入该组播组,由映射代理发送
224.0.1.39—只有映射代理才会加入该组播组,所有候选RP发送

先删除手工指定的RP

要做auto-RP,auto-rp信息是使用组播方式,接口模式不能为sparse mode,没有RP的sparse的组播是运行不起来的,一般使用sparse-dense mode模式
有RP用sparse mode。没有RP用dense mode,也可这样理解,dense mode为sparse mode的备份,所以一开始是没有RP的,默认执行dense mode修改接口的模式,当然为了避免麻烦,也可以只是针对224.0.1.40和224.0.1.39使用dense
Mode,这样节省配置信息

或者就所有接口修改接口模式

选择接口为候选RP

选择接口为映射代理

查看


当auto RP与手工RP同时部署时,auto RP生效,可以使手工RP生效


PIM 中DR的作用:
1.在Dense-Mode中无作用
2.在Sparse-Mode,第一跳路由器上DR用于发送注册报文;在最后一跳路由器上用于转发组播流量

无论是dense mode和sparse mode,在没有组播流量时候是没有组播路由条目的,即便是sparse也只是有一点共享树,那么为何在到达RP之间的路由器上运行sparse mode,或者dense mode。为何不直接开启组播路由功能就行了?
一个路由器的接口只有运行了PIM的dense mode 或者sparse mode才可以转发路由条目,而只是开启组播路由功能,那么接收的所有组播流量是丢弃的。

PIM sparse mode相关推荐

  1. 55、组播配置实验之PIM Sparse Mode静态指定RP

    1.PIM Sparse Mode简介 2.实验拓扑 3.基础配置 R1配置 interface Serial0/1 ip address 12.1.1.1 255.255.255.0 interfa ...

  2. 56、组播配置实验之PIM Sparse Mode利用Auto-RP动态选取RP

    1.Auto-RP解析 2.实验拓扑 3.基础配置 R1配置 interface Loopback0 ip address 1.1.1.1 255.255.255.0 interface Serial ...

  3. 组播IP地址到底是谁的IP?

     组播IP地址到底是谁的IP? 组播IP地址是视频网站服务器的?还是ISP某个服务器的呢?加入组播组意思是通过这个有组播IP的服务器获取数据么? 组播也是一种IP包,也有源IP地址,目的IP地址, ...

  4. 第十二章:组播 — PIM-SM

    12.7 PIM-SM PIM-SM(PIM Sparse Mode,PIM稀疏模式)适用于组播接受者较为分散.规模较大的网络.PIM-SM中,想要获取相应的组播流量,就必须向RP发送PIM加入报文, ...

  5. CCIE自学-by闫辉NP视频:组播小结

    组播小结:12:24 2014/3/23 路由器转发组播流的方式和转发单播流有很大的差别,发送数据的组播源不知道接收者在何处.保证接收者能收到数据,并且数据不会在不必要的网络上存在是很重要的事情.路由 ...

  6. CCIE-组播防环机制RPF

    2021.11.20 这次真的再也没有办法骗自己了 3.1 单播路由与组播路由的主要区别  单播路由关心数据包要去哪里 (Destination)  组播路由关心数据包从哪里来 (Source) ...

  7. make progress everyday

    IGP Routing Protocols 1.OSPF NSSA区域不接受类型三的LSA,需要no summary 参数的配置.area area-id nssa no-summary 2.RIP的 ...

  8. cisco(思科) 问题库

    Cisco 1800系列集成多业务路由器常见问题 平台 常见问题 问:什么是Cisco®1800系列集成多业务路由器? 答:Cisco 1800系列属于思科集成多业务路由器,包括Cisco 1841模 ...

  9. ip pim spare 源树 和 共享树_Pim通用规则+Dense模式规则+Sparse模式规则

    一.pim 通用规则 pim 通用规则1: 无论何时之创建一个(S,G)项而相应的父(*,G)项存在,就首先自动创建新的(*,G)项.(有(S,G)一定有(*,G),可以比喻为(*,G)是(S,G)的 ...

最新文章

  1. 告别低分辨率网络,微软提出高分辨率深度神经网络HRNet | CVPR 2019
  2. python制作小工具_利用Python制作翻译小工具
  3. 程序员面试题准备(1)单链表逆置
  4. 关于丢番图方程x^2-dy^2=-1
  5. python 栈【测试题】
  6. GIS实战应用案例100篇(三)-基于NDVI指数的绿地信息提取
  7. CVE-2018-1000136:Electron nodeIntegration绕过漏洞
  8. (十)Linux之等待队列
  9. Python 基础知识学习笔记——NumPy
  10. mysql复制学习二 安装及首次复制配置
  11. java arraylist add时默认调用tostring_java中如何调用toString命名的方法?
  12. JAVA大数据Week1习题
  13. php管理员登陆问题,discuz论坛管理员无法登录后台的原因和解决方法
  14. .NET 基础一步步一幕幕[out、ref、params]
  15. php刷屏代码,PHP防止刷屏
  16. otsu阈值分割算法原理_Otsu算法
  17. 安信可开发经验分享 | 安信可ESP-C3-12F模组使用内置USB烧录下载更新固件,无需TTL-USB转接器即可更新固件,下载固件速度更快更省时间。
  18. 【C语言】calloc函数
  19. UE5 GPU崩溃D3D丢失的终极解决办法
  20. “管中窥豹”,MyCAT的基因缺陷

热门文章

  1. nyoj-722 数独(深搜,哈希)
  2. 测试管理007:测试文档 - 让测试人员纠结与无奈的测试工作
  3. springboot异步和切面_spring中的切面和异步执行
  4. 微软发布 FY23 Q3(自然年 2023年 Q1)财报
  5. 关于ubuntu18.04部署ROS系统
  6. uni app页面传值
  7. 计算机病毒与恶意代码(第四版)期末复习考点总结2021
  8. 对图像分割里的mask详细解释
  9. UG4.0 57套经典塑胶模具结构设计视频教程 全3D结构设计
  10. bitnami mysql默认密码_重置Bitnami mysql 密码