• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

SRv6高可靠性技术白皮书-6W100

手册下载

SRv6高可靠性技术白皮书-6W100-整本手册.pdf  (663.10 KB)

  • 发布时间:2024/12/17 19:35:55
  • 浏览量:
  • 下载量:

SRv6高可靠性技术白皮书

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。

本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。



概述

1.1  技术简介

SRv6网络中,链路或节点设备发生故障、故障恢复时,可能会产生丢包,为了保证SRv6网络中的业务流量稳定转发,SRv6提供了高可靠性措施,避免业务流量长时间中断,提高网络质量。

SRv6提供了如下高可靠性保护机制:

·     TI-LFA FRRTopology-Independent Loop-Free Alternate Fast Reroute,拓扑无关无环备份快速重路由)实现了任意拓扑下自动计算备份保护路径。

·     SRv6防微环机制:避免了网络中不同节点因IGP协议收敛的先后顺序差异导致的短时环路问题。

·     SRv6中间节点保护:实现了在SRv6 TE Policy转发场景中,对必经节点故障的保护。

·     SRv6尾节点保护:实现了在IP L3VPN/EVPN L3VPN/EVPN VPLS/EVPN VPWS over SRv6 TE Policy组网中,对SRv6 TE Policy尾节点故障的保护,仅适用于双归属的组网场景

1.2  技术优势

SRv6高可靠性机制具有如下特点:

·     高保护率

SRv6技术的基础上结合RLFA FRR算法,形成高效的TI-LFA FRR算法,提高保护率。

·     部署广泛

SRv6高可靠性支持任意拓扑,能够弥补传统隧道保护技术的不足。

SRv6高可靠性机制

2.1  TI-LFA FRR

2.1.1  FRR技术介绍

1. FRR技术的产生和发展

部分业务对网络丢包非常敏感,当网络中的链路或节点设备发生故障时,这类业务要求流量转发的中断时长不超过几十毫秒,但网络拓扑中路由重新计算和收敛时间通常无法满足上述要求。在保护的链路或节点的邻居设备上开启FRRFast Reroute,快速重路由)功能,可以最大程度减少路由重新收敛过程中的流量丢包。这个开启了FRR功能的设备节点称为PLRPoint of Local Repair,本地修复节点)。PLR节点在计算到达目的网络的最短路径的同时,将自动计算一条备份路径,并将主备路径同时添加到FIB转发表中。当保护的链路或节点故障时,可以立即通过PLR节点的备份路径转发流量,而无需等待路由重新收敛,因此可以最大程度避免流量丢包。

按出现时间先后顺序,FRR的算法机制有以下几种:

·     LFA FRRLoop-Free Alternate Fast Reroute,无环备份快速重路由)。

·     RLFA FRRRemote Loop-Free Alternate Fast Reroute,远端无环路备份快速重路由)。

·     适用于SRv6组网和SR-MPLS组网的TI-LFA FRRTopology-Independent Loop-Free Alternate Fast Reroute,拓扑无关无环备份快速重路由)

LFA FRR技术到RLFA FRR技术,再到TI-LFA FRR技术,每一代FRR技术都继承了上一代FRR技术的基本算法,又逐步改进上一代FRR技术的缺点。其中,LFA FRRRLFA FRR技术两者均存在一定的限制,为了方便理解TI-LFA FRR技术,下面我们简单了解LFA FRRRLFA FRR技术的算法机制和这些技术面临的一些问题。

2.1.2  LFA FRR

1. LFA FRR算法机制

图1 LFA FRR原理示意图

 

最早出现的FRR技术是LFA FRR。如1所示,LFA FRR计算备份路径的关键是找到一个PLR的邻居节点作为无环绕行节点(LFA节点),使得流量从PLR转发到该LFA节点之后可以不经过保护链路或保护节点到达目的节点,计算步骤是:

(1)     由网络管理员确定业务流量从源到目的所经过的最优路径,在该路径上确认需要保护的链路(AB)或需要保护的节点(B节点),再选取上述最优路径上与保护链路或保护节点直连的上游节点(A节点)作为PLRPoint of Local Repair,本地修复节点),在该节点上开启LFA FRR功能。

