IP路由基础(三)PIM协议(2)PIM-SM原理与配置

前言

PIM-DM适合组播成员分布比较密集的场景,比如该园区中100个人中有90个人都需要接收组播消息,这时候使用PIM-DM协议非常的适合。

但是在组播成员分布较为稀疏的网络中或者规模较大的网络中(比如Internet中),PIM-DM中组播流量的周期性扩散会给网络带来较大的负担。

这个时候另外一种协议:PIM-SM就比较适合。

PIM-SM

相对于PIM-DM的“推(Push)模式”,PIM-SM使用“拉(Pull)模式”转发组播报。 PIM-SM假设网络中的组成员分布非常稀疏,几乎所有网段均不存在组成员,直到某网段出现组成员时,才构建组播路由,向该网段转发组播数据。一般应用于组播组成员规模相对较大、相对稀疏的网络。

基于这一种稀疏的网络模型,它的实现方法是:

  • 在网络中维护一台重要的PIM路由器:汇聚点RP(Rendezvous Point),可以为随时出现的组成员或组播源服务。网络中所有PIM路由器都知道RP的位置。

  • 当网络中出现组成员(用户主机通过IGMP加入某组播组G)时,最后一跳路由器向RP发送Join报文,逐跳创建(*,G)表项,生成一棵以RP为根的RPT。

  • 当网络中出现活跃的组播源(信源向某组播组G发送第一个组播数据)时,第一跳路由器将组播数据封装在Register报文中单播发往RP,在RP上创建(S,G)表项,注册源信息。

PIM-SM的关键任务:

1. 建立RPT:汇聚点数/共享数
2. SPT:最短路径树

汇聚点RP(Rendezous Point)

RP在PIM-SM中非常的重要,在运行PIM-SM协议的路由器都需要知道RP的位置。

RP的作用:

RP是PIM-SM域中的核心路由器,担当RPT树根节点。

共享树里所有组播流量都要经过RP转发给接收者。

用户通过配置命令限制RP所提供服务的组播组范围。

RP可以静态指定也可动态选举:
静态指定是指由管理员在每台PIM-SM路由器上进行配置,使得每台路由器获知RP的位置。
动态选举是指通过专用协议在若干台C-RP(Candidate-RP)中选举产生。管理员需要开启选举协议并配置若干台PIM-SM路由器成为C-RP。本文主要讲解静态指定如何配置。

RP配置方式建议:

中小型网络:建议选择静态RP方式,对设备要求低,也比较稳定。
如果网络中只有一个组播源,建议选择直连组播源的设备作为静态RP,这样可以省略源端DR向RP注册的过程。
采用静态RP方式要确保域内所有路由器(包括RP本身)的RP信息以及服务的组播组范围全网一致。

大型网络:可以采用动态RP方式,可靠性高,可维护性强。

如果网络中存在多个组播源,且分布密集,建议选择与组播源比较近的核心设备作为C-RP;如果网络中存在多个用户,且分布密集,建议选择与用户比较近的核心设备作为C-RP。

RPT建立过程

RPT(Rendezvous Point Tree,汇聚点树也称共享树),是以RP作为根的一棵树。
在这里插入图片描述

如上图:假设Client A想要假如某组播源,Client A将会给路由器发送ICMP成员报告。然后该路由器收到报告后,明确了Client A想要假如组播,并向RP发送( * ,G)join消息,并逐跳向RP转发,沿途的各个路由器都会生成相应的( *,G)表。

RPT实现了组播数据按需转发的目的,减少了数据泛洪对网络带宽的占用。

注意1:为什么是" * " :任意源,Client A并不知道组播源在哪里,其他路由器也不知道组播源在哪
注意2:RPT并不是最优路径

思考问题:如果Client A连接两台路由器,这两台都会发送(* ,G)的消息吗?

不会,一台发送就够了,参考IGMP查询器。

IP组播基础(二)IGMP协议各版本工作原理与基础配置、IGMP Snooping工作原理

DR选举

