(1)PIM(协议无关组播路由协议)是什么协议?作用是什么?
作用:用于组播路由器与组播路由器之间构建组播路由表协议无关组播:与网络层运行哪一种单播路由协议无关,但是网络层必须要运行一种单播路由协议,用于组播数据转发时进行RPF检查。
特点:
1 工作在一个AS内组播路由协议
2PIM分为两种模式,PIM-SM,PIM-DM
使用PIM的位置:
1 连接组播源的接口
2 需要转发组播路径经过的接口
3 连接接收者的接口(可选,运行IGMPV1的接口必须要配置PIM)
PIM协议的角色:
1第一跳路由器:连接组播源的路由器(DR)
2最后一跳路由器:连接接收者的路由器(DR)
3 中间路由器:负责转发组播数据流
4 叶子路由器:与用户主机相连的PIM路由器,但连接的用户主机不一定为组成员
5 MDT:组播分发树,组播数据流所经过的路径形成的一颗无环的树
DR主要作用如下:
1 在连接组播源的共享网段,由DR负责向RP发送Register注册报文。
2 在连接组成员的共享网段,由DR负责向RP发送Join加入报文。 注1:在DM模式中也选DR,但不发挥作用
注2:每个中间网段也会选举DR,SM模式中,DR只在头一条和最后一跳发挥作用。
1、PIM 的作用,为什么称为协议无关组播;分哪几种模式
PIM 运行在路由器之间,生成组播的路由表项,指导组播流量的转发。
协议无关组播:组播路由器通过 RPF 检查来确定 RPF 接口,而 RPF 检查是通过 IGP路由表进行,并不关心 IGP 路由表中的路由如果生成。
DM 密集模式 :适用于接收者密集,小型网络的情况,SPT 树越多,很多网段都有接受者,就认为接收者越多,也就越密集。
SM 稀疏模式 :适用于接受者少,大型网络。
2、PIM SM 的工作机制
1、RPT 树的形成
2、SPT 树的形成
3、注册消息的作用,及什么时候会发送注册停止。
4、切换的过程,切换后的剪枝
4、PIM SSM mapping
运行在 IGMPV1 IGMPV2 中,由于 V1 和 V2加组的时候没有指定一个源的信息,也就只能建立 RPT 是,无法建立 SPT 树启动了 mapping 后,要手动绑定一个源信息,让 路由器知道源的信息,从而建成 SPT 树。
5、PIM 的报文(10种,哪些是单播哪些是组播)
6、RPF 的作用及使用场景
RPF 的作用:可以解决次优路径,防环,确定建树的出接口。
如何判断网络中使用PIM-DM还是PIM-SM作为组播路由协议?
通过网络管理员对网络中接收者的分布情况与组播路由器上(*,G)条目的数量而决定的。
如果接收者的数量很多,是不是一定会使用PIM-DM模式?
不是,主要是通过组播路由器上(*,G)条目的数量而决定的,如果出现一个组播路由器下挂着100多个接收者。
那么基于整体考虑,还是使用PIM-SM模式会比较节省组播网络中组播路由器的设备开销。
注意:组播路由协议的选择主要是看接收者分布的密集程度
有两台路由器在同一网段,哪台路由器负责向组播接收者发送组播数据流?如果是在组播源处,谁负责接收组播流?在PIM-DM中,由AssertWinner负责转发组播流,组播源处都会接受组播流, 转不转发组播流需要的组播转发表
(看<S,G>或者<*,G>的下游接口是否为空,如果为空,不转发,如果不是空的,朝下游接口转发)在PIM-SM中,由DR负责转发组播流,在组播源处都会接收组播源,只由DR负责向RP发送注册消息,RP朝着源的发送join消息,根据(S,G)条 目来进行组播流转发
PIM-SM(稀疏模式)
想象网络的接收者分布比较稀疏,接收者需要流量需要向RP(汇聚点)进行请求,当组播源活跃需要向RP注册,发现是否存在接收者,如果存在才会发送组播流量。
特点:
1 .使用“拉(Pull)模式”转发组播报文
2 .存在RP
3 .存在SPT以及RPT树,流量根据SPT以及RPT树转发
4.适用于大型组播网络
工作机制:
(1)邻居发现建立邻居的过程同PIM-DM一致,协商参数、报文格式类型也完全一致。DR竞选规则也一致。
DR作用:
1 .在最后一跳路由器给IGMPV1充当查询器;
2 .在最后一跳路由器只有DR路由器才会向RP建立RPT树(避免收到重复组播流);
3 .在最后一跳路由器由DR发出RPT树向SPT树切换;
4 .在第一跳路由器由DR向RP发出注册;
(2)RP发现
注意问题:
1 每一个组播组只能存在一个RP;
2 .RP的地址必须要全网可达能通过IGP协议实现访问(建立rpt树);
3 .RP所在的接口地址必须要运行PIMSM。
成为RP的方式:
手工指定
a)每台组播路由器都需要配置
b)没有冗余备份(对于一个组播组)基于msdp协议,静态RP可以实现备份。
动态发现
a)不需要每台组播路由器配置RP,可以自动学习到RP
b)有冗余备份,一个组播组可以配置多个C-RP,一个 主多个备份
实现:
BSR:负责收集以及通告RP的信息,网络中可以存在多台C-BSR
RP:为一个或者多个组提供RP服务。网络中可以存在多台C-RP
工作流程
1 网络中所有的C-BSR都会以自己为BSR向所有的PIM邻居发出BSR报文(组播发送);
2 PIM路由器收到C-BSR消息之后会选出最优的一台作为BSR:
选举规则:
a)比较BSR的优先级(默认为0,越大越优先);
b)比较BSR的IP地址,越大越优;
3 .网络中选出最优的BSR之后,BSR会周期性每60s泛洪BSR消 息。所有的C-RP会向BSR单播发送RP的通告报文。RP通告包含(RP服务的组范围,RP的优先级,RP的IP地址);
4 .当BSR收到所有RP的通告报文之后,汇总成RP-set发送给所 有的PIM邻居;
5 .PIM路由器根据收到的BSR报文中的RP-SET信息,选出最优的RP, 选举规则如下:
a).RP服务组范围的精确度,范围越精确越优;
b)RP的优先级,越小越优,RP优先级默认为0;
c)如果优先级相同,则执行Hash函数,计算结果较大 者获胜;
d).如果以上都相同,则C-RP地址较大者获胜。
Bsr消息报文格式如下:
注意:在报文中没有体现hash值,但是实际上会携带。
(3)RPT构建:
1 .由最后一跳DR路由器发起,当收到IGMP的报告消息,会产生相应的(*,G)条目,然后向去往RP的上游路由发出(*,G)的jion消息
2.上游路由器收到(*,G)的jion消息之后,会检查(*,G)的jion消息的上游邻居接口和接收报文的接口IP地址是否是一致,如果一致创建(*,G)的路由条目,并且继续往指向RP的上游路由器发送(*,G)的jion消息
上游接口:指向RP的接口
下游接口:收到(*,G)的jion消息接口
3 .上游路由逐跳往RP发送(*,G)的jion消息构建RPT树,直达RP路由器 为止
上游接口:NULL
下游接口:收到(*,G)的jion消息接口
(4)组播源注册
1.当第一跳路由器DR收到来自组播源的流量,在第一跳路由器生成(S,G),并且会向RP发出单播的注册报文,单播的注册报文包含组播的流量
2.当RP收到注册报文,会检查注册报文中的(S,G)是否在RP上存在相应(*,G);
a) 如果不存在,向组播源发送注册停止报文,组播 源收到注册停止消息,停止发送注册报文60S
b)如果存在,RP会将组播报文沿着RPT树发送给接 收者,并且在RPT树上会生成相应的(S,G)条目
3.RP会向组播源的方向发送(S,G)的jion报文,上游的路由器收到 (S,G)的jion报文也会创建(S,G)的路由条目,并且继续向组播 源的方向发送(S,G)的jion报文,直至组播源的第一跳路由器为止; ○4 .RP从SPT树收到组播流之后,会单播向第一跳DR路由器发送注册停止报文。
(5)SPT切换
1 好处:
a)组播源到接收者走为最优的路径
b).减轻RP的负担
2 切换条件:由最后一跳路由器的DR发起,当接收的组播流达到一定的阈值(默认为0)
3 切换的过程:
a)当最后一跳路由器的DR组播流达到一定的阈值,会向组播 源的方向发出(S,G)的jion消息;
b).当上游路由器收到(S,G)的jion消息,会将(S,G)的flag 位切换为SPT置位,上游接口为离组播源最近的接口,下游接口为接收(S,G)的jion消息接口,并且继续往组播源的方 向发(S,G)的jion消息,建立SPT树;
c).当分叉点的组播路由器收到两份组播流,会触发(S,G)rpt 置位的剪枝报文,朝RP的方向进行发送,作用是为了删除掉RPT树上(S,G)的下游接口。
静态RP与动态RP的优缺点分别是什么?
静态RP的优点:配置简单、快捷,无周期性发送报文机制,设备开销小;
缺点:无备份机制、负载均衡机制;
动态RP的优点:能实现备份,能根据网络拓扑的变化,进行收敛;
缺点:会额外地消耗设备的开销,存在报文的周期性发送,收敛慢
动态RP的C-BSR的收敛时间是多少?RP的呢?
c-bsr的收敛时间为180s,c-rp的收敛时间为150s。
如果网络中的RP设备发生故障,其他的路由器需要多久才能得知RP发生故障?
180s,因为bsr需要150s确定RP发生故障,但是要通知其他路由器,需要第 三份BSR消息才能通知全网的路由器。
在PIM-SM中,存在断言场景吗?
在一般情况下,PIM-SM不存在断言场景,因为RPF树的构建,发送的join报 文是只能发送给一个上游邻居的,所以无法触发断言。
注册报文是不间断发送的吗?为什么?
答:因为当组播源活跃时,注册报文已经会携带组播流量发送给RP,RP一旦收到之后就立刻沿着RPT树泛洪,所以需要保证组播流量的泛洪,需要不间断地发送注册报文。
RP什么时候会发送注册停止报文?
<1>收到SPT树过来的组播流之后;
<2>收到的注册报文中包含的(S,G)与RP上建立的RPT树不相符,说明RP不需要接收此组播流,触发注册停止报文;
RP如何判断收到的组播流量是从SPT树流过来的?
通过组播流量中的flag位去进行判断。 扩展问题8:注册消息是单播发送的吗?
是的,因为注册报文前面封装PIM报文,在PIM报文前面在封装单播IP报文,路由器收到后将注册报文当成普通的单播报文进行转发。
SPT切换的作用是什么?
(1)防止次优路径---使得源到接收者的组播流量走最优的路径;
(2)RP负荷过重,减轻RP的负担
何时发生Switchover?
在最后一跳路由器上收到第一份组播报文时,会检查组播报文是否超过接口设置的阈值,如果超过阈值,就会发生SPT切换(默认开启)
pim-sm中,生成RPT树后,成员如何离组? 成员侧DR确定底下没有加入相应组的成员时,删除对应的(*,G)表项,并向上游发送prune报文,上游邻居收到prune报文后,直接删除(*,G)表项,然 后继续向上游发送prune报文;
(*,G)join报文和(S,G)join报文的区别是什么?
(*,G)join报文中的ip address为RP (S,G)join报文中ip address为组播源
(*,G)prune报文和(S,G)prune报文的区别?
(*,G)join报文中ip address为RP (S,G)join报文中ip address为组播源