IS-IS Auto FRR
产生原因
随着网络的不断发展,VoIP和在线视频等业务对实时性的要求越来越高,而IS-IS故障恢复需要经历“故障感知、LSP更新、LSP泛洪、路由计算和下发FIB”这几个过程才能让流量切换到新的链路上,因此故障恢复的时间远远超过了用户感知流量中断的时间,不能满足此类网络业务的实时性要求。
IS-IS Auto FRR(Fast reroute)是动态IP FRR,由IGP利用全网链路状态数据库,预先计算出备份路径,保存在转发表中,以备在故障时提供流量保护。IP FRR技术可以从保护技术上解决路由收敛的性能问题,可将收敛时间降低,使其在当前网络可靠性中越来越受到运营商的青睐。
目前主要的FRR技术包括:LFA(Loop-Free Alternates),U-turn,Not-Via,TI-LFA,Remote-LFA和MRT,IS-IS仅支持LFA,TI-LFA和Remote LFA。
相关概念
LFA
LFA(Loop-Free Alternates)算法以可提供备份链路的邻居为根节点,利用SPF(Shortest Path First)算法计算出到目的节点的最短距离。然后,按照以下不等式计算出一组开销最小且无环的备份链路。
LFA不等式:Distance_opt(N, D) < Distance_opt(N, S) + Distance_opt(S, D)。其中,Distance_opt(X, Y)是指节点X到Y之间的最短路径,N是备份链路的节点,D是流量转发的目的节点,S是转发流量的源节点。
Remote LFA
LFA FRR对于某些大型组网,特别是环形组网,无法计算出备份路径,不能满足可靠性要求。在这种情况下,实现了Remote LFA FRR。Remote LFA算法根据保护路径计算PQ结点,并在源节点与PQ节点之间建立tunnel隧道形成备份下一跳保护。当保护链路发生故障时,流量自动切换到隧道备份路径,继续转发,从而提高网络可靠性。
P空间
以保护链路源端为根节点建立SPF树,所有从根节点不经过保护链路可达的节点集合称为P空间。
扩展P空间
以保护链路源端的所有邻居为根节点分别建立SPF树,所有从根节点不经过保护链路可达的节点集合称为扩展P空间。
Q空间
以保护链路末端为根节点建立反向SPF树,所有从根节点不经过保护链路可达的节点集合称为Q空间。
PQ节点
PQ节点是指既在扩展P空间又在Q空间的节点。在Remote LFA中,PQ节点会作为保护隧道的目的端。
TI-LFA
LFA FRR和Remote LFA对于某些场景中,P空间和Q空间既没有交集,也没有直连的邻居,无法计算出备份路径,不能满足可靠性要求。在这种情况下,实现了TI-LFA。TI-LFA算法根据保护路径计算P空间,Q空间,Post-convergence最短路径树,以及根据不同场景计算Repair List,并在源节点与PQ节点之间建立SR隧道形成备份下一跳保护。当保护链路发生故障时,流量自动切换到隧道备份路径,继续转发,从而提高网络可靠性。关于TI-LFA的介绍,可以参考TI-LFA FRR。
IS-IS LFA Auto FRR
链路保护:当需要保护的对象是经过特定链路的流量时,流量保护类型为链路保护。
如图8-21所示,流量从DeviceS到DeviceD进行转发,网络开销值满足链路保护公式,即:Distance(N, D) < Distance(N, S) + Distance(S, D),这样可保证当主链路故障后,DeviceS将流量切换到备份链路DeviceS到DeviceN后可以继续向下游转发,确保流量中断时间降低。
节点链路双保护(如图8-22所示):当需要保护的对象是经过特定设备或链路的流量时,流量保护类型为节点链路双保护。节点保护优先级高于链路保护。
节点链路双保护需同时满足如下两个条件:链路开销必须满足Distance_opt(N, D) < Distance_opt(N, S) + Distance_opt(S, D);
设备的接口开销必须满足Distance_opt(N, D) < Distance_opt(N, E) + Distance_opt(E, D)。
其中,S是转发流量的源节点,E是发生故障的节点,N是备份链路的节点,D是流量转发的目的节点。
IS-IS Remote LFA auto FRR
Remote LFA也分为链路保护和节点链路双保护两种类型,其原理及公式与LFA相同,此处不再赘述。下面以链路保护为例介绍Remote LFA的实现过程。
如图8-23所示,假设流量路径为PE1→P1→P2→PE2,为避免P1、P2之间的链路故障导致流量丢失,Remote LFA会计算出PQ节点,并在P1和PQ节点(P4)之间建立LDP隧道。当P1检测到P1、P2之间的链路故障时,将报文封装为MPLS报文转发给P4,P4收到该报文后,去掉MPLS标签,重新查找IP路由表,将报文转发给下一跳,并最终到达目的地PE2,实现了快速保护,避免流量丢失。
计算以P1为根的SPF树,每棵SPF树中从根节点不经过P1→P2链路可达的节点为P空间,得到P空间{PE1,P1,P3};
分别计算以所有P1的邻居(PE1和P3,即不包括通过保护链路的邻居)为根的SPF树,每棵SPF树中从根节点不经过P1→P2链路可达的节点集合为扩展P空间,得到扩展P空间{PE1,P1,P3,P4};
计算以P2为根节点的反向SPF树,得到Q空间{PE2,P4};
既在扩展P空间又在Q空间的节点,即PQ节点(P4)。
IPv6 IS-IS Remote LFA auto FRR用来保护IPv6流量,而且使用IPv4的LDP隧道,除此之外其原理与IPv4的相同。
多源路由场景中的IS-IS FRR
IS-IS LFA FRR是通过提供备份链路的邻居为根节点,利用SPF算法计算到达目的节点的最短距离,计算的结果是基于节点的备份下一跳,适合于单源路由场景。随着网络的多元化,某些网络中存在多源路由场景,即多个节点发布相同的路由,在这种多源路由场景中,由于无法满足单源LFA的条件,因此无法计算出备份下一跳。为了解决上述问题,产生了多源路由场景中的IS-IS FRR,它可以使用其中一个路由源来保护主的路由源,从而增强网络的可靠性。
如图8-24(a)所示,Device A->Device B的链路开销值为5,Device A->Device C的链路开销值为10,Device B和Device C同时发布路由源10.1.1.0/24。在Device A上使能IS-IS FRR,Device A由于不满足单源LFA条件,因此无法计算出路由10.1.1.0/24的备份下一跳。为了解决上述问题,可以使用多源路由场景中的IS-IS FRR功能。具体实现如下:
如图8-24(b)所示,在Device B和Device C之间构造一个虚拟节点Virtual Node,Virtual Node与Device B和Device C分别形成链路,Device B和Device C指向Virtual Node的链路开销值均为0,Virtual Node指向Device B和Device C的链路开销值都是最大值Max-cost,Virtual Node上发布一条前缀10.1.1.0/24,将多源路由转换为单源路由,然后按LFA算法计算虚拟节点的备份下一跳,多源路由10.1.1.0/24从其创建的虚拟节点继承备份下一跳。在该图中,Device A计算出到Virtual Node的主链路是Device A->Device B,备份链路为Device A->Device C。
IS-IS的ECMP FRR功能
等价负载分担ECMP(Equal-Cost Multiple Path)是指到达同一目的地有多条等价链路,流量在这些等价链路上平均分配。
对于ECMP场景,如果不支持ECMP FRR功能,则无法为主链路计算备份下一跳。
为增强ECMP场景的可靠性,IS-IS的ECMP FRR功能默认使能,采用多主多备的计算方式,支持为每条主链路独立计算备份下一跳。并且IS-IS的ECMP FRR功能可以利用全网链路状态数据库,对负载分担链路预先计算出备份路径,保存在转发表中,以备在故障时提供流量保护。
如图8-25所示,流量从Device A到Device D进行转发,Device A与Device D之间通过Link1、Link2、Link3实现负载分担。Link1、Link2、Link3的备份路径基于ECMP FRR的计算得出,假设Link1的备份路径是Link3,Link2的备份路径是Link3,Link3的备份路径是Link2。
- 如果负载分担场景下未使能ECMP FRR功能,当Link1链路故障时,Link1的流量会随机性切换到Link2或Link3,不利于用户对业务流量的管理。
- 如果负载分担场景下使能了ECMP FRR功能,当Link1链路故障时,Link1的流量会按照FRR选路规则切换到备份路径Link3,增强了用户对业务流量的管理。
如图8-26所示,流量从Device A到Device D进行转发,Device A与Device B之间通过Link1、Link2实现负载分担。Link1、Link2的备份路径基于ECMP FRR的计算得出,假设Link1的备份路径是Link3,Link2的备份路径是Link3。
- 如果负载分担场景下未使能ECMP FRR功能,当Device B故障时,Link1、Link2会随之失效,并导致网络流量中断。
- 如果负载分担场景下使能了ECMP FRR功能,当Device B故障时,Link1、Link2会随之失效,但是网络流量可以切换到备份路径Link3上,避免了流量中断。
IS-IS的SRLG FRR功能
共享风险链路组SRLG(Shared Risk Link Group)是一组共享一个公共的物理资源(例如共享一根光纤)的链路。同一个SRLG的链路具有相同的风险等级,即如果SRLG中的一条链路失效,组内的其他链路也可能失效。
如图8-27所示,流量从Device A到Device B进行转发,Device A与Device B之间通过Link1、Link2实现负载分担。
- 如果Link1链路发生故障,备份路径Link2链路正常,则网络流量切换到备份路径后可以正常发送。
- 如果Link1链路发生故障,并且备份路径Link2链路也发生故障,则网络流量切换到备份路径后会导致流量中断。
对于存在相同失效风险的链路,可以配置IS-IS的SRLG FRR功能。将Link1和Link2加入同一SRLG组中,使设备计算备份路径时优选不在同一SRLG组的链路,降低网络流量中断的可能。