基于组播源克隆的PIM FRR
基于组播源克隆的PIM FRR通过克隆加入消息,并手工指定的RPF(Reverse Path Forwarding)向量路径,组播源的组播流量克隆后通过不同的RPF向量路径发送,从而实现为组播服务提供链路或节点故障保护,在链路故障后可以快速切换,确保流量中断时间小于50ms,从而减小组播流量的丢失。
产生原因
PIM FRR基于单播路由FRR或组播静态路由FRR建立备份路径,实现对链路或节点的保障。但对于较为复杂的场景,现有的PIM FRR无法有效地提供端到端的节点或链路保护机制。
基于组播源克隆的PIM FRR(Fast ReRoute)技术可以解决此问题。其使用规划的RPF向量路径,将克隆的到组播源的加入消息发送至组播源,而后将克隆的组播流量发送至组播用户。组播接收设备选收主链路的流量,丢弃备链路的流量,当主链路发生故障时,立刻选收备链路的流量,从而减少组播流量的丢失。
目前仅支持IPv4 PIM-SM,IPv4 PIM-SSM和Rosen MVPN场景。
实现过程
基于组播源克隆的PIM FRR通过克隆到组播源的加入消息,并指定到组播源的两条路径,头端克隆组播源的组播流量,并按之前规划的路径分别向组播用户发送,从而实现组播流量的双流双发选收。
基于组播源克隆的PIM FRR的实现过程包括下面三个步骤:
到组播源的加入克隆
用户侧设备向组播源发送(S, G)加入时,会克隆为(S1, G)和(S2, G),同时发向组播源。
指定RPF向量路径
在用户侧设备中指定(S1, G)和(S2, G)到组播源的RPF矢量路径,到组播源的加入消息会按照指定的路径分别发送。RPF向量路径可分为严格显式路径和松散显式路径,严格显式路径中指定节点的下一跳时,会使用下一节点(需互为PIM邻居)上直连当前节点的接口IP地址作为本节点的下一跳地址;松散显式路径中指定节点下一跳时,可以使用下一节点的任意接口IP地址(路由可达即可)作为本节点的下一跳地址。
组播源的组播流量克隆
组播源侧将组播源根据(S, G)发送的组播流量克隆为(S1, G)和(S2, G)的组播流量,然后将克隆后的两份组播流量按照指定的RPF向量路径发送至组播用户。
使用场景
基于严格显式路径的源克隆方式PIM FRR
如下图所示,Device A下挂组播用户Receiver1,用户通过IGMPv3点播组播服务。组播源连接在Device F上。
- 在Device A上配置克隆到组播源的加入后,组播组G加入组播源S的加入消息会被克隆为(S1, G)和(S2, G),然后通过指定到S1和S2的显式路径,到S1的路径为主路径,到S2的路径为备路径。其中到S1的路径的各节点下一跳分别为InterfaceB、InterfaceC、InterfaceF1;到S2的路径的各节点下一跳分别为InterfaceD、InterfaceE、InterfaceF2。两条路径均到达Device F。
- 在Device F上配置组播流量的克隆,将按(S, G)转发的组播流量复制为按(S1, G)和(S2, G)转发。两组相同的组播流量会按照加入消息所建立的主备路径转发。
- Device A对收到的两份组播流量进行选收,接收从主路径收到的组播流量,丢弃从备路径收到的组播流量。当主路径出现故障时,立即切换到接收备路径的组播流量。
基于松散显式路径的源克隆方式PIM FRR
如下图所示,Device A下挂组播用户Receiver1,用户通过IGMPv3点播组播服务。组播源连接在Device F上。
- 在Device A上配置克隆到组播源的加入后,组播组G加入组播源S的加入消息会被克隆为(S1, G)和(S2, G),然后通过指定到S1和S2的显式路径,到S1的路径为主路径,到S2的路径为备路径。其中到S1的路径的各节点下一跳分别为Loopback2、Loopback3、Loopback6;到S2的路径的各节点下一跳分别为Loopback4、Loopback5、Loopback6。两条路径均到达Device F。
- 在Device F上配置组播流量的克隆,将按(S, G)转发的组播流量复制为按(S1, G)和(S2, G)转发。两组相同的组播流量会按照加入消息所建立的主备路径转发。
- Device A对收到的两份组播流量进行选收,接收从主路径收到的组播流量,丢弃从备路径收到的组播流量。当主路径出现故障时,立即切换到接收备路径的组播流量。
基于严格显式路径的Rosen MVPN场景下源克隆方式PIM FRR
如下图所示,Device A下挂组播用户Receiver1,用户通过IGMPv3点播组播服务。组播源连接在Device F上。其中Device A、Device C和Device E为PE设备,Device F为CE设备。用户侧和组播源侧网络为私网。
- 在Device A上配置将到组播源S的加入克隆为到组播源S1和S2的加入后,组播组G加入组播源S的加入消息会被克隆为(S1, G)和(S2, G),然后通过指定到S1和S2的私网严格显式路径,其中到S1的路径为主路径,到S2的路径为备路径。S1和S2的路径的下一跳分别为Loopback3、Loopback5。Device C和Device E收到加入消息后,在私网中转发至组播源侧设备Device F,请求组播数据。
- Device F向Device C和Device E转发组播流量。Device C和DeviceE上配置组播流量的克隆,Device C将收到的组播流量克隆,然后按(S11, G)和(S12, G)转发;Device E将收到的组播流量克隆,然后按(S21, G)和(S22, G)转发。(S11, G)和(S21, G)的组播流量按照Device A指定的公网严格显式路径,向Device A发送;(S12, G)和(S22, G)的组播流量按照Device A指定的公网严格显式路径,向Device B和Device D发送,然后再转发至Device A。Device A中配置了将到S1的加入克隆为到S11和S12的加入,到S2的加入克隆为到S21和S22的加入,进而接收上游转发的四份组播流量。
- Device A从Device B和Device D收到(S12, G)和(S22, G)的组播流量,从Rosen MVPN隧道中收到(S11, G)和(S21, G)的组播流量。(S11, G)和(S12, G)的组播流量中选取(S11, G)的流量作为(S1, G)的流量,(S21, G)和(S22, G)的组播流量中选取(S21, G)的流量作为(S2, G)的流量。Device A最终选取主路径(S1, G)的组播流量,根据(S, G)表项转发至组播用户,丢弃备路径(S2, G)的组播流量。当主路径出现故障时,立即切换到接收备路径的组播流量。
对于Rosen MVPN场景,需要注意:
- 对于私网不连续的组播流量,当公网部署了基于源克隆的PIM FRR保护时,需要通过在根节点配置策略使不连续的组播流量仍然在公网的Share-group中转发。
- RPF向量路径仅支持配置严格显式路径。
- Share-group不支持通过基于源克隆的PIM FRR进行保护。
- 严格显式路径中配置的地址必须为BGP Peer的地址。
使用价值
基于组播源克隆的PIM FRR可以为网络中对实时性要求比较高的组播业务提供链路故障保护功能。