(2)     缺省情况下,PLR优先计算节点保护的备份路径:

a.     PLRSPFShortest Path First,最短路径优先)树的根节点,找到所有不经过保护节点(B节点)可达的邻居节点(D),以这些邻居节点为根节点,运行SPF算法计算出到达目的Dst的路径。

b.     从邻居节点(D)到目的节点Dst的路径进行校验,需要满足如下无环路条件DistanceDDst)<DistanceDB+DistanceBDst),其中DistanceXY)表示XY的最短距离。校验发现邻居节点D不满足上述条件,即从邻居节点D到目的Dst的最短路径cost值为25,等于从邻居节点D到保护节点B的最短路径cost5)加上从保护节点B到目的Dst的最短路径cost20)。此时如果选取D节点作为保护节点,流量抵达D之后,仍可能会绕行经过保护节点B,再从B转发到Dst,无法实现节点保护功能。因此上述拓扑中不存在满足节点保护的无环备份路径。

c.     如果上述步骤中存在邻居节点可以满足节点保护的无环校验条件,则将计算的出接口和下一跳写入PLRFIB转发表,且无需再进行下一步的链路保护的计算。否则PLR继续下一步的链路保护备份路径的计算。

(3)     PLR计算链路保护的备份路径:

a.     PLRSPF树的根节点,找到所有不经过保护链路(AB)可达的邻居节点(D),以这些邻居节点为根节点,运行SPF算法计算出到达目的Dst的路径。

b.     从邻居节点(D)到目的节点Dst的路径进行校验,需要满足如下无环路条件DistanceDDst)<DistanceDPLR+DistancePLRDst),其中DistanceXY)表示XY的最短距离。校验发现邻居节点D可以满足上述条件,因此邻居节点D可以作为链路保护的备份路径LFA

c.     如果上述步骤中不存在邻居节点满足链路保护的无环校验条件,则LFA FRR无法为该网络拓扑计算备份保护路径。

2. LFA FRR算法面临的问题

2所示的网络拓扑,由于DC之间的链路cost值过大,LFA FRR无法计算出备份保护路径。而实际上,流量依次绕行节点DC可以对B节点进行保护。因此,LFA FRR可能受限于网络拓扑,在某些场景中,特别是一些环形组网拓扑中,使用LFA FRR无法计算出备份保护路径。因此,LFA FRR技术无法实现拓扑无关。根据RFC 6571的统计,LFA FRR可以实现备份保护的拓扑场景覆盖率为80%90%

图2 LFA FRR无法计算备份保护路径

 

2.1.3  RLFA FRR

1. RLFA FRR算法机制

为了提升LFA FRR算法的场景覆盖率,RFC 7490定义了一种RLFA FRRRemote Loop-Free Alternate Fast Reroute,远端无环路备份快速重路由)技术。RLFA FRR算法的关键也是找到一个远端节点作为无环绕行节点,即RLFA节点,流量从PLR转发到该RLFA节点之后可以不经过保护链路或保护节点到达目的节点。相对于LFA FRR算法,RLFA FRR算法找到的保护节点并未限定是PLR的邻居,提供了更多保护可能性。因此,RLFA FRR的场景覆盖率提升到了95%99%

3所示的拓扑为例,对于从源节点Src经过最优路径至目的节点Dst的业务流,当我们需要保护BE之间的链路时,可选取最优路径上被保护链路的上游直连节点B作为PLR,在PLR节点上开启RLFA FRR功能。

RLFA FRR算法为了找到RLFA保护节点,定义了如下概念:

·     P空间:以PLR为根节点建立SPF树,所有从根节点不经过被保护链路或被保护节点可达的节点集合称为P空间。图中P空间中的节点包括SrcBC

