「VPN」- SRv6 Policy 高可靠性:防环(微环)

问题描述

TI-LFA FRR以及Midpoint保护能够在IGP收敛完成前,短暂的维持数据转发,但是当IGP收敛完成后转发便不再会基于FRR的方式(隧道方式)进行转发,而是基于IGP路由按照正常的方式转发数据。

但现网中设备的收敛速度有可能是不一样的,因此有可能产生短暂的环路,直到沿途的路由器都收敛完成此类环路才会消失,这种短暂的环路被称为微环。

解决方案

WIP

本地正切微环

问题描述

本地正切防微环指的是紧邻故障点的节点收敛后引发的环路

P1->P4间的链路故障时,流量先按TI-LFA备份路径转发。
当P1收敛后,将下一跳收敛到P2 ,P1按照收敛后的路径把流量转发到P2。
但网络中P2和其它结点还未收敛,P2到节点PE2的下一跳还是P1,这样就会在P1和P2间形成环路,直到P2收敛完成。

解决方案

防微环的措施是该节点收敛后延迟一段时间再下发转发路径,避免故障点相邻节点在IGP收敛后引发环路,具体流程如下:
P1感知到P4的接口故障,进入TI-LFA流程,报文按照TI-LFA备份路径转发到PE2。
P1启动定时器,在定时器超时之前保持原转发表项,继续按照TI-LFA备份路径转发。
定时器超时,网络中其他节点均完成收敛,P1进行收敛,按照新的路径正常转发。
由于TI-LFA一定是个无环路径,所以只需要维持一段时间继续走TI-LFA路径,待网络中其他结点完成收敛以后退出TI-LFA。

远端正切微环

问题描述

故障发生在远端,节点之间也可能形成环路。
沿着报文转发路径,如果离故障点更近的节点先于离故障点远的节点收敛,就可能会导致环路:
P3->P4之间链路故障,假设P3执行本地正切防微环,延时收敛,流量沿着TI-LFA备份路径转发。但是只有P3进行延时收敛,而网络中的其他节点依然正常进行IGP收敛。
P2先收敛,计算到PE2的新路径为P2->P1->P5->PE2,则流量到达P2之后不会向P3转发而是回发到P1。
P1尚未收敛完成,依然沿着旧路径转发P1->P2->P3->P4->P5->PE2,流量又回发到P2,形成环路。

解决方案

网络节点只能针对本地直连的链路/节点故障预先计算无环备份路径,而无法针对网络中任何潜在的故障预先计算无环路径。所以要解决微环问题,需要在节点收敛之后计算无环路径。
如下图,P2收敛后的计算无环的TI-LFA路径,路径为P2->P1->P5->PE2。P3计算的防环路径可以是严格显式路径,也可以是松散路径。

回切微环

问题描述

分布式计算的收敛无序性同样影响着故障回切场景,导致存在微环:
P1->P4之间的链路故障,PE1到PE2的路径为PE1->P1->P2->P3->P4->PE2。
当P1->P4之间的链路故障恢复,如果P2完成收敛,P2上到PE2的路径为P2->P1->P4->PE2,P2将流量转发到P1。
而此时P1上可能由于存在大量业务,或者CPU利用率比较高等因素,导致尚未完成IGP收敛,依然使用旧路径讲流量继续回发到P2,从而形成环路。

解决方案

回切防微环的方式与远端正切防微环类似
如下图所示,P2在收敛之后,在报文中封装新的SRH,约束流量按照收敛后路径转发,按照严格显式路径将流量转发到目的地址。当P1收敛后,流量在P1按照收敛后路径转发到PE2结点。