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