「Multicast」- 形成组播分发树(PIM Sparse Mode)

  CREATED BY JENKINSBOT

PIM-SM(ASM)首次形成 Distribution Tree 主要依赖:
1)RPT 构建(RPT Setup):组播叶子路由器主动建立到 RP 的组播分发树(RPT)
2)SPT 构建(SPT Setup):通过 Multicast Source Registration(组播源注册机制)形成组播源到RP的组播分发树(SPT)
3)DR 选举(DR Election):DR负责源端或组成员端组播报文的收发,避免重复组播报文,同时成员端DR还负责发送Join加组消息。

RPT Setup

RPT(RP Tree)是一棵以 RP 为根,以存在组成员关系的 PIM Router 为叶子的组播分发树。

在网络中,当出现 Multicast Receiver(形成 IGMP 表项)时:
1)Receiver-DR 向 RP 发送 Join 报文(广播);
—- Join 报文包含 Upstream-Neighbor 字段,暗示由 RPF Neighbor 来处理该报文;
—- Join 报文周期(60s)发送 ⇒ Reveiver-DR 作为 IGMP Querier 周期发送 Query 报文,而 Multicast Revceiver 会回复 Report 报文,进而导致 Reveiver-DR 会周期发送 Join 报文;
2)在 Join 报文去往 RP 的路径上,所有 PIM Router 将逐跳创建 (*, G) 表项,生成一棵以 RP 为根的 RPT;
—- 鉴于 Join 报文的周期发送,该 (*, G) 表项的超时时间会被刷新,即:只要存在 Multicast Receiver,则该表项不会消失;

在使用 RPF 检查时,应该针对 RP 地址进行测试;

SPT Setup

问题描述:在 Multicast Source 与 Source-DR 间,没有 IGMP 协议,所以无法发送 Join 报文,所以无法通过 IGMP 生成 PIM (*, G) 表项,进而无法发送 Join 消息形成组播分发树。

解决方案:在 PIM-SM(ASM)中,想要形成从 Source-DR 到 RP 的 SPT,需要 Multicast Source Registration 机制(组播源注册)。

注册机制

形成 SPT 需要 Register 与 Join 报文,具体过程如下:
1)在 Multicast Source 中,发送组播数据到 Source-DR 设备;
2)在 Source-DR 中,根据 RP 信息,将 Register 报文(单播)发送给 RP 设备(组播数据被封装入 Register 中,目的地址为 RP 地址);
3)在 RP 中,基于组播报文的 SRC-IP 参数,发送 Join 报文,反向建立 SPT;
—- Join 报文包含 Upstream-Neighbor 字段,暗示由上游的 Neighbor 来处理;

当组播源信息注册到 RP 后,就形成 Multicast Source 到 RP 的 SPT;

注意事项:
1)Register / Register-Stop 是周期(120s)发送的,这是为了维护 RP 的 (S, G) 表项,否则 RP 将无法通过 Join 报文来形成 SPT;
2)如果 RP 没有成员,那么收到 Register 报文后不会发送 Join 报文;

组播数据转发

但 Source-DR 此时仍然会将组播数据包封装入 Register 报文,该方式会造成一些问题:
1)Source-DR 最初发送的是单播 Register 报文,但是该方式会加重 Source-DR 与 RP 的工作量(需要处理);
—- RP 需要解开 Register 报文,将其中的组播数据沿着 RPT 转发;
2)Srouce-DR 形成到 RP 的 SPT 后,会同时发送单播 Register 报文和组播报文,造成重复组播包的问题;

当 SPT 建立后,RP 使用 Register-Stop 报文通知 Source-DR,后续报文能够直接以组播报文形式发送:

参考文献

PIM-SM (ASM Model) – AR500, AR510, AR531, AR550, AR1500, and AR2500 V200R009 CLI-based Configuration Guide – IP Multicast – Huawei