·     扩展P空间:以PLR的邻居节点(被保护节点除外)为根节点分别建立SPF树,所有从根节点不经过被保护链路或被保护节点可达的节点集合称为扩展P空间。P空间包含在扩展P空间范围内。扩展P空间内的节点定义为P节点,PLR的邻居节点定义为N节点。下图中扩展P空间节点包括SrcBCDP节点满足如下无环路条件:DistanceNP)<DistanceNPLR+DistancePLRP)。

·     Q空间:以目的节点Dst为根节点建立反向SPF树,所有从根节点不经过被保护链路或被保护节点可达的节点集合称为Q空间(如果从根节点到该节点存在等价路径,等价路径不能经过保护链路或节点)。Q空间内的节点为Q节点。下图中Q空间的节点包括DstE、和DQ节点满足如下条件:DistanceQDst)<DistanceQPLR+DistancePLRDst

·     PQ交集:P节点和Q节点的交集,该交集节点可以作为RLFA保护节点。如果存在多个P节点和Q节点的交集,一般选取距离PLR节点较近的作为RLFA保护节点。

图3 RLFA FRR概念示意图

 

仍以3所示的拓扑为例,如果B节点运行LFA FRR算法,作为PLR的邻居节点C不满足无环路条件:DistanceCDst)<DistanceCPLR+DistancePLRDst),因此LFA FRR算法无法为保护链路BE提供FRR备份。

B节点运行RLFA FRR算法,可以计算得到的备份路径,如4所示,RLFA FRR算法步骤如下:

(1)     由网络管理员确定业务流量从源到目的所经过的最优路径,在该路径上确认需要保护的链路(BE)或需要保护的节点(E节点),再选取上述最优路径上与保护链路或保护节点直连的上游节点(B节点)作为PLR

(2)     缺省情况下,PLR优先选取可以实现节点保护的RLFA节点:

a.     计算保护节点E的扩展P空间,包括SrcBCD

b.     计算保护节点EQ空间,只包括Dst

c.     扩展P空间和Q空间不存在交集节点,因此RLFA FRR算法找不到RLFA保护节点,无法计算节点保护的备份路径。继续第(3)步计算链路保护的备份路径。如果P空间和Q空间存在交集节,选取距离PLR节点较近的作为RLFA保护节点,并直接进行第(4)步。

(3)     PLR计算可以实现链路保护的RLFA节点:

a.     计算保护链路的扩展P空间,包括SrcBCD

b.     计算保护链路的Q空间,包括DstE、和D

c.     扩展P空间和Q空间的交集节点为D,选取D作为RLFA保护节点。

(4)     网络管理员在全网设备上开启MPLS LDPPLR上将自动建立一条到RLFAMPLS LDP隧道,同时指定该隧道的下一跳为PLR邻居节点C。这条隧道作为RLFA FRR备份保护路径写入FIB转发表,当保护链路或保护节点故障的时候,快速切换到RLFA FRR备份保护路径。

图4 RLFA FRR备份保护示意图

 

2. RLFA FRR算法面临的问题

RLFA FRR虽然将场景覆盖率提升到95%99%,但且仍然无法做到100%备份保护。例如4拓扑中将CD之间链路cost值调整为100,则RLFA FRR算法计算得到的PQ空间不存在交集节点。因此,无法计算出备份保护路径,RLFA FRR技术也无法实现拓扑无关。

2.1.4  TI-LFA FRR简介

TI-LFA FRR利用了SR的源路由机制,使得PLR节点上可以指定一条显式路径作为FRR的备份路径,并且严格限制这条路径不经过保护链路或保护节点。

TI-LFA FRR继承了RLFA FRR技术中计算PQ节点的算法。当PQ空间不存在交集节点,TI-LFA FRR算法可以计算出一条约束路径用来指示如何从P空间到达Q空间,这条约束路径称为Repair List

相较于RLFA FRR技术而言,TI-LFA FRR算法可以解决PQ空间不存在交集节点时FRR备份路径计算问题。因此,TI-LFA FRR算法可以实现100%的场景覆盖,实现拓扑无关的FRR备份保护。

2.1.5  TI-LFA FRR路径计算

TI-LFA FRR路径计算时存在两种场景:

