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




9.PIM模型比较