PIM(下)

PIM(下)
前言:请先观看PIM(上)博客
-------------------------------Graft机制---------------------

在这里插入图片描述
·在我们这张图中,RTE和RTC的接口处于prune状态,在这个状态下,如果RTE现在新加入一个接收者,并且接收者向RTE发送IGMP的report的时候,实际上在这个情况下,RTE的入接口会从prune状态恢复成forward状态,并且向RTC发送graft消息,发送graft以后,RTC也将自己的出接口恢复成forward,在这种情况下,流量就能正常下发了。
·需要注意graft嫁接消息的时候,使用的单播发送的,这个和我们的修剪不一样,修剪使用的是224.0.0.13。而这里是单播,逐跳向组播源传递嫁接消息。
·由于graft是个可靠的信息,因此实际需要上游设备需要给下游发送graft ACK才能够将状态变成forward,因此还是有确认机制的,如果上游设备3s还没回复,那么就继续发送graft信息。

PIM-DM实验:
·需要注意AR1和源配置的时候接口也要是pim dm
·在配置pim时首先要打开组播,华为设备默认开启pim,因此可以不需要用pim
·display pim routing-table //查看pim路由表
·display pim routing-table fms //查看详细的pim路由表信息

----------------------------Assert(断言)机制--------------------------------
在这里插入图片描述
·对于此图而言,我们知道,对于我们的Multicast Network里面的路由器,会发送包含(S,G)信息的数据包,向下游设备发送组播信息后,下游设备也有了(S,G)表项,给A,B,C发送,发送完成之后,ABC三台路由器实际上都会发送组播数据包,以RTA为例,它会收到2个一模一样的(S,G)表项的组播信息,在这种情况下,RTA发现存在相同的组播信息,我们说过在一个链路上只存在一份组播信息,因此以这个情况来说,接收者A会收到三份一样的组播流量,这是不正常的
·针对这种情况,断言机制就出现了,断言机制主要是为了解决在MA网络里面存在多播信息的情况的,在我们的组播路由器接收到了邻居路由器发送的相同组播信息之后,会以组播的方式向本网段的所有PIM路由器发送Assert消息,其中目的地址为224.0.0.13。在我们这张图中,也就是让RTA,RTB,RTC去进行assert竞选。
在这里插入图片描述

-----------------------------PIM-DM配置验证------------------------------------------
display pim routing-table //查看pim的组播路由表
display pim neighbor //查看pim的邻居
display interface verbose //查看pim接口配置

-----------------------------PIM-DM局限性------------------------------------------
·使用PIM-DM时候,实际上在小型网络里面,设备密集的时候,我们使用PIM-DM会有一定的优势,但是如果网络比较大,并且设备比较稀疏,实际上我们去进行扩散-剪枝的周期会导致资源的浪费比较严重,因此不适合稀疏的网络环境,在这种情况下我们就可以使用PIM-SM

-----------------------------PIM-SM基本概述------------------------------------------
·PIM-SM(Protocol independent Multicast-Sparse Mode):与协议无关组播-稀疏模式。
在这里插入图片描述在这里插入图片描述

  • PIM-SM的特点
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • RPT共享树形成
    首先接收者向DR发送IGMP的report报文,那么由这台与接收者相连的路由器收到以后,它就会做一个IGMP的维护,同时,如果这台路由器是DR的话,那么就会朝着RP的方向逐跳去发送(*,G)的加组信息,这个信息一定是pim报文。逐跳到达RP以后,就截止掉了,不会再继续转发了,这个时候,RP->B->C已经形成了一个共享树RPT。
  • SPT有源树的形成
    现在路由器D作为DR,实际上不能向PIM-DM一样向下游去扩散,那么在这种情况下,路由器D作为第一跳路由器,在组播源持续打流量过来的时候,由组播信息触发着让它向下游设备发送单播信息,这个单播信息是发给RP的,这个单播信息就是单播的注册消息,就是对RP进行询问,有一个(S,G)中表示的这个源这个组,有没有对这个组播数据这个组感兴趣的设备。那么如果RP的共享树有感兴趣的,那么为了让组播数据往下转,RP就会向第一跳路由器逐跳的去发送(S,G)的join信息。那么反向,D逐跳到达RP的这个路径,就是原树,那么组播数据流就会沿着源树先给RP,再由RP去传给接收者。

-------------------------组播接收者侧DR与组播源侧DR-------------------------------------
在这里插入图片描述
·只要是共享式的网络或者多路访问网络,就会选择DR
·只有在接收者侧,也就是最后一跳路由器,以及组播源侧,也就是第一跳路由器,DR才会有用。
·DR选举和PIM-DM一致:
①选举DR,是通过优先级进行查询的,这里的优先级(指的是hello消息携带的优先级)默认为1,优先级数值越大,则优先级越大。
②优先级如果一致的情况下,会通过IP地址去进行选举,IP地址越大,则优先级越大。

---------------------------------汇聚点RP-------------------------------------
在这里插入图片描述

【讲到RP的作用时,我们需要了解RP如果负责所有的组播流量时,如果RP出问题了,会导致所有组流量断掉了,其实可以在组播网络环境中,弄出两个RP来,一个RP为一个组播组服务,另一个RP为另一半组播组服务】