·     扩展P空间和Q空间不存在交集节点。此时,Repair List是由“故障收敛后的SPF树的最后一个P节点的End SID+SPF树最后一个P节点到第一个Q节点路径上的所有End.X SID”组成的SID List,如果故障收敛后的SPF树的最后一个P节点与PLR直连,则Repair List中不需要添加最后一个P节点的End SID,仅包括End.X SID

·     当扩展P空间和Q空间存在交集节点。此时,存在至少一个节点同时属于扩展P空间和Q空间,说明从该节点无需通过被保护链路或被保护节点,即可到达目的节点、PLRPLR的邻居节点。此时TI-LFA FRR算法与RLFA FRR算法相同,Repair List为空或者仅包括“故障收敛后的SPF树上最后一个P节点的End SID”。如果故障收敛后的SPF树的最后一个P节点与PLR直连,则Repair List中为空,否则,Repair List包含一个End SID对这种情况此处不再详细讨论。

5所示的拓扑为例,扩展P空间和Q空间无交集。Src为源节点,Dst为目的节点,业务流量从源节点到目的节点的最优路径为SrcABDst。当我们需要保护B节点或者AB之间的链路时,可选取最优路径上被保护节点的上游直连节点A作为PLR,在PLR节点上开启TI-LFA FRR功能。

图5 TI-LFA FRR节点保护组网示意图

 

TI-LFA FRR算法缺省情况下,优先为保护节点计算FRR备份路径,计算过程如下:

(1)     PLR节点为去往目的节点Dst的流量计算一条FRR备份路径,PLR将最优路径上直连的下一跳节点当作故障节点并排除后计算出一条故障收敛后的最优路径,即ACDEFDst

(2)     计算扩展P空间:参考RLFA FRR算法,计算针对保护节点B的扩展P空间,P节点包括SrcACD

(3)     计算Q空间:参考RLFA FRR算法,计算针对保护节点BQ空间,Q节点包括DstF。此时扩展P空间和Q空间无交集。

(4)     计算Repair ListRepair List用来约束报文的转发路径,避免报文转发过程的环路问题。此时,Repair List包括故障收敛后的最优路径上扩展P空间最后一个节点DEnd SIDX),DE链路的End.X SIDY)以及EF链路的End.X SIDZ)。

(5)     计算备份出接口:即收敛后的最优路径中PLR节点上的报文出接口。

上述计算得到的TI-LFA FRR备份路径可以同时保护节点BAB之间的链路,PLR将这条TI-LFA FRR备份路径写入FIB转发表中。

但如果5所示的拓扑中去掉了F节点变为6所示拓扑时,TI-LFA FRR算法无法为保护节点B计算出FRR备份路径。此时,TI-LFA FRR算法仍然不会放弃,它继续为保护链路AB计算FRR备份路径。

图6 TI-LFA FRR链路保护组网示意图

 

TI-LFA FRR为保护链路AB计算FRR备份路径的计算过程如下:

(1)     PLR节点为去往目的节点Dst的流量计算一条FRR备份路径,PLR将最优路径上直连的链路当作故障链路并排除后计算出一条故障收敛后的最优路径,即ACDEBDst

(2)     计算扩展P空间:参考RLFA FRR算法,计算针对保护链路AB的扩展P空间,P节点包括SrcACD

(3)     计算Q空间:参考RLFA FRR算法,计算针对保护链路ABQ空间,Q节点包括DstBE。此时扩展P空间和Q空间无交集。

(4)     计算Repair List:此时Repair List包括故障收敛后的最优路径上扩展P空间最后一个节点DEnd SIDX)和DE链路的End.X SIDY)。

(5)     计算备份出接口:即收敛后的最优路径中PLR节点上的报文出接口。

上述计算得到的TI-LFA FRR备份路径可以保护AB之间的链路,PLR将这条TI-LFA FRR备份路径写入FIB转发表中。

2.1.6  TI-LFA FRR转发流程

TI-LFA备份路径计算完成之后,如果主路径发生故障,就可以根据备份路径进行转发,避免流量丢失。

