协议概述:
PIM (Protocol Independent Multicast)称为协议无关组播路由协议。这里的协议无关指的是与单播路由协议无关,PIM协议本身并不像MOSPF和DVMRP协议一样维护组播拓扑数据库,所以它不能自己画出组播拓扑,需要依赖单播路由表中的路由信息,按RPF机制来生成组播转发表,并转发组播报文。
PIM不维护庞大的拓扑数据库,所以生成组播路由不需要复杂的计算过程,这降低了PIM协议的复杂性及系统开销。PIM适用于各种复杂的拓扑及LAN/WAN环境,能依靠单播路由表的变化而及时调整组播拓扑,这使得PIM协议成为目前使用最广泛的组播路由协议。
PIM协议在ASM环境中,根据接收者的分布数量和网络环境,分为DM(PIM-Dense Mode)和SM(PIM-Sparse Mode)两种模式。PIM DM是PIM协议中使用密集模式生成播转发表的组播路由协议,它使用“推(Push)”的方式转发组播报文及生成组播表,多应用于组播组成员数量相对较多、分布相对密集的局域网络环境中。
PIM在SSM环境中,借助了部分PIM SM的技术来组播路径的建立,但整体来说相对于PIM SM会简单很多。
PIM SM多用在接收者分布较为分散、地域较大的环境,可适用于任何环境。它使用“拉(PULL)”模型建组播表,组播流仅流向有接收者的位置。
PIM路由器:

在接口上使能了PIM协议的路由器即为PIM路由器。在建立组播分发树的过程中,PIM路由器又分为以下几种:
- 叶子路由器:与用户主机相连的PIM路由器,但连接的用户主机不一定为组成员。
- 第一跳路由器:组播转发路径上,与组播源相连且负责转发该组播源发出的组播数据的PIM路由器。
- 最后一跳路由器:组播转发路径上,与组播组成员相连且负责向该组成员转发组播数据的PIM路由器。
- 中间路由器:组播转发路径上,第一跳路由器与最后一跳路由器之间的PIM路由器。
PIM邻居关系建立:
PIM作为一个组播路由协议,需要在路由器之间要建立邻居关系的,建立的方式是双方路由器在接口启用了PIM协议后,会向外周期发送PIM Hello报文,报文的目的IP地址是224.0.0.13,源地址为发送接口的IP地址,TTL 数值为1。
如果两侧的邻居Holdtime时间或Hello间隔时间配置不一致, 不会影响PIM邻居关系的建立。Hello 报文的保持时间应该大于Hello报文的发送间隔。
Holdtime时间如果被手工设置为65535s,则代表邻居关系永不超时,多用在拨号链路上,可防止链路的反复中断而影响邻居关系。而如果从邻居收到Hello报文,其中Holdtime 值为0,则当前设备会立即从PIM邻居表中删除该邻居,这可用于加速网络收敛。华为设备不能使用命令设置Holdtime时间为0,但若在接口使用Undopim命令后,会触发当前设备发送Holdtime值为0的Hello报文。
在PIM DM中,DR在最后一跳以太网段上,可充当IGMPv1环境下的IGMP查询者,除此以外,DR在PIM DM中没有实际用途。DR在SM中,则负责向RP建共享树和向 RP 建注册通道。
Hello-option lan-delay命令用来配置共享网段上传输Prune报文的延迟时间。默认的延迟时间是500ms。
当同一网段中的所有路由器上的Override-Interval值不同时,彼此将通过Hello 报文进行协商并从中选取最大值。
默认情况下,LAN-Delay+Overrde-Interval=3s,这3s时间又叫作PPT (Prune Pending Timer)剪枝等待时间。路由器下游接口接收到剪枝报文后,并不立即执行剪枝操作,而是等待一段PPT时间,超时后则执行剪枝操作。具体原理和内容在后续PIM笔记分析。
PIM路由表:
(* ,G )路由表项由于只知道组播组G的存在,主要用于在PIM路由器上建立RPT。对于PIM-SM网络适用。如果不存在(S,G)路由表项,只存在(* ,G)路由表项,则先依照(* ,G)路由表项创建(S,G)路由表项,再由(S,G)路由表项指导报文转发。
具体内容在PIM SM和PIM DM笔记中分析。
组播报文转发流量:
RPF检查具体过程:
除单播路由外,MBGP路由、组播静态路由也是RPF检查的依据。当路由器收到一份组播报文后,如果这三种路由表都存在,具体检查过程如下。
首先,通过报文源地址,分别从单播路由表、MBGP路由表和组播静态路由表中各选出一条最优路由。单播路由、MBGP路由的出接口为RPF接口,下一跳为RPF邻居。需要注意的是,组播静态路由实际上属于手工配置的组播路由,已经明确指定了RPF接口与RPF邻居。
然后,根据以下原则从这三条最优路由中选择一条作为 RPF路由。如果配置了按照最长匹配选择路由,则从这三条路由中选出最长匹配的那条路由;如果这三条路由的掩码一样,则选择优先级最高的那条路由;如果它们的优先级也相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。
如果没有配置按照最长匹配选择路由,则从这三条路由中选出优先级最高的那条路由;如果它们的优先级相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。
华为设备,默认基于路由协议优先级选择RPF路由,如果改为基于路由前缀长度选择RPF路由,使用如下命令:
<HUAWEI> system-view [HUAWEI] multicast routing enable HUAWEI multicast longest-match
组播路由协议通过已有的单播路由、MBGP路由或组播静态路由信息来确定上、下游邻居设备,创建组播路由表项。运用RPF检查机制,来确保组播数据流能够沿组播分发树(路径)正确地传输,同时可以避免转发路径上环路的产生。
在实际组播数据转发过程中,如果对每一份接收到的组播数据报文都通过单播路由表进行RPF检查,会给路由器带来很大负担。因此,路由器在收到一-份来自源S发往组G的组播数据报文之后,首先会在组播转发表中查找有无相应的(S,G) 组播转发表项:
- 如果不存在(S,G) 转发表项,则对该报文执行RPF检查,将检查到的RPF接口作为入接口,创建组播路由表项,下发到组播转发表中。其中,对RPF检查结果的处理方式为:如果检查通过,表明接收接口为RPF接口,向转发表项的所有出接口转发;如果检查失败,表明报文来源路径错误,丢弃该报文。
- 如果存在(S,G)转发表项,并且接收该报文的接口与转发表项的入接口一致,则向所有的出接口转发该报文。
- 如果存在(S,G)转发表项,但是接收该报文的接口与转发表项的入接口不一致, 则对此报文进行RPF检查。对RPF检查结果的处理方式为:
•若 RPF检查选取出的RPF接口与转发表项的入接口一致,则说明(S,G)表项正确,报文来源路径错误,将其丢弃。
•若 RPF检查选取出的RPF接口与转发表项的入接口不符,则说明(S,G)表项已过时,于是把表项中的入接口更新为RPF接口。然后再根据RPF检查规则进行判断,如果接收该报:文的接口正是其RPF接口,则向转发表项的所有出接口转发该报文,否则将其丢弃。
PIM报文类型:

