随着运营商网络ALL IP的演进,LTE对IP网络流量的快速倒换也提出了更高的要求,新的架构需要在小于50ms的时间内完成业务的倒换,Remote LFA技术是当前主流的解决方案。
一、目前的IP网络,在某个节点故障后实现流量的切换有两种方式:
- 路由快速收敛:节点故障后,路由协议重新收敛,流量按照新计算出来的路径转发,流量切换速度比较慢。以OSPF/ISIS链路状态路由协议来说,当网络节点故障后,会经历几个步骤:检测到故障,产生链路状态更新,泛洪到整个网络,重新计算路由表安装进FIB表。这样的收敛速度是很慢的,通常在1S以上了,为了加快IGP路由协议的收敛速度,可以利用BFD快速检测关联路由协议来加速收敛,但是速度依然在几百毫秒。
- IP FRR方式:在网络节点故障前就计算出一条备份路径,网络节点故障时快速切换流量,切换速度50ms以内。早期LFA IP FRR是基于2008年发布的RFC5286来实现的,但是只有部分节点可以计算出备份路径;后来RLFA IP FRR基于2015年发布的RFC7490来实现,可以实现大部分网络节点可以计算出备份路径
二、IP FRR:Loop-Free Alternates(LFA)
基于SPF算法,计算出备份路径,网络节点故障时,快速切换流量到备份路径,无需等待路由收敛。以RFC5286第三页举的这个例子为例:
image.pngA neighbor N can provide a loop-free alternate (LFA) if and only if :Distance_opt(N, D) < Distance_opt(N, S) + Distance_opt(S, D)
特别注意,这里是a neighbor不是remote neighbor,所以RFC5286计算出来的LFA永远是S的相连的邻居LFA是基于SPF算法的,所有路由器都有整个区域的路由器的链路状态信息,路由器S根据SPF算法计算出到目的路由器D的主用下一条是E,然后再计算上面的不等式:
- Distance_opt(N, D) < Distance_opt(N, S) + Distance_opt(S, D)发现3<8+9不等式成立,选择N为loop-free alternate,也就是备份下一跳。
- Distance_opt(N, D):备份下一跳到目的节点的cost值
- Distance_opt(N, S):备份节点到始发节点的cost值
- Distance_opt(S, D):始发节点到目的节点的cost值
无意间在网上找了一本书,里面的一个列子也挺好《MPLS in the SDN Era》
image.pngPE4为始发节点,P1为目的节点:
- 主用路径计算。始发节点根据SPF算法计算出到达目的节点P1的最短路径:PE4->P2->PE2->PE1->P1,cost为550,P2为主用下一跳
- 备用路径计算。始发节点还有3个邻居P6,P5,PE3,分别计算是否满足不等式,最终满足不等式的为P5,作为备用下一跳:
P6:Distance_opt(P6, P1) < Distance_opt(P6, PE4) + Distance_opt(PE4, P1),750(P6->PE4->P2->PE2->PE1->P1)<200(P6->PE4)+550(PE4->P2->PE2->PE1->P1)等式不成立,P6不能作为LFA
P5:Distance_opt(P5, P1) < Distance_opt(P5, PE4) + Distance_opt(PE4, P1),600(P5->P3->P1)<100(P5->PE4)+550(PE4->P2->PE2->PE1->P1)等式不成立,P5作为LFA
PE3:显然也不满足
LFA存在的问题:
- 必须得满足不等式才可以作为LFA,只能保证一部分节点有LFA
- 对于环形组网会出现micro loop。还是以RFC5286举例
部署了LFA后,到目的节点D,起始节点S和节点N是互为LFA的,但是如果节点E失效,节点S回把流量转发给LFA N,节点N又回把流量转发给LFA S,形成nicro loop
三、IP FRR:Remote Loop-Free Alternate(RLFA)
LFA计算出来的备份下一跳永远是他的直连邻居,RLFA通过tunnel技术,将远端的PQ节点作为备份下一跳, 使得LFA做了很好的扩展,能够保证更多的节点有备份下一跳
几个概念,以RFC7490第四页拓扑为例,S->E为需要保护的链路,对于S节点:
image.png- P-Space:S节点能够到达的这些节点的集合,基于SPF算法S节点到达这些节点的最短路径不经过保护链路S->E,排除掉等价路径经过保护链路S->E的节点。上面的拓扑中S基于SPF算法到达A,B,C节点的路径可以不经过保护链路S->E,但是S到C的一条等价路径S->E->D->C经过了保护链路,所以C不能算作P-Space
- Q-Space:能够到达E节点的这些节点的集合,基于SPF算法能到达E的这些节点的最短路径不经过保护链路S->E,排除掉等价路径经过保护链路S->E的节点。上面拓扑中B,C,D节点基于SPF算法到达E节点的路径可以不经过保护链路S->E,但是B节点有一条等价路径经过了保护链路S->E,所以Q-Space是C,D
- PQ点:P-Space和Q-Space的交集就是PQ点。当算不出PQ点的时候,就需要运行Extended P-space来进一步计算。
- Extended P-space:再次以S节点的邻居A为根节点来计算出P-Space为B,C,那么最终的Extended P-space为A,B,C,由于Q-Space为C,D,所以交集为C,C为节点S到E链路的PQ点,作为RLFA。
RLFA的设计思想:选择这么一个PQ节点作为RLFA,源节点S与RLFA之间建立tunnel,在不经过需要保护链路的前提下,源节点S首先通过属于P-Space LSP将流量转发给它,然后它通过属于Q-Space LSP将流量转发给目的节点E,这样以来,RLFA不再局限于LFA的苛刻条件,能够保证更多的节点有RLFA,另外,当需要保护链路中断,会首先把流量转发给远端的PQ而不是直连邻居,可以避免micro loop的出现。
以《MPLS in the SDN Era》书中的例子,S->E为需要保护的链路
image.png- P-Space计算:PE1节点计算出到达PE2,P2,P4,P6,PE4,PE3,P5节点的最短路径不经过保护路径
- Q-Space计算:PE1节点计算出只有P5,P3节点到达P1节点不经过保护链路
- PQ点:P-Space为PE2,P2,P4,P6,PE4,PE3,P5;Q-Space为P5,P3;PQ点为P5
网友评论