图7 TI-LFA FRR备份路径转发流程图

 

7所示网络拓扑中,在A节点开启TI-LFA FRR功能,当AB之间的链路发生故障后,触发FRR切换到备份路径,详细过程如下:

(1)     源节点Src:发送IPv6报文,报文的源地址为Src,目的地址为Dst。源节点查找IPv6 FIB表将报文转发给下一跳A

(2)     APLR):接收到IPv6报文后,A发现去往下一跳B的主路径故障,使用TI-LFA FRR备份路径转发报文,节点A为原始IPv6报文插入SRH扩展头,SRHSID List包含原目的地址DstTI-LFA FRR备份路径的Repair ListYX),并将SL设为2节点A根据SRH更新目的地址DA=X,并将报文从AC的备份接口转发给C

(3)     C节点:接收到SRv6报文后,发现报文的目的地址是XX不是Local SID,查找IPv6 FIB表,按正常IPv6报文转发流程将报文转发到下一跳D

(4)     D节点:接收到SRv6报文后,发现报文目的地址XLocal SID中的End SID,将SL1,并更新目的地址DA=YYLocal SID中的End.X SID,将SL再减1,更新目的地址DA=Dst,此时SL=0,节点D去除SRH扩展报文头。D节点根据End.X SID对应转发动作,将报文从End.X SID对应的DE接口转发出去。

(5)     E节点:接收到报文后,发现报文目的地址为Dst,直接查找IPv6 FIB表,按正常IPv6报文转发流程将报文转发到目的节点Dst。至此,备份路径转发报文成功。

提示

管理员可以配置TI-LFA FRR的报文封装方式,TI-LFA FRR的报文封装方式支持InsertEncaps两种方式,此处仅以缺省的Insert方式说明报文封装和转发过程。

缺省情况下,TI-LFA FRR采用Insert封装模式添加Repair List,即:

·     对于SRv6报文:在原有IPv6基本头和SRH之间插入新的SRH,新的SRH包含Repair List中所有SID信息。

·     对于普通IPv6报文:将原IPv6基本头的目的地址替换为Repair List中的第一个SID,并添加SRHSRH包含Repair List中所有SID信息。

配置TI-LFA FRR采用Encap封装模式添加Repair List,即在原始报文的基础上封装新的IPv6基本头和SRH

·     IPv6基本头的目的地址为Repair List中的第一个SID,源IPv6地址为用户手工指定的IPv6地址。

·     SRH包含Repair List中所有SID信息

 

2.2  SRv6防微环

在全互联的组网环境中,IGP协议在无序收敛时可能会产生环路。但这种环路会在转发路径上所有设备都完成收敛之后消失,这种暂态的环路被称为微环。微环可能导致网络丢包、时延抖动和报文乱序等一系列问题。

SRv6防微环是采用一种对网络影响比较小的方式来消除网络中潜在的环路。SRv6防微环工作机制为:如果网络拓扑变化可能引发环路,网络节点通过创建一个无环的SRv6 Segment List,引导流量转发到目的地址,等待网络节点全部完成收敛以后再回退到正常转发状态,从而有效地消除网络中的环路。

2.2.1  正切防微环

正切微环指的是收敛前路径向收敛后路径切换时,不同节点的收敛时序不同导致短时环路问题。

8所示,A节点为源节点,B节点为故障节点,C为目的节点,链路中间的数字表示cost值。所有节点均开启TI-LFA FRR功能,TI-LFA FRR计算出一条保护B节点的FRR备份路径:ADEFC

B节点故障时,从A节点到C的流量将切换到TI-LFA计算的备份路径转发:

(1)     节点A感知到故障,进入TI-LFA的快速重路由切换流程,向报文插入Repair List <e>,将报文转向TI-LFA计算的PQ节点E。因此报文会先转发到下一跳节点D。此时Segment List中的SID为:<ce>

(2)     当节点A完成到目的地址C的路由收敛,则直接查找节点C的路由,将报文转发到下一跳节点D,此时不再携带Repair List,而是直接基于目的地址c进行转发。