组播分发树:
源树SPT:

源路径树以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。源路径树使用的是从组播源到接收者的最短路径,也称为最短路径树(shortest path tree,SPT)。对于某个组,网络要为任何一个向该组发送报文的组播源建立一棵树。
本例中有两个组播源(源S1和源S2),接收者PC1和PC2。所以本例中有两棵源路径树。
共享树RPT:

共享树以某个路由器作为树根,该路由器称为汇集点(Rendezvous Point,RP),将RP到所有接收者的最短路径结合起来构成转发树。使用共享树时,对应某个组,网络中只有一棵树。所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发到达所有的接收者。
本例中两个源S1和S2共享一颗树。
PIM DM:
PIM-DM使用“推(Push)模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。在实现过程中,它会假设网络中的组成员分布非常稠密,每个网段都可能存在组成员。当有活跃的组播源出现时,PIM-DM会将组播源发来的组播报文扩散到整个网络的PIM路由器上,再裁剪掉不存在组成员的分支。
PIM-DM通过周期性的进行“扩散(Flooding)—剪枝(Prune)”,来构建并维护一棵连接组播源和组成员的单向无环SPT(Source Specific Shortest Path Tree)。如果在下一次“扩散-剪枝”进行前,被裁剪掉的分支由于其叶子路由器上有新的组成员加入而希望提前恢复转发状态,也可通过嫁接(Graft)机制主动恢复其对组播报文的转发。
PIM-DM的关键工作机制包括邻居发现、扩散、剪枝、嫁接、断言和状态刷新。其中,扩散、剪枝、嫁接是构建SPT的主要方法。
PIM SM:
PIM-SM它使用“拉(Pull)模式”转发组播报文,一般应用于组播组成员规模相对较大、相对稀疏的网络。基于这一种稀疏的网络模型,它的实现方法是:
在网络中维护一台重要的PIM路由器:汇聚点RP(Rendezvous Point),可以为随时出现的组成员或组播源服务。网络中所有PIM路由器都知道RP的位置。
当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。
当网络中出现活跃的组播源(信源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。
PIM SSM:

SSM模型是借助PIM-SM的部分技术和IGMPv3/MLDv2来实现的,无需维护RP、无需构建RPT、无需注册组播源,可以直接在源与组成员之间建立SPT。
SSM的特点是网络用户能够预先知道组播源的具体位置。因此用户在加入组播组时,可以明确指定从哪些源接收信息。组成员端DR了解到用户主机的需求后,直接向源端DR发送Join报文。Join报文逐跳向上传输,在源与组成员之间建立SPT。在SSM模型中,PIM-SM的关键机制包括邻居发现、DR竞选、构建SPT。
整理资料来自:《HCIE路由交换学习指南》、HCIE培训资料
今天的文章 PIM基础原理分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/4507.html