Anycast FRR
Anycast SID
组内所有路由器发布相同的SID,称为Anycast SID。如图2-75所示,DeviceD和DeviceE都在SR区域出口,通过DeviceD和DeviceE都可以到达非SR区域,因此二者可以互相备份。在这种情况下,可以将DeviceD和DeviceE配置在同一个组里,并且发布相同前缀SID,也即Anycast SID。
Anycast SID的下一跳指向路由器组中IGP路径开销最小的设备DeviceD,DeviceD也称为发布Anycast SID的最优节点,其他都是备份节点。当到DeviceD的主下一跳链路或直连邻居节点发生故障,可以通过其他保护路径到达Anycast SID设备,Anycast SID设备可以是与主下一跳相同的源,也可以是其他Anycast源。VPN使用SR LSP时,Anycast要配置相同的VPN私网标签。
Anycast FRR
Anycast FRR是指多个节点发布相同的前缀SID,形成了FRR。普通的FRR算法,都只能利用SPT树计算节点的备份下一跳,可以支持路由源头单一的场景,对于多个节点发布相同路由的场景无法支持。
多个节点发布相同路由场景下,为了计算前缀SID的备份下一跳,需要将多个路由发布节点变成单个路由发布节点,再进行计算。Anycast FRR方案采用构造一个虚拟节点的方式,将多个相同的路由发布节点转换为单个路由发布节点,然后按TI-LFA算法计算虚拟节点的备份下一跳,Anycast前缀SID从其创建的虚拟节点继承备份下一跳。该方案对备份下一跳计算的算法没有修改,仍然可以保留算法保证的无环特性,算出的备份下一跳和收敛前的周边节点的主下一跳之间不会形成环路。
如图2-76(a)所示,DeviceA->DeviceB的链路开销值为5,DeviceA->DeviceC的链路开销值为10,DeviceB和DeviceC同时发布相同的路由10.1.1.0/24。在DeviceA上使能TI-LFA FRR,DeviceA由于不满足TI-LFA条件,因此无法计算出路由10.1.1.0/24的备份下一跳。为了解决上述问题,可以使用多个节点发布相同路由场景中的TI-LFA FRR功能。
如图2-76(b)所示,具体实现描述如下:
- 首先在DeviceB和DeviceC之间构造一个虚拟节点Virtual Node,Virtual Node与DeviceB和DeviceC分别形成链路,DeviceB和DeviceC指向Virtual Node的链路开销值均为0,Virtual Node指向DeviceB和DeviceC的链路开销值都是无穷大。
- Virtual Node上发布一条前缀10.1.1.0/24,此时等同于只有一个节点发布路由。
- DeviceA按TI-LFA算法计算到Virtual Node的备份下一跳,路由10.1.1.0/24直接继承该计算结果。在图2-76(b)中,DeviceA计算出到Virtual Node的主链路是DeviceA->DeviceB,备份链路为DeviceA->DeviceC。