(3)     如果此时节点D还未完成收敛,当节点A向节点D转发报文时,节点D的转发表中到节点C的路由下一跳还是节点A,这样就在节点A和节点D之间形成了环路。

图8 正切微环故障场景

 

正切微环发生在节点A完成收敛,退出TI-LFA流程,变成正常转发,而网络中其他节点还未完成收敛期间。因此,只需要节点A延时收敛,就可以解决这个场景下的环路问题。因为TI-LFA一定是个无环路径,所以只需要维持一段时间按照TI-LFA路径转发,待网络中其他节点完成收敛以后再退出TI-LFA,即可避免正切微环。

8所示,在所有节点部署正切防微环功能,B节点故障后的收敛流程如下:

(1)     节点A感知到故障,进入TI-LFA流程,报文沿着备份路径转发,下一跳为节点D,并封装Repair List <e>

(2)     节点A启动一个定时器。在定时器超时前,节点A不响应拓扑变化,转发表不变,报文依旧按照TI-LFA策略转发。网络中其他节点正常收敛。

(3)     节点A的定时器超时,这时网络中其他节点都已经完成收敛,节点A也正常收敛,退出TI-LFA流程,按照正常收敛后的路径转发报文。

2.2.2  回切防微环

回切防微环是指故障节点或链路恢复后最优的路径变为可用,业务从当前非最优路径切换到恢复后最优的路径时,不同节点的收敛时序不同导致短时环路问题。

9所示,在节点B和节点C之间的链路故障恢复后,节点B和节点D之间可能产生环路,环路产生过程为:

(1)     节点A将报文按照路径ABCEF发送到目的节点F。当BC之间的链路发生故障之后,A节点会将报文按照重新收敛之后的路径ABDEF发送到目的节点F

(2)     节点B和节点C之间的链路故障恢复后,如果节点D率先完成收敛,则节点A将报文转发给节点B,由于节点B未完成收敛,依然按照故障恢复前路径转发,转发给节点D

(3)     节点D已经完成收敛,所以节点D按照故障恢复后的路径转发到节点B,这样就在节点B和节点D之间形成了环路。

图9 回切微环故障场景

 

为了解决回切微环,D节点在完成路由收敛时,需要通过SRH构造一条严格显式路径保证报文从D节点经过故障恢复后的链路到目的节点F不出现环路。构造无环路径时,无需指定节点D到节点B的路径。节点C到节点F也不会受B-C链路Up事件的影响,节点CF的路径也一定是无环路径。唯一受影响的是节点B到节点C的路径,所以要计算节点D到节点F的无环路径,只需要指定节点B到节点C的路径即可。根据上述分析,只需要在节点D收敛后的路径中插入一个节点B到节点CEnd.X SID指示报文从节点B转发到节点C,就可以保证节点D到节点F的路径无环。但是,实际上节点D无法预知故障恢复的链路具体是哪一条,例如,故障恢复链路为CE之间链路,则需要在节点D收敛后的路径中插入一个节点C到节点EEnd.X SID。因此D节点构造的严格显式路径应该包括收敛后最优路径上从邻居节点开始到目的节点之间的所有End.X SID

10所示,部署回切防微环后的收敛过程如下:

(1)     节点B和节点C的链路故障恢复后,节点D率先完成收敛。

(2)     节点D启动定时器,在定时器超时前,节点D为访问节点F的报文计算的防微环Segment List<e, c, b>

(3)     节点A将报文转发给节点B,由于节点B未完成收敛,依然按照故障恢复前路径,将报文转发给节点D

(4)     节点D在报文中插入防微环Segment List <e, c, b>,并将报文转发给节点B

(5)     节点B根据End.X SID b指令执行转发动作,即沿着End.X SID b指定的出接口将报文转发到节点C,并将SL1

(6)     节点C和节点ESegment List将报文转发到目的节点F

图10 回切防微环示意图

 

2.3  SRv6中间节点保护

