1.源端网络 2.组播转发网络(组播路由PIM) 3.成员端网络(IGMP协议)
PIM协议 (协议无关组播 路由协议)
组播路由计算时,需要依赖单播路由实现防环、防次优等功能,PIM协议对于单播路由协议没 有要求,例如MOSPF协议必须要求单播协议使用OSPF协议
实现:基于单播路由对收到组播报文进行RPF检查,检查通过后创建组播路由表项,转发组播 流量
报文D.IP 组播地址:224.0.0.13 协议号:103
工作模式:
-----------------------------------------------------------------------------------------------
PIM-DM(密集模式): 采用“推”方式将组播流量推送到组播网络的所有设备,再由设备
决定是否继续接收组播流量
PIM-DM模式主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是“扩散-剪枝”,即将组播流量全网扩散,然后剪枝没有组成员的路径,最终形成组播分发树
实现步骤过程:
一、邻居发现(涉及报文:Hello报文)
使能PIM-DM的路由器,需要通过Hello报文,发现、建立、维护邻居关系
邻居发现:使能PIM-DM后,从接口组播发送Hello报文,接口使能PIM,监听
224.0.0.13,一定会接收到对端发送Hello报文
邻居建立:Hello报文会携带相关参数,互相收到Hello报文进行参数检查,协商成 功则代表邻居建立完成
邻居维护:PIM路由器会周期性30s/次发送Hello报文用于维护邻居关系
邻居超时时间:105s
二、扩散机制
当组播源发送组播数据被第一跳路由器收到后,第一跳路由器进行RPF检查
RPF检查: RPF路由出接口 是否与 组播数据的入接口一致
PRF检查成功:创建组播路由表(S , G),上游接口为RPF接口,下游接口为所有连接
PIM邻居的接口
路由器按照组播路由表从所有下游接口转发组播流量
其它路由器收到后,进行RPF检查,再创建组播路由表(S,G),按照表项转发
*PIM-DM路由器进行周期性扩散,周期时间180s
*创建的组播路由表存在老化时间,默认210s
三、剪枝机制(涉及报文:Prune消息)
当路由器建立组播路由表中不存在下游接口(最后一跳路由器不存在IGMP路由表)
并且路由器向上游PIM邻居发送剪枝消息(Prune消息)
收到剪枝消息的路由器,将收到Prune消息的接口从下游接口列表中删除,并维护剪枝
计时器(210s),当计时器超时,被剪枝的接口重新恢复成下游接口转发组播数据
*当路由器所有下游接口都被剪枝,改路由器同样会向上游邻居发送剪枝消息
四、状态刷新机制
剪枝计时器210s超时之后,被剪枝的接口重新加入下游接口列表中并转发组播数据,
导致下游接口连接设备又会接收组播数据(下游设备不需要组播数据),严重浪费
网络带宽资源
由第一跳路由器周期性60s/次向下游接口列表中所有接口发送状态刷新State Refresh消息
收到状态刷新消息的下游设备,刷新剪枝计时器,目的:原被剪枝接口一直处于剪枝状态
并且下游设备继续向下游接口转发状态刷新消息
五、嫁接机制(涉及报文:Graft、Graft-ACK)
原被剪枝的最后一跳路由器通过IGMP协议感知到存在组播组成员加入,最后一跳路由器
会向上游设备发送Graft消息
上游设备收到Graft消息,将收到Graft消息的接口维护的剪枝计时器删除,重新加入下游
接口列表中,并向该恢复的下游接口恢复Graft-ACK消息,且该接口可以进行组播数 据转发
六、断言机制(涉及报文:Assert消息)
在同一个网段内存在多台组播路由器向该网段转发组播流量,导致下游设备收到多份重复
的组播流量
当路由器从下游接口收到组播流量,触发断言竞选
竞选参数: 1.比较去往组播源的路由优先级
2.比较去往组播源的开销
3.比较下游接口IP地址,以大为优
胜利方:正常向下游转发组播流量
失败方:将下游接口从路由表中删除(*180s后自动恢复)
PIM-DM采用扩散/剪枝原理将组播流量扩散到整个组播网络,通过RPF检查机制在所有组播路由器创建组播路由表(S , G),建立组播分发树(SPT树)
SPT树,以组播源为根,组播组成员为叶子的组播分发树
-----------------------------------------------------------------------------------------------
PIM-SM(稀疏模式)
PIM-DM缺陷:1.周期性进行扩散/剪枝,对组播网络造成一定冲击
2.所有路由器都会对组播流量进行RPF检查创建并维护组播路由表
3.在组成员分部散且稀疏的场景下,扩散剪枝建立SPT树的效率低
解决:PIM-SM:采用“拉”的方式
PIM-SM(ASM)
核心: 1.建立SPT最短路径树,以组播源为根,以RP为叶子节点的组播分发树
2.建立RPT共享树,以RP为根,以组成员为叶子节点的组播分发树
*RP汇聚点:作用,1.RP向组播源发起建立SPT树
2.最后一跳路由器向RP发起建立RPT树
汇聚点RP为全网组播路由器可知且路由可达,使用Loopback接口作为RP IP地址
一、建立PIM邻居(与PIM DM一致)(涉及报文:Hello报文)
二、在网络确定汇聚点RP(涉及报文:自举报文、C-RP通告报文)
1.静态RP:手工静态指定,所有PIM路由器上指定
[huawei-pim]static-rp 172.16.1.4
2.动态RP:通过自举协议选举RP
BSR自举路由器、C-BSR候选自举路由器
RP汇聚点、C-RP 候选RP
1.网络中可以指定一台或多台C-BSR,每台C-BSR认为自身为BSR并向组播网络内泛洪自举报文
2.网络中所有组播路由器可以收到所有的C-BSR发送的自举报文
每台路由收到自举报文通过相同规则确定网络中BSR:
规则:1.比较优先级,以大为优 2.比较IP地址,以大为优
3.在网络选择合适的设备作为C-RP(可以配置多台)
4.所有C-RP单播向BSR发送C-RP通告报文,报文中携带C-RP自身的RP信息
5.BSR可以收集到组播网络内所有C-RP信息,汇总为C-RP Set信息集,封装在自举报文中,
通过自举报文将C-RP Set信息泛洪到整个组播网络
6.PIM路由器根据RP-Set,使用相同的规则进行计算和比较,从多个针对特定组的C-RP中竞选 出该组播组的RP
规则:1.C-RP服务组播组范围,越精确越优先(掩码越长)
2.C-RP优先级,以小为优
3.哈希函数大者为优
4.C-RP IP地址,以大为优
7.所有PIM路由器都可以为每个组播组确定一个唯一的RP,并记录组播组和RP的映射关系
三、DR选举(可选,涉及报文:Hello报文)
选举参数:1.优先级 2. IP地址,以大为优
组播源侧DR:负责向RP发送注册消息
组播成员侧DR:负责向组成员转发组播流量;在IGMPv1版本作为查询器
四、建立SPT树(组播源到RP)(涉及报文:注册报文、注册停止报文、加入消息)
1.活跃的组播源发送组播流量
2.组播流量被源侧DR接收后,源侧DR将组播流量封装在注册报文中,单播发送给RP
3.RP收到注册报文后,接封装获取组播流量(组播源信息、组播组信息)
并查找路由向上游设备发送Join加入消息反向建立SPT树 /(S , G)路由表
上游设备收到后,建立(S,G)路由表,并继续向上游传递Join消息,直到源侧DR
4.源侧DR收到Join消息,代表SPT建立成功,可以按照建立(S,G)表项转发组播流量
5.RP收到组播流量,立马向源侧DR发送注册停止消息
6.源侧DR收到注册停止消息则不再向RP发送注册消息
五、建立RPT树(RP到组成员)(涉及报文:加入报文)
1.组成员通过IGMP协议报告报文声明希望加入的组播组
2.成员侧DR收到后,建立IGMP路由表
触发向RP发送join加入消息建立(* ,G)路由表 / RPT
沿途所有路由器都要将Join消息转发至RP,所有路由器都会建立(* ,G)路由表
3.RP收到Join消息后,将收到Join消息的接口添加到(S , G)路由表的下游接口列表中
并从该接口转发组播流量
4.RP转发的组播流量沿着RPT树一直到成员侧DR
5.成员侧DR将组播流量转发给组成员
六、SPT切换机制
RPT树存在的问题:1.所有流量都需要经过RP中转,对于RP负担比较大
2.SPT+RPT转发路基对于组成员可能存在次优路径
SPT切换:1.初始组播流量沿着SPT+RPT转发路径进行转发
2.组成员侧DR收到第一份组播数据后,从组播数据获取组播源和组播组信息
3.成员侧向组播源发送Join加入消息,反向建立(S , G)路由表 / SPT树
七、维护组播路由表
组播路由表存在老化时间 210s,当长时间未接收组播流量,(S ,G)路由表会被删除
成员侧DR又需要重新向RP发送Join消息建立RPT
为了避免重新切换到RPT树,组成员侧DR会周期性60s/次向组播源发送Join消息维护
组播路由表/ (S , G)路由表
(S , G)----->SPT树
(* , G)----->RPT树
PIM-DM:(S , G) SPT树
PIM-SM(ASM):初始 (S , G) SPT树
(* , G) RPT树
切换 (S , G) SPT树
八、断言机制(与PIM-DM一致)
标签:组播,RP,PIM,报文,架构,路由表,路由器 From: https://blog.51cto.com/u_15735404/9010406