在这里插入图片描述
运行PIM-SM的网络,都会进行DR(Designated Router)的选举。其中有两种DR分别称为

  • 组播接收者侧DR:与组播组成员相连的DR,负责向RP发送(*,G)的Join加入消息。

  • 组播源侧DR:与组播源相连的DR,负责向RP发送单播的Register消息(注册消息)。

lPIM-SM中DR的选举原则与PIM-DM相同:
可参考:IP路由基础(三)PIM协议(1)PIM-DM基本原理与配置

1. 优先级(大的优先)
2. IP地址(大的优先)

SPT建立过程

在这里插入图片描述
如图所示,在PIM-SM网络中,任何一个新出现的组播源都必须首先在RP处“注册”,继而才能将组播报文传输到组成员。具体过程如下:

  1. 组播源向组播组发送第一个组播报文。
  2. 源端DR将该组播报文封装成Register报文并以单播方式发送给相应的RP。
  3. RP收到注册消息后,一方面从Register消息中提取出组播报文,并将该组播报文沿RPT分支转发给接收者。
  4. 另一方面,RP向源端DR发送(S,G)Join消息(RP已经知道组播源在哪里),沿途路由器上都会生成相应(S,G)表项。从而建立了一颗由组播源至RP的SPT树。
  5. SPT树建立后,组播源发出的组播报文沿该SPT转发至RP。(组播消息又两条路可以选择:一条SPT,一条单播形式,那当然SPT更优一些)
  6. RP沿SPT收到该组播报文后,向源端DR单播发送Register-stop消息(注册停止消息:不要再给我发送单播消息了,我可以用组播接收消息)。

(* ,G)与(S,G)条目关系

模式 类型 使用场景
PIM-DM (S,G) 第一跳路由器到最后一跳路由器的SPT。
PIM-SM (*,G) RP到最后一跳路由器的RPT。
PIM-SM (S,G) 源端DR到RP的SPT。
PIM-SM (S,G) Switchover(切换)之后,从第一跳路由器到最后一跳路由器的SPT。(下文讲到)

PIM-SM的转发树问题

在这里插入图片描述
SPT和PRT构成的组播报文的转发路径不一定是最优路径,而且由于这种方式以RP作为中间点,RP的工作负担非常的大,为此我们启动了RPT像STP进行切换的机制。

Switchover机制

在这里插入图片描述
PIM-SM通过指定一个利用带宽的SPT阈值可以实现RPT到SPT的切换。用户端DR周期性检测组播报文的转发速率,一旦发现从RP发往组播组G的报文速率超过阈值,则触发SPT切换:

  1. 用户端DR逐跳向源端DR发送(S,G)Join报文并创建(S,G)表项,建立源端DR到用户端DR的SPT。
  2. SPT建立后,用户端DR会沿着RPT逐跳向RP发送剪枝报文,收到剪枝报文的路由器将(*,G)复制成相应的(S,G),并将相应的下游接口置为剪枝状态。剪枝结束后,RP不再沿RPT转发组播报文到组成员端。
  3. 如果SPT不经过RP,RP会继续向源端DR逐跳发送剪枝报文,删除(S,G)表项中相应的下游接口。剪枝结束后,源端DR不再沿“源端DR-RP”的SPT转发组播报文到RP。

在VRP中,缺省情况下连接接收者的路由器在探测到组播源之后(即接收到第一个数据报文),便立即加入最短路径树,即从RPT向SPT切换。
通过RPT树到SPT树的切换,PIM-SM能够以比PIM-DM更精确的方式建立SPT转发树。

PIM-SM配置实现

在想要运行PIM-SM协议的各个路由器上开启IP组播功能:multicast routing-enable,然后进入接口使能PIM-SM协议:pim sm ,最后在每个非RP路由器上手动指定RP,例如:static-rp 4.4.4.4

我们可以通过display pim routing-table来查看PIM-SM详细信息。

发布了37 篇原创文章 · 获赞 31 · 访问量 4945

猜你喜欢

转载自blog.csdn.net/qq_46254436/article/details/105126429
PIM