2.3.1  TI-LFA FRR失效场景

SRv6 TE Policy中,经常要约束数据报文在网络中的转发路径,需要指定报文沿途经过的节点或链路。如11所示,节点A要发送报文到节点F,要求转发路径需要经过节点D。当节点D故障的时候,由于备份路径仍旧必须经过节点DTI-LFA FRR也无法达到保护的效果。

图11 TI-LFA失效场景示意图

 

2.3.2  SRv6中间节点保护

为了解决SRv6 TE Policy场景由于严格节点约束导致的TI-LFA FRR保护失效问题,需要由中间节点(Midpoint)的上游节点代替它完成这个转发处理,这个上游节点称之为代理转发(Proxy Forwarding)节点。代理转发节点感知到报文的下一跳接口故障,并且下一跳是报文目的地址,且SL>0时,代理转发节点代替中间节点将SL1,并将下层要处理的SID更新到外层IPv6报文头,然后按照下层SID的指令进行转发,从而绕过故障节点,实现SRv6中间节点故障的保护。

12例,节点A向目的节点F转发报文,并在SRH中指定经过中间节点D。节点D故障的时候,SRv6中间节点故障的保护过程介绍如下:

(1)     节点D故障时,其上游节点B感知到报文下一跳节点故障,而下一跳正好是报文当前的目的地址d,且此时SL>0,所以节点B执行代理转发行为,将SL1,并将下层SID f复制到外层IPv6报文头的目的地址字段。此时由于SL=0,节点B可以去掉SRH扩展报文头,然后根据目的地址f查表转发。

(2)     由于目的地址f的主下一跳依然是节点E,但是节点B不是该目的地址的倒数第二跳,且SL=0,所以节点B不再符合代理转发条件,而是按照正常TI-LFA转发流程切换到备份路径转发,备份路径的Repair List<c1>,所以节点B为报文封装Segment List,经过备份路径转发到节点F

(3)     在节点A感知到节点D故障,且IGP完成收敛以后,节点A删除到节点D的路由转发表项,所以节点A根据d查表转发的时候,无法命中路由,此时节点A就要作为代理转发节点执行代理转发行为,SL1,并将下层SID f更新到外层IPv6报文头,然后根据目的地址f查表转发到节点B。节点B如果完成收敛,则按照收敛后的最短路径将报文转发到节点F;节点B如果未完成收敛,则按照TI-LFA流程经过备份路径转发到节点F通过上述方式,就绕过了故障节点D

图12 SRv6中间节点故障保护示意图

 

2.3.3  中间节点保护和TI-LFA FRR的区别

13所示,节点A发送报文携带Segment List<e, f>。由于TI-LFA FRR是根据报文目的地址计算一条备份路径,所以TI-LFA计算的备份路径也经过节点E。如果节点E故障,TI-LFA FRR无法实现保护。而SRv6中间节点保护是根据下层SID计算的备份转发路径,所以它能绕过故障的中间节点E,从而实现了SRv6 TE Policy的中间节点故障保护功能。

图13 中间节点保护和TI-LFA FRR的区别示意图

 

2.4  SRv6尾节点保护功能

2.4.1  SRv6尾节点保护的应用场景

IP L3VPN/EVPN L3VPN/EVPN VPLS/EVPN VPWS over SRv6 TE Policy组网中,公网隧道为SRv6 TE Policy隧道。SRv6 TE Policy的尾节点发生故障,会导致报文转发失败,所以需要为SRv6 TE Policy的尾节点提供保护。

SRv6 TE Policy尾节点保护仅适用于双归属的网络场景,且要求尾节点和对尾节点进行保护的节点上具有相同的转发表项。

14所示,在PE 1PE 3之间部署SRv6 TE PolicyPE 3SRv6 TE Policy的尾节点,为了增强可靠性,PE 4PE 3提供保护。

图14 SRv6 TE Policy尾节点保护示意图

 

2.4.2  End.M SID

