PIM FRR技术白皮书
Copyright © 2023 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
当组播网络中的链路或某台设备发生故障时,需要通过故障链路或故障设备传输才能到达组播接收者的报文将会丢失或产生路由环路,组播数据流量将会中断。直到新的单播网络拓扑路由收敛并重新建立组播转发树后,被中断的组播流量才能恢复正常的传输。此时,组播流量中断时间较长,远远不能满足实时性要求高的业务的需求。
组播网络的许多应用场景对延时和丢包都非常敏感,比如视频直播、网络课堂、线上会议等,业务中断或网络波动都会严重影响用户体验。
本文中提及的PIM(Protocol Independent Multicast,协议无关组播)是IPv4 PIM与IPv6 PIM的统称。
PIM协议基于单播静态路由或者任意单播路由协议所生成的单播路由表为组播提供路由,使组播路由与所采用的单播路由协议无关,只要能够通过单播路由协议产生相应的组播路由表项即可。
FRR(Fast Reroute,快速重路由)技术是指当物理层或链路层检测到故障时将故障消息上报上层路由系统,并立即使用一条备用链路转发报文。
FRR技术涵盖的内容非常丰富,包括IP FRR、OSPF FRR等技术。在可靠性组网中,通常根据网络的需求,在不同的组网环境中部署一种或者多种FRR技术配合使用,从而提高网络的可靠性。
当链路发生故障时,应用FRR特性可以实现组播流量快速恢复,降低对承载业务的影响。
为解决应用背景章节阐述的实际问题,基于PIM协议与FRR技术的PIM FRR应运而生。PIM-SM或PIM-SSM组播业务中,应用PIM FRR技术能够最大程度地降低链路或节点故障带来的影响,缩短流量中断时间,使业务尽快恢复,从而提升用户体验。
PIM FRR技术的基本原理是在承载组播功能的网络设备上,为每个组播源选择两条可用的路径,即主路径和备路径,使两条路径之间重复使用的网络设备尽可能的少,理想情况是这两条路径在上游完全不相交。
在正常情况下,配置了PIM FRR功能的网络设备通过主路径和备路径都能够收到数据包,但是只有通过主路径收到的数据包会被接收并转发到下游,通过备路径收到的数据包则会被丢弃。
如果检测到主路径出现故障,设备会立即切换到备路径,并开始接收和转发来自备路径的数据包。
如果故障修复,设备可以切换回主路径。
· 提升收敛速度:通过建立备用组播分发树,在网络故障时实现组播路由协议快速收敛。
· 减少流量中断:通过迅速切换到预先建立的备路径,能够最大程度地缩短组播流量从网络故障(例如链路或节点故障)中恢复所需的时间。
· 改善用户体验:IPTV、VoIP、视频会议和在线游戏等业务的用户体验都依赖于组播流量的稳定性,缩短组播业务的故障恢复时间有利于提高这类实时和延迟敏感类业务的服务质量。
· 充分利用已有资源:PIM FRR技术利用现有的单播FRR(如OSPF FRR)机制来建立备用组播分发树,只需在已有组播路由协议(PIM)的基础上进行调整,有利于在现有网络环境中实施部署,能够更好地利用已有网络资源。
· 构建主备路径:建立主路径和备路径,以确保在主路径发生故障时有备路径可供使用。
· 故障触发PIM FRR正切:监测主路径的组播流量,并在检测到故障时触发切换到备路径,以确保组播流量的顺利传输。
· PIM FRR回切:在主路径故障修复后,将组播流量切换回主路径,以恢复正常的数据传输。
在如图2-1所示的组网环境中,接收者侧设备Device D到组播源侧设备Device A之间存在主备两条路径。在Device D上配置PIM FRR功能后,当Device D向组播源方向发送(S,G)加入报文时,会通过主备接口向组播源发送主备双份加入报文,并建立主备两条组播转发路径。关于选择主备接口的详细介绍,请参见“主备接口选举机制”。
配置PIM FRR功能后,设备选择主备接口的方法与具体场景有关:
· 在非等价路由场景中,PIM FRR使用单播FRR的主备接口选举结果,即将单播FRR中的主备接口分别作为PIM FRR的主备接口。
· 在等价路由场景中:
¡ 若单播FRR能够选举出主备接口,则PIM FRR使用单播FRR的主备接口选举结果。
¡ 若单播FRR无法选举出主备接口,则PIM FRR自行选举主备接口。
在非等价路由场景中,PIM FRR使用单播FRR的主备接口选举结果,即将单播FRR中的主备接口分别作为PIM FRR的主备接口。
· 单播FRR技术通过单播路由协议计算出最优路径作为主路径,主路径上的接口作为主接口。
· 单播FRR计算通过LFA FRR(Loop-Free Alternate Fast Reroute,无环备份快速重路由)及其增强方案计算出备路径,并使用该备路径上的接口作为备接口。
LFA FRR计算备路径的关键是找到一个PLR(Point of Local Repair,本地修复节点),再找到一个PLR的邻居节点作为无环绕行节点(LFA节点),使得流量从PLR转发到该LFA节点之后可以不经过保护链路或保护节点到达目的节点。
如图2-2所示,在业务流量从源到目的所经过的最优路径上,保护链路为Device A与Device B之间的链路,保护节点为Device B。
(1) LFA FRR会选取最优路径上与保护链路或保护节点直连的上游节点(Device A)作为PLR。
(2) LFA FRR以PLR为最短路径优先树的根节点,找到所有不经过保护节点可达的邻居节点(如Device C)。
(3) LFA FRR根据以下校验条件和校验规则,对从这些邻居节点到接收者的路径进行无环校验。能够通过无环校验的路径会被单播FRR采纳作为最优路径的备路径,该备路径上的接口即单播FRR功能所使用的备接口。
¡ 校验条件:
- 条件1:邻居节点到保护节点的最短距离与保护节点到接收者的最短距离相加得到的和,大于邻居节点到接收者的最短距离。
- 条件2:邻居节点到PLR的最短距离与PLR到接收者的最短距离相加得到的和,大于邻居节点到接收者的最短距离。
¡ 校验规则:
- 若存在满足条件1的邻居节点,则选取该邻居节点为LFA节点。
- 若所有邻居节点均不满足校验条件1,则采用校验条件2进行校验。若存在满足条件2的邻居节点,则选取该邻居节点为LFA节点。
- 若所有邻居节点均不满足校验条件2,则LFA FRR无法为该网络拓扑计算无环备路径。
图2-2 LFA FRR原理示意图
在某些的组网环境中,LFA FRR无法计算出备路径,无法满足可靠性要求,此时可以通过其增强方案进行计算。
比如图2-3中的场景,Device A到Device C再到Device D之间的存在可用的备路径,但受限于网络拓扑,LFA FRR无法计算出备路径。示例中的保护节点为Device B,PLR为Device A,则邻居节点为Device C。邻居节点到接收者的最短距离,即Device C到接收者的最短路径,Cost值为25。
· 根据校验条件1:
¡ 邻居节点到保护节点的最短距离,即Device C到Device B的最短距离,Cost值为5。
¡ 保护节点到接收者的最短距离,即Device B到接收者的最短距离,Cost值为20。
¡ 20+5=25,不满足校验条件1。
· 根据校验条件2:
¡ 邻居节点到PLR的最短距离,即Device C到Device A的最短距离,Cost值为10。
¡ PLR到接收者的最短距离,即Device A到接收者的最短距离的Cost值30。
¡ 10+30>25,也不满足校验条件2。
在某些LFA FRR无法计算出备路径的场景中,单播FRR可以通过下列LFA FRR的增强方进行计算:
· Remote LFA FRR(Remote Loop-Free Alternate Fast Reroute,远端无环备份快速重路由):根据保护路径计算PQ节点,并在源节点与PQ节点之间形成备路径保护。当主路径发生故障时,流量自动切换到备路径,继续转发,从而提高网络可靠性。
有关Remote LFA FRR、PQ节点的详细介绍,请参见“三层技术-IP路由配置指导”中的“OSPF”。
· TI-LFA FRR(Topology-Independent Loop-free Alternate Fast Reroute,拓扑无关无环备份快速重路由):TI-LFA FRR完全继承了Remote LFA计算P空间和Q空间的算法,可以在网络拓扑中不存在PQ节点的情况下,实现任意拓扑的保护。
有关TI-LFA FRR的详细介绍,请参见“三层技术-IP路由配置指导”中的“IS-IS”。
在等价路由场景下:
· 若单播FRR能够选举出主备接口,则PIM FRR使用单播FRR的主备接口选举结果。
· 若单播FRR无法选举出主备接口,则PIM FRR将通过RPF(Reverse Path Forwarding,逆向路径转发)机制自行选举主备接口并构建主备路径。
PIM FRR通过RPF机制构建主备路径的过程如下:
(1) 以“报文源”的IP地址为目的地址,分别从单播路由表、MBGP(Multiprotocol Border Gateway Protocol,多协议边界网关协议)路由表和组播静态路由表中各选出一条最优路由。
其中,“报文源”可能代表组播源、RP(Rendezvous Point,汇集点)或BSR(Bootstrap Router,自举路由器),其具体含义与组播报文传输的具体情况有关。
¡ 当前报文沿如下路径传输时,则组播源作为“报文源”:
- 从组播源到接收者的SPT(Shortest Path Tree,最短路径树);
- 从组播源到RP的SPT。
¡ 当前报文沿如下路径传输时,则RP作为“报文源”:
- 从RP到接收者的RPT(Rendezvous Point Tree,共享树);
- 从组播源到RP的组播源侧RPT。
¡ 如果当前报文为BSR报文,沿从BSR到各设备的路径进行传输,则BSR作为“报文源”。
有关SPT、RPT、组播源侧RPT、RP和BSR的详细介绍,请参见“IP组播配置指导”中的“PIM”。
(2) 根据以下规则,从这些最优路由中选出两条分别作为主备路径,主备路径上的接口分别为主备RPF接口。
¡ 如果配置了按照最长匹配选择路由,则:
- 选择掩码匹配最长的路由。
- 如果掩码相同,则选择路由优先级最高的路由。
- 如果路由优先级也相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。
- 如果存在等价路由,则选择下一跳的IP地址最大者为主路径,次大者为备路径。网络层使用IPv6协议时,此处用于判断的IP地址为链路本地地址。
¡ 如果没有配置按照最长匹配选择路由,则:
- 选择路由优先级最高的路由。
- 如果路由优先级相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。
- 如果存在等价路由,则选择下一跳的IP地址最大者为主路径,次大者为备路径。
如图2-4所示,在组播网络中,建立主备两条组播转发路径后,在正常情况下,主备路径上都有流量经过,接收者侧设备Device D能够收到双份的组播流量,但是只有通过主路径收到的组播流量数据会被转发给接收者,而通过备路径收到的组播流量将被丢弃。
当主路径上发生故障导致该路径路由不可达时,组播流量会快速切换到已建立好的备路径上,通过备路径发送给接收者,从而大大缩短主路径上的设备或者链路故障发生后的组播数据的断流时间。这个过程被成为PIM FRR正切。
触发PIM FRR正切的典型故障类型包括:
· 接收者侧链路故障
· 节点故障
· 组播源侧链路故障
如图2-5所示,当主路径在组播源侧发生链路故障时,Device D通过RPF检查感知到故障,因此将选择从备路径上接收的组播流量转发给接收者。
如图2-6所示,当主路径上的中间节点Device B发生故障时,Device D从主路径上无法接收到组播流量,因此将选择从备路径上接收的组播流量转发给接收者。
如图2-7所示,当主路径在接收者侧发生链路故障时,Device D从主路径上无法接收到组播流量,因此将选择从备路径上接收的组播流量转发给接收者。
主备路径均建立后,需要检测主路径的状态,以便确定什么时候切换到备路径。
配置PIM FRR功能后,对于同一个(S,G)表项,设备将同时保存主备接口,并周期性检测主接口的组播流量。当主接口接收的组播流量从有到无时触发PIM FRR正切,但主接口接收的组播流量从无到无时不触发PIM FRR正切。也就是说:
· 若前序检测中主路径有组播流量到达,而本次未检测到组播流量从主路径到达,则表示主路径存在故障,此时会将接收该表项的接口切换为备接口。
· 若前序检测中主路径无组播流量到达,那么,即使本次未检测到组播流量从主路径到达,也不会触发PIM FRR正切。
在PIM FRR正切的过程中,仅以主接口组播流量状态变化作为触发条件,而不关心备接口的组播流量状态变化。
PIM FRR有按表项检测和按接口检测两种工作模式:
· 按表项检测模式:设备以“条”为单位,即周期性检测每条表项来自主接口的流量。
· 按接口检测模式:将主备接口均相同的组播表项划分为一组,然后以“组”为单位,周期性检测每组表项来自主接口的流量。
故障检测周期是指两次故障检测之间的时间间隔。网络管理员可以根据需求配置故障检测周期:
· 组播转发表项较多时,建议将监测主备路径状态的周期调大,避免在短时间内监测过多的组播表项对应的组播流量,导致CPU负载过重。
· 当组播流量速率比较小时,也建议将监测主备路径状态的周期调大,避免监测周期过短监测过于频繁,造成链路故障的误判。
配置PIM FRR功能后,当设备检测到主路径发生节点或链路故障时,设备会选择接收和转发备路径的组播流量。
网络管理员可以根据需求开启PIM FRR回切功能并调整回切延迟时间。与正切过程中的故障检测机制相似,开启回切功能后,设备会周期性检测主接口的组播流量,当主接口接收的组播流量从无到有时,表示主路径故障恢复。为确保网络功能稳定,设备会在检测到主路径故障恢复后,再等待相应延迟时间才启动回切,使设备再次接收和转发主路径的组播流量。
PIM FRR回切过程中,部分组播业务可能会出现多包或者丢包的情况。因此,在组播业务可靠性要求较高的场景下,建议不回切。
如果在路径组播表项完全建立前,就开始PIM FRR回切,则可能导致组播流量转发失败。此外,如果网络恢复期间,链路不稳定导致主路径网络状况频繁变化,则可能会引起主备路径反复切换,影响正常组播业务。因此,不建议配置过短的回切延迟时间。
· 由于PIM FRR通过周期性检测流量的方式判断链路故障,此功能仅适用于持续、大速率转发组播流量的场景。否则可能会因为没有检测到流量,会引起如下问题:
¡ 主接口持续检测不到流量,导致主备入接口无法正常切换。
¡ 主接口检测不到持续的流量,导致主备入接口反复切换。
· 仅PIM-SM和PIM-SSM模式中支持本功能。且PIM-SM模式下,此功能仅对SPT切换后的(S,G)表项生效。
有关PIM-SM、PIM-SSM和SPT的详细介绍,请参见“IP组播配置指导”中的“PIM”。
通常情况下,当组播链路发生故障时,只能依赖于单播路由收敛,耗时较长,这对于实时性要求高的组播网络是不能接受的。为了解决上述问题,可以配置PIM FRR。
如图4-1所示,接收者通过组播方式接收视频点播信息,不同组织的接收者群体组成末梢网络,每个末梢网络中都存在至少一个接收者,整个PIM域采用SM或SSM方式。在Device C上配置PIM FRR功能后,将建立主备路径,使组播流量沿主备路径双向转发。存在主备路径的设备在转发层面选收主路径的流量,丢弃备路径的流量,当主路径发生故障时,立刻选收备路径的流量,从而达到组播流量的快速收敛的目的。
· RFC 5286:Basic Specification for IP Fast Reroute: Loop-Free Alternates
· RFC 7431:Multicast-Only Fast Reroute