问题描述
在PIM-SM网络中,一个组播组只对应一个RP。因此组播数据最初都会发往RP,由RP进行转发,这会导致两个问题:
过大的组播流量会对RP形成巨大的负担。
组播转发路径有可能是次优路径。
如果所示,从 Source 到 Reveiver 中,经过 RP(Router B)是次优路径。
解决方案
当数据发送至 RP 后,RP 会沿 RPT 将数据发送给成员端 DR。
为了解决 RPT 潜在的次优路径问题,Receiver-DR 会基于组播数据包中的 SRC-IP,反向建立从成员端 DR 到 Multcast Source 的 SPT;
具体过程如下:
事先在 Receiver-DR 中配置流量阈值,超过该阈值,将进行 SPT Switchover 操作:
1)基于 RPF 规则,决定(简单说,就是单播路由)的最短路径,设备将 Join 消息从 RPF 选举得出的上行接口发出;
2)而后,流量将从新的接口流入;
3)原有次优接口以后会送来流量,但是经过 RPF 检查(根据源地址进行 RPF 检查,而非 RP 地址),将进行修剪(用什么报文?);
在 SPT 切换的过程中,多路访问网络可能会存在重复报文,需要利用 Assert 机制快速选定下行接口。
组播分发树的维护
当组播分发树(SPT 或 RPT)稳定后,Receiver-DR 会周期性发送 Join/Prune 报文,用于维护组播分发树。
如果没有组播流量:
1)SPT 在一段时间后(默认 210s)会消失;
2)Receiver-DR 恢复到 RP 的 RPT(即原始转发路径);