SRv6 TE Policy尾节点保护场景中,End.M SID用于保护指定的Locator,即保护指定Locator段内的SRv6 SID。如果远端设备发布的SRv6 SID在指定Locator段的范围内,则使用End.M SID对该SRv6 SID(称为远端SRv6 SID)进行保护。在不同组网环境中,End.M SID对应的转发动作不同:

(1)     IP L3VPN over SRv6 TE/EVPN L3VPN over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SIDVPN实例的映射表,找到对应VPN实例,在该VPN实例的路由表中查表转发。

(2)     EVPN VPWS over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SID与交叉连接的映射表,找到对应交叉连接,通过该交叉连接关联的AC转发报文。

(3)     EVPN VPLS over SRv6 TE尾节点保护场景:End.M SID对应的转发动作为剥掉外层IPv6报文头,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SIDVSI的映射表,找到对应VSI,在该VSI内查找MAC地址表转发。

2.4.3  远端SRv6 SID

2.4.1  14所示,PE 4PE 3收到BGP路由后,如果BGP路由中的SRv6 SIDPE 4End.M SID保护的Locator范围内,则该SRv6 SID为远端SRv6 SID,同时在PE 4上生成远端SRv6 SIDVPN实例/交叉连接/VSI的映射表。

PE 3故障时,PE 4PE 3之间邻居中断,会导致PE 4PE 3收到的BGP路由删除,进而导致远端SRv6 SIDVPN实例/交叉连接/VSI的映射表被删除,造成丢包。为了避免上述情况,可以在PE 4上延迟删除远端SRv6 SIDVPN实例/交叉连接/VSI的映射表,在PE 1感知到PE 3故障并计算出新的转发路径前,保证流量通过PE 4转发,避免丢包。

2.4.4  路由发布

IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6 TE尾节点保护场景的路由发布过程类似,下面以IP L3VPN over SRv6 TE尾节点保护场景为例进行介绍。

2.4.1  14所示,P 1FRR路径的生成过程为:

(1)     PE 4通过IS-ISv6路由向邻居P 1发布End.M SID和被保护的Locator,同时PE 4上生成End.M SIDLocal SID表。

(2)     P 1收到携带End.M SID的路由后,生成到达指定LocatorFRR路由信息,动作为压入End.M SID。该FRR路由对应的转发路径为Mirror FRR路径。

2.4.1  14所示,PE 4上远端SRv6 SIDVPN实例的映射表生成过程为:

(1)     PE 3收到CE 2发布的私网路由之后,封装成VPNv4路由发送给PE 4,路由携带SRv6 SIDRTRD信息。

(2)     PE 4PE 3收到VPNv4路由后,获取到该VPN实例对应的SRv6 SIDPE 4使用该SRv6 SIDEnd.M SID保护的Locator段进行最长匹配。如果匹配上,则该SRv6 SID为远端SRv6 SID,在PE 4上生成远端SRv6 SIDVPN实例的映射表。

2.4.5  报文转发

IP L3VPN/EVPN L3VPN/EVPN VPWS/EVPN VPLS over SRv6 TE尾节点保护场景的报文转发过程类似,下面以IP L3VPN over SRv6 TE尾节点保护场景为例进行介绍。

15所示,正常情况下,流量经过路径CE 1-PE 1-P 1-PE 3-CE 2转发。当尾节点PE 3故障时,报文转发过程为:

(1)     P 1感知到下一跳PE 3不可达,切换为FRR路径。P 1为报文封装IPv6报文头,其目的地址为End.M SID,然后转发给PE 4

(2)     PE 4接收到报文后,查询Local SID表,匹配到End.M SIDPE 4执行End.M SID对应的转发动作,即解封装报文,获取到内层报文信息。内层报文的目的IPv6地址作为远端SRv6 SID,查询远端SRv6 SIDVPN实例的映射表,找到对应VPN实例1。然后,在PE 4上查询VPN实例1的路由表将流量转发给CE 2

图15 SRv6 TE Policy尾节点保护转发示意图

 

参考文献

·     draft-ietf-rtgwg-segment-routing-ti-lfa-05

新华三官网
联系我们