PIM原理与案例配置
1.PIM(Protocol Independent Multicast,协议无关组播)协议的主要作用就是构建组播分发树,主要作用是生成AS域内的组播分发树

2.PIM协议介绍
PIM称为协议无关组播。协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息。作为组播路由解决方案,它直接利用单播路由表的路由信息 ,对组播报文执行RPF检查,检查通过后创建组播路由表项,从而转发组播报文
PIM主要有两种模式:
PIM-DM(PIM-Dense Mode,PIM密集模式) 。
PIM-SM(PIM-Sparse Mode,PIM稀疏模式) ,PIM-SM模式根据组播服务模型又可以分为:
PIM-SM(ASM):为任意源组播建立组播分发树。
PIM-SM(SSM):为指定源组播建立组播分发树
PIM-DM模式主要用在组成员较少且相对密集的组播网络中,该模式建立组播分发树的基本思路是“扩散-剪枝”,即将组播流量全网扩散,然后剪枝没有组成员的路 径,最终形成组播分发树。
PIM-SM模式主要用在组成员较多且相对稀疏的组播网络中,该模式建立组播分发树的基本思路是先收集组成员信息,然后再形成组播分发树。使用PIM-SM模式不 需要全网泛洪组播,对现网的影响较小,因此现网多使用PIM-SM模式。
3.组播分发树的分类
通过PIM形成的组播分发树主要分为以下两种:
A.以组播源为根,组播组成员为叶子的组播分发树称为SPT(Shortest Path Tree),在PIM-DM与PIM-SM中均有使用。
B.以RP(Rendezvous Point)为根,组播组成员为叶子的组播分发树称为RPT(RP Tree),在PIM-SM中使用
4.PIM路由表项
PIM路由表项即通过PIM协议建立的组播协议路由表项
PIM网络中存在两种路由表项:
(S,G)路由表项主要用于在PIM网络中建立SPT。对于PIM-DM网络和PIM-SM网络适用。
(*,G)路由表项主要用于在PIM网络中建立RPT。对于PIM-SM网络适用
在不同的组播路由器上,组播路由表项会基于不同的表项汇总形成。
最后一跳路由器的组播路由表项主要基于PIM路由表项,IGMP组表项和IGMP路由表项汇总形成。
其余组播路由器的组播路由表项主要基于PIM路由表项形成
5.PIM-DM基本概念

PIM-DM主要用在组成员较少且相对密集的网络中,通过“扩散-剪枝”的方式形成组播转发树(SPT)。

PIM-DM在形成SPT的过程中,除了扩散(Flooding),剪枝(Prune)机制外,还会涉及邻居发现(Neighbor Discovery),嫁接(Graft),断言(Assert)和状态刷新(State Refresh)机制
PIM协议报文直接采用IP封装,目的地址224.0.0.13,IP协议号103
PIM-DM使用报文主要是以下几类:
Hello 用于PIM邻居发现,协议参数协商,PIM邻居关系维护等
Join/Prune(加入/剪枝) 加入报文用于加入组播分发树,剪枝报文则用于修建组播分发树。加入及剪枝报文在PIM中使用相同的报文格式,只不过报文载荷中的字段内容有所不同
Graft(嫁接) 用于将设备所在的分支嫁接到组播分发树
Graft-ACK(嫁接确认) 用于对邻居发送的Graft报文进行确认
Assert(断言) 用于断言机制
A.扩散机制
组播源发送的组播报文会在全网内扩散。当PIM路由器接收到组播报文,先进行RPF检查,通过后会在该路由器上创建(S,G)表项,之后会向所有PIM邻居发送。
PIM-DM形成的(S,G)表项有老化时间(默认210s),如果老化时间超时前没有收到新的组播报文,则删除(S,G)表项
B.断言机制
当一个网段内有多个相连的PIM路由器向该网段转发组播报文时,需要通过断言机制(Assert)来保证只有一个PIM路由器向该网段转发组播报文
C.剪枝机制
对于没有组成员连接的组播路由器,组播网络无需再将组播流量继续放往该设备。通过剪枝机制,组播网络可以将此类路径剪枝
D.维护组播分发树
在PIM邻居关系稳定,组成员没有变化的情况下,维护组播分发树一般有两种方式:
持续发送组播报文,保证组播路由表项能一直存在。
发送状态刷新报文,保证组播路由表项的下行接口状态不发生变化
E.状态刷新机制
在PIM-DM网络中,为了避免被裁剪的接口因为“剪枝定时器”超时而恢复转发,离组播源最近的第一跳路由器会周期性地触发State Refresh报文在全网内扩散
收到State Refresh报文的PIM路由器会刷新剪枝定时器的状态。被裁剪接口的下游叶子路由器如果一直没有组成员加入,该接口将一直处于抑制转发状态
F.嫁接机制
PIM-DM通过嫁接机制,使有新组成员加入的网段快速得到组播报文
叶子路由器通过IGMP了解到与其相连的用户网段上,组播组G有新的组成员加入。随后叶子路由器会基于本地的组播路由表向上游发送Graft报文,请求上游路由器恢复相应出接口转发,将其添加在(S,G)表项下游接口列表中
6.PIM-DM基础实验