·RP的指定
RP可以静态指定也可动态选举:
静态指定是指由管理员在每台PIM-SM路由器上进行配置,使得每台路由器获知RP的位置。
动态选举是指通过专用协议在若干台C-RP(Candidate-RP)中选举产生。管理员需要开启选举协议并配置若干台PIM-SM路由器成为C-RP。
RP配置方式建议:
中小型网络:建议选择静态RP方式,对设备要求低,也比较稳定。
如果网络中只有一个组播源,建议选择直连组播源的设备作为静态RP,这样可以省略源端DR向RP注册的过程。
采用静态RP方式要确保域内所有路由器(包括RP本身)的RP信息以及服务的组播组范围全网一致。
大型网络:可以采用动态RP方式,可靠性高,可维护性强。
如果网络中存在多个组播源,且分布密集,建议选择与组播源比较近的核心设备作为C-RP;如果网络中存在多个用户,且分布密集,建议选择与用户比较近的核心设备作为C-RP。
在这里插入图片描述

  • 拓扑图
    在这里插入图片描述
    1、先有接收者后有组播流

  • RPT共享树加入
    实际上和之前说的一样,接收者所连接的最后一跳路由器向上游发送(*,G)的信息,然后一直发到RP,然后向下形成了RPT

  • 组播源注册过程
    对于组播源注册来说,实际上就是我们的接收者存在时,RP已经建立的RPT共享树的情况下,如果组播源向第一跳路由器发送组播报文,那么实际上就由第一跳路由器向RP发送单播的信息,也就是(S,G)注册信息,这个注册信息实际上就是对组播信息实现了一个再次的封装,封装以后再单播发送给RP,在RP处进行解封装,解封装之后,那么RP就向第一跳路由器逐跳发送(S,G)的加入信息,并且将数据向下游设备转发。

  • 停止注册过程
    问题什么时候第一跳路由器计算有组播源发送组播数据来的时候,也不会像RP发送单播的SG注册信息呢?
    其实就是RP向第一跳路由器发送停止注册信息时就能达到这个效果。但实际上第一跳路由器不会永久不发送,只是间隔为1分钟。

其次需要考虑RP什么时候会发送停止注册信息让第一跳路由器停止发送单播的注册信息
①如果已经形成有源树SPT了,那么实际上没有必要再继续去注册了,因此会发送停止注册信息。(RP如果直接收到纯的组播报文,那么就触发了效果),register报文会一分钟一次进行发送。在这个情况下,沿着源树向RP传输组播报文。

2、先有组播流,后有接收者。
在这里插入图片描述

  • 前期还是一样,由DR向RP发送单播注册,但是如果现在RP并没有存在这个S,G的共享树,那么立马就会回复一个stop信息。但是会出现一个(S,G)的表项信息
  • 如果现在最后一跳路由器中加入一个接收者,那么实际上会向上发送IGMP的report报文,发送上去以后,组播路由器会向RP发送(,G)信息,这个信息到达RP以后,由于RP存在对应(S,G)信息,那么在这个情况下,不需要等待第一跳路由器发送单播的注册信息,RP会直接向第一跳路由器发送(,G)的join信息,直接建立SPT树,然后就和之前就一样了

附加: reject周期为一分钟的原因:因为RP上的S,G表项会超时,如果S,G表项超时,那么对于新加入的接收者,RP并不知道它有感兴趣的组,那么也不会为它去向第一跳路由器发送*,G的加入信息,所以也就永远不会有流到达新加入的接收者,因此为了刷新RP上缓存的表项,我们要让DR去周期性发送单播的注册信息,这样如果有新的接收者,能够马上建立去往组播源的SPT。

-------------------------------------PIM-SM的转发树------------------------------------------

在这里插入图片描述

  • 在本图中,假设单播的路由协议使用的是OSPF,在这种情况下,绿色的RPT的路径实际上不是非常的完美,因为不是我们最佳的转发路径,最佳的转发路径应该是左边这条,因此我们就涉及一个知识点,也就是RPT向第二棵SPT树装换,那么在这种情况下,我们需要先了解一个前提
    前提①:对于PIM-SM来说,我们之前建立的SPT有源树,叫做第一棵有源树
    前提②:对于后面RTP转换成的SPT,叫做第二棵有源树。

-------------------------------------------Switchover机制-----------------------
·默认情况下,设备阈值默认值是0,(阈值实际上就是根据报文的速率与阈值的比值来判断RPT是否需要转换为第二棵SPT)
·在我们的接收端DR,也就是ClientA所连接的路由器设备来说,它通过单播路由协议知道,我们最佳的路径应该是属于左侧的路径,在这种情况下,从RP根据RPT发来的组播数据,实际上组播数据的报文速率会超过接收端DR的阈值,一旦发现超过阈值,那么立马向上游设备发送(S,G)的join信息,并且创建S,G表项,建立组播源端DR到达接收端DR的第二棵SPT,那么在这里,接收端DR发送(S,G)Join信息的原因,就是因为通过单播路由协议能够知晓组播源的地址,并且join的作用和我们之前RP建立源树是一样的。一定是最后一跳路由器产生的切换。
·SPT建立后,为了避免一个相同的组播流量,也就是会通过原来SPT-RPT,以及现在的SPT发送过来的情况,那么在这种情况下,我们要想办法将原来的共享树RPT的流量给删除,那么解决办法如下:
用户端DR会沿着RPT逐跳向RP发送剪枝报文,收到剪枝报文的路由器将(*,G)复制成相应的(S,G),并将相应的下游接口置为剪枝状态。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。在这里需要注意,剪掉的是原来共享树的流量剪掉,而不是共享树剪掉。并且对于我们RP中出现的SG表项,实际上出接口为空,那么不会向共享树发送流量,并且这么做了以后,RP还需要向上游设备,去修剪我们的源树。
·机制之后,就只剩下第二棵SPT树了,就能通过最优的路径去走
·华为设备上默认开启了RPT切换SPT的功能
在这里插入图片描述
·由于默认的阈值是0,那么实际上我们在第一次接受到组播数据报文以后,就会立马加入最短路径树SPT。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值