[R1]multicast routing-enable
[R1]interface g0/0/2
[R1-GigabitEthernet0/0/2]pim dm
[R1-GigabitEthernet0/0/2]interface g0/0/0
[R1-GigabitEthernet0/0/0]pim dm
[R1-GigabitEthernet0/0/0]interface g0/0/1
[R1-GigabitEthernet0/0/1]pim dm
[R2]multicast routing-enable
[R2]interface g0/0/0
[R2-GigabitEthernet0/0/0]pim dm
[R2-GigabitEthernet0/0/0]interface g0/0/1
[R2-GigabitEthernet0/0/1]igmp enable
[R3]multicast routing-enable
[R3]interface g0/0/0
[R3-GigabitEthernet0/0/0]pim dm
[R3-GigabitEthernet0/0/0]interface g0/0/1
[R3-GigabitEthernet0/0/1]igmp enable
7.PIM-SM(ASM)介绍
7.1 PIM-DM的局限
中大型组播网络中由于网络较大,如果依然使用PIM-DM会遇到组多问题:
使用“扩散-剪枝”方式需要全网扩散组播报文,对于网络有一定冲击。
所有组播路由器均需要维护组播路由表,即使该组播路由器无需转发组播数据。
对于组成员较为稀疏的组播网络,使用“扩散-剪枝”形成组播分发树的效率不高

7.2 PIM-SM(ASM)模型形成组播分发树的方法是:
将组成员的位置事先告知某台组播路由器(Rendezvous Point,RP),形成RPT(RP Tree)。
组播源在发送组播数据时,组播网络先将组播数据发送至RP,然后由RP再将组播数据转发给组成员。
对于部分次优的组播转发路径,PIM-SM(ASM)能自动优化为最优路径(SPT)
PIM协议报文直接采用IP封装,目的地址224.0.0.13,IP协议号103
PIM-SM使用报文主要是以下几类:
Hello:用于PIM邻居发现,协议参数协商,PIM邻居关系维护等
Register(注册):用于事先源的注册过程。这是一种单播报文,在源的注册过程中,组播数据被第一跳路由器封装在单播注册报文中发往RP
Register-Stop(注册停止):RP使用该报文通知第一跳路由器停止通过注册报文发送组播流量
Join/Prune(加入/剪枝):加入报文用于加入组播分发树,剪枝则用于修剪组播分发树
Assert(断言):用于断言机制
Bootstrap(自举):用于BSR选举。另外BSR也使用该报文向网络中扩散C-RP(Candidate-RP,候选RP)的汇总信息
Candidate-RP-Advertisement(候选RP通告):C-RP使用该报文向BSR发送通告,报文中包含该C-RP的IP地址及优先级等信息
7.3 RP介绍:
汇聚点RP(Rendezvous Point)为网络中一台重要的PIM路由器,用于处理源端DR注册信息及组成员加入请求,网络中的所有PIM路由器都必须知道RP的地址,类似于一个供求信息的汇聚中心。
目前可以通过以下方式配置RP:
静态RP:在网络中的所有PIM路由器上配置相同的RP地址,静态指定RP的位置。
动态RP:通过选举机制在多个C-RP(Candidate-RP,候选RP)之间选举出RP
动态选举RP会涉及两类角色C-BSR(Candidate-Bootstrap Router)与C-RP(Candidate-RP):
C-BSR通过竞选能选举出一个唯一的BSR。
BSR的作用是收集C-RP的信息并形成RP-Set信息,BSR通过PIM报文将RP-Set信息扩散给所有PIM路由器。
PIM路由器收到RP-Set消息后,根据RP选举规则选举出合适的RP
7.4 RP选举:
RP是PIM-SM域中的核心设备。每个组播组在任意时刻,只能由唯一的一个RP为其转发数据,而不能由多个RP转发数据。RP可以通过手工方式静态配置,也可以通过BSR机制动态选举,缓解RP的负担并优化RPT的拓扑结构。
动态选举机制涉及到的角色:
C-RP(Candidate-RP,候选RP):设备通过自举机制从C-RP中动态选出RP,使不同的RP服务于不同的组播组。
BSR(Bootstrap Router,自举路由器):PIM-SM域的管理核心,负责在PIM-SM域中收集并发布RP信息。BSR是通过C-BSR选举出来的。一个PIM-SM域内只能有一个BSR,但可以配置多个C-BSR。
C-BSR(Candidate-BSR,候选BSR):任意一台设备都可以被配置为C-BSR,从中选举出BSR。一旦BSR发生故障,其余C-BSR能够通过自动选举产生新的BSR,从而确保业务免受中断。
7.5 DR选举:
无论是与组播源相连的网络,还是与接收者相连的网络,都需要选举DR(Designated Router,指定路由器)。接收者侧的DR负责向RP发送加入报文(Join Message);组播源侧的DR负责向RP发送注册报文(Register Message)。
8.PIM-SM(SSM)工作原理
8.1 SSM概念
SSM模型针对特定源和组的绑定数据流提供服务,接收者主机在加入组播组时,可以指定只接收哪些源的数据或指定拒绝接收来自哪些源的数据。加入组播组以后,主机只 会收到指定源发送到该组的数据
8.2 PIM-SM(SSM)基本概述:
由于SSM提前定义了组播的源地址,所以PIM-SM(SSM)可以在成员端DR上基于组播源地址直接反向建立SPT
PIM-SM(SSM)无需维护RP、无需构建RPT、无需注册组播源,可以直接在组播源与组成员之间建立SPT。
在PIM-SM(SSM)模型中,关键机制包括邻居发现、DR竞选、构建SPT
%E5%9F%BA%E6%9C%AC%E6%A6%82%E8%BF%B0.png)
9.PIM模型比较
