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

08-Segment Routing配置指导

目录

03-SRv6配置

本章节下载 03-SRv6配置  (795.71 KB)

03-SRv6配置

目 

1 SRv6基础

1.1 SRv6简介

1.2 SRv6基本概念

1.2.1 SR节点

1.2.2 SRv6 SID组成

1.2.3 节点行为(SRv6 Endpoint Behavior)

1.2.4 SID附加行为

1.2.5 Local SID表

1.2.6 Segment List

1.2.7 SRv6报文

1.2.8 SRv6报文转发过程

2 G-SRv6

2.1 产生背景

2.2 G-SRv6简介

2.3 32bit G-SRv6压缩方案

2.3.1 32bit压缩方案中G-SID格式

2.4 16bit G-SRv6压缩方案

2.4.1 16bit G-SRv6压缩方案基本概念

2.4.2 支持NEXT附加行为的16bit压缩G-SRv6方案

3 BGP-EPE

3.1 BGP-EPE简介

3.2 BGP-EPE的原理

4 TI-LFA FRR

4.1 TI-LFA FRR产生背景

4.2 TI-LFA FRR相关概念

4.3 TI-LFA FRR路径计算

4.4 TI-LFA FRR转发流程

4.5 正切防微环

4.6 回切防微环

5 协议规范

6 SRv6的配置

6.1 SRv6配置任务简介

6.2 SRv6配置准备

6.3 配置普通的SRv6 SID

6.4 配置G-SID

6.4.1 在coc32类型Locator中配置SRv6 SID

6.4.2 在coc16类型Locator中配置SRv6 SID

6.4.3 配置GIB的长度

6.5 配置SRv6 SID附加行为是倒数第二个SRv6节点不移除SRH

6.6 配置SRH封装模为普通模式

6.7 配置动态End.X SID延迟删除功能

6.8 配置封装的IPv6报文头的源地址

6.9 配置通过IGP通告SRv6 SID

6.10 配置通过BGP通告Locator网段的路由

6.11 配置BGP-EPE

6.11.1 开启SRv6的BGP-EPE功能

6.11.2 配置BGP-EPE引用的Locator

6.11.3 配置BGP-EPE SRv6 Peer Set组

6.12 配置SRv6 Local SID的流量转发统计功能

6.13 配置TI-LFA FRR

6.13.1 TI-LFA FRR配置任务简介

6.13.2 开启TI-LFA FRR功能

6.13.3 配置接口不参与TI-LFA计算

6.13.4 开启FRR正切防微环功能

6.13.5 配置SR防微环功能

6.14 配置SRv6的MTU

6.15 配置SRv6的差分服务模式

6.16 SRv6显示和维护

6.16.1 显示SRv6基本配置信息

6.16.2 显示SRv6 BGP EPE信息

6.16.3 显示IS-IS SRv6信息

6.16.4 显示OSPFv3 SRv6信息

6.16.5 显示和清除SRv6 Local SID的流量转发统计信息

6.17 SRv6典型配置举例

6.17.1 IS-IS TI-LFA FRR配置举例

 


1 SRv6基础

1.1  SRv6简介

SR(Segment Routing,段路由)采用源节点路径选择机制,预先在源节点封装好路径所要经过段的SID(Segment Identifier,段标识),当报文经过SR节点时,该节点根据报文的SID对报文进行转发。除源节点外,其它节点无需维护路径状态。SRv6是指在IPv6网络中使用SR、将IPv6地址作为SID对报文进行转发。

1.2  SRv6基本概念

1.2.1  SR节点

支持SRv6功能的设备被称为SR节点。其中,负责选择路径,并将路径转换成一个有序的SID列表封装到扩展报文头中的节点称为源节点;负责传输封装报文的节点称为中间节点;负责剥离封装的扩展报文头、并将报文转发给目的网络的出口节点称为尾节点。

1.2.2  SRv6 SID组成

在SRv6中,SID用来定义某种网络功能、代表网络指令。这种SID采用IPv6地址形式,但不与任何设备上的接口地址对应。该SID被称为SRv6 SID。

图1-1所示,SRv6 SID由Locator、Function、Arguments和MBZ四部分组成:

·     Locator:标识SID所属的网段。SRv6节点通过IGP等路由协议将Locator标识的IPv6网段发布到网络中,帮助其他设备将报文转发到该SRv6节点,因此Locator通常用于SRv6节点的路由和寻址。Locator在SR域内唯一。

·     Function:标识与SID绑定的本地操作指令。当某个SRv6节点接收到SRv6报文,同时该SRv6节点发现报文的IPv6目的地址与本地Local SID表中某个SRv6 SID值相同,则该SRv6节点分析SRv6 SID的Function字段,再找到Function对应的设备本地操作指令并执行相关操作。例如,SRv6节点上配置了opcode 101 end-x interface A表示SRv6 SID的Function部分的取值为101,对应的是设备本地操作指令为End.X,如果SRv6报文目的地址和本地这个SRv6 SID值相同,则执行End.X指令对应的转发行为,即从End.X标识的链路接口A转发报文。

·     Arguments:定义报文的流和服务等信息,在SRv6 SID中为可选字段。

·     MBZ(Must be zero):当Locator、Function和Arguments的位数之和小于128bits时,其他位使用0补齐。

图1-1 SRv6 SID

 

每一个具体的SRv6 SID都是从locator命令配置SRv6 Locator段中分配,因此,SRv6 Locator段的类型和长度规划不同,SRv6 SID也各不相同,通常情况下,在SRv6报文中封装的是128bit SRv6 SID,这种SRv6 SID可以从普通类型的Locator中分配:

图1-2 普通类型的Locator示意图

 

从普通类型的Locator可以分配普通SRv6 SID,普通SRv6 SID又分为静态SRv6 SID和动态SRv6 SID,其格式分别为:

·     静态SRv6 SID=ipv6-prefix+0+opcode+0。其中ipv6-prefixlocator命令中由ipv6-addressprefix-length指定的IPv6地址前缀,所占位数为prefix-length;0所占位数位为128减去prefix-lengthstatic-length再减去args-lengthopcode为Function字段中的静态段,所占位数为static-length;0所占位数为args-length

·     动态SRv6 SID=ipv6-prefix+dynamic+static+0。其中ipv6-prefixlocator命令中由ipv6-addressprefix-length指定的IPv6地址前缀,所占位数为prefix-lengthdynamic为Function字段中的动态段,取值不能为全0,所占位数位为128减去prefix-lengthstatic-length再减去args-lengthstatic为Function字段中的静态段,所占位数为static-length,可以取任意值;0所占位数为args-length

例如,配置locator test1 ipv6-prefix 100:200:DB8:ABCD:: 64 static 24 args 32时,表示:

·     Locator为100:200:DB8:ABCD::,长度为64

·     静态段占用24位

·     Args占用32位

·     动态段占用8位

由此可以计算出静态SRv6 SID范围和动态SRv6 SID范围:

·     静态SRv6 SID起始值=100:200:DB8:ABCD:0:1::

·     静态SRv6 SID结束值=100:200:DB8:ABCD:FF:FFFF::

·     动态SRv6 SID起始值=100:200:DB8:ABCD:100::

·     动态SRv6 SID结束值=100:200:DB8:ABCD:FFFF:FFFF::

1.2.3  节点行为(SRv6 Endpoint Behavior)

SRv6 SID的Function字段所标识的本地操作指令本质上是一种指导报文转发和处理的节点行为,这种本地操作指令称为SRv6 Endpoint Behavior节点行为。RFC 8986中为大部分不同类型的节点行为定义了指令码的取值。从网络配置的角度看,不同的节点转发行为也可以理解为不同类型的SRv6 SID,SRv6 SID的类型包括但不限于:

·     End SID:用于标识网络中的某个目的地址前缀。

·     End.X SID:用于标识网络中的某条链路。

·     End.DT4 SID:类似于MPLS L3VPN网络中的私网标签,用于标识特定的IPv4 VPN实例。End.DT4 SID的转发行为是解封装报文,并且查找该SID标识的IPv4 VPN实例,根据VPN实例路由表转发报文。End.DT4 SID用于IPv4私网用户接入场景。

·     End.DT6 SID:类似于MPLS L3VPN网络中的私网标签,用于标识特定的IPv6 VPN实例。End.DT6 SID的转发行为是解封装报文,并且查找该SID标识的IPv6 VPN实例,根据VPN实例路由表转发报文。End.DT6 SID用于IPv6私网用户接入场景。

·     End.DT46 SID:类似于MPLS L3VPN网络中的私网标签,用于标识特定的IPv4 VPN实例或IPv6 VPN实例。End.DT46 SID用于IPv4和IPv6私网用户同时接入场景。

·     End.DX4 SID:用于标识网络中特定IPv4 VPN实例中PE-CE的某个IPv4下一跳。End.DX4 SID对应的转发动作是解封装报文,并且将解封后的IPv4报文通过该SID绑定的三层接口转发给特定下一跳。End.DX4 SID用于IPv4私网用户接入场景。

·     End.DX6 SID:用于标识网络中特定IPv6 VPN实例中PE-CE的某个IPv6下一跳。End.DX6 SID对应的转发动作是解封装报文,并且将解封后的IPv6报文通过该SID绑定的三层接口转发给特定下一跳。End.DX6 SID用于IPv6私网用户接入场景。

·     End.DX2 SID:End.DX2 SID表示EVPN VPWS over SRv6场景的二层交叉连接,用于标识一个端点。End.DX2 SID对应的转发动作是解封装SRv6报文,再将剩余二层报文转发到SID对应的出接口。

·     End.DX2L SID:End.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DX2L SID对应的转发动作是去掉IPv6报文头及其扩展头,然后将剩余报文转发到SID对应的出接口。End.DX2L SID主要用于EVPN VPWS over SRv6多归属站点组网。

·     End.DT2M SID:End.DT2M SID表示EVPN VPLS over SRv6场景中BUM流量的二层交叉连接且进行广播泛洪的SID,用于标识一个端点。End.DT2M SID对应的转发动作是解封装SRv6报文,再将剩余二层报文在VSI内广播泛洪。

·     End.DT2U SID:End.DT2U SID表示二层交叉连接且进行单播MAC表查找功能的SID,用于标识一个端点。End.DT2U SID对应的转发动作是去掉IPv6报文头及其扩展头,然后使用剩余报文的目的MAC地址查找MAC表,根据MAC表项将报文转发到对应的出接口。End.DT2U SID可以用于EVPN VPLS单播场景。

·     End.DT2UL SID:End.DT2UL SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。End.DT2UL SID对应的转发动作是去掉IPv6报文头及其扩展头,然后使用剩余报文的目的MAC地址查找MAC表,根据MAC表项将报文转发到对应的出接口。End.DT2UL SID主要用于EVPN VPLS over SRv6多归属站点组网。

·     End.M SID:用于SRv6 TE Policy尾节点保护场景。有关End.M SID的详细介绍,请参见“Segment Routing配置指导”中的“SRv6 TE Policy”。

·     End.OP SID:用于SRv6 OAM场景。有关End.OP SID的详细介绍,请参见“Segment Routing”中的“SRv6 OAM”。

·     End.AS SID:用于SRv6 SFC服务链静态代理场景。有关End.AS SID的详细介绍,请参见“Segment Routing配置指导”中的“SRv6 SFC”。

·     End.AM SID:用于SRv6 SFC服务链伪代理场景。有关End.AM SID的详细介绍,请参见“Segment Routing配置指导”中的“SRv6 SFC”。

·     End.B6.Encaps:用于在SRv6源节点引流到SRv6 TE Policy或者使用BSID缝接SRv6 TE Policy的场景,执行的节点行为是为接收到的报文封装新的IPv6头和SRH头。

·     End.B6.Encaps.Red:用于在SRv6源节点引流到SRv6 TE Policy或者使用BSID缝接SRv6 TE Policy的场景,执行的节点行为是为接收到的报文封装IPv6头和SRH时,SRv6 TE Policy的SID列表中的第一个SID不封装在SRH中,其他SID封装到SRH中,以便减少SRH的长度。

·     End.B6.Insert:用于在SRv6源节点引流到SRv6 TE Policy或者使用BSID缝接SRv6 TE Policy的场景,执行的节点行为是在接收到的IPv6报文中插入SRH头。

·     End.B6.Insert.Red:用于在SRv6源节点引流到SRv6 TE Policy或者使用BSID缝接SRv6 TE Policy的场景,执行的节点行为是在接收到的IPv6报文中插入SRH,且SRv6 TE Policy的SID列表中的第一个SID不封装在SRH中,其他SID封装到SRH中,以便减少SRH的长度。

·     End.DTM SID:用于将SRv6 TE Policy的BSID被缝接到SR-MPLS TE Policy的SID列表中,SRv6 TE Policy的SID列表的最后一个SID类型必须为End.DTM类型SID。End.DTM类型SID的流量转发动作是解封装SRH,并且解析内层报文的MPLS Label,通过查询MPLS NHLFE转发表转发报文。

·     End.BM SID:用作SR-MPLS TE Policy的BSID,可以将SR-MPLS TE Policy的BSID(End.BM SID类型的SID)被缝接到SRv6 TE Policy的SID列表中,在SRv6报文通过SRv6 TE Policy转发时,如果当前目的地址中SID为End.BM SID类型的SID,则在SRv6外层直接封装SR-MPLS TE Policy的最优候选路径的MPLS标签栈,根据报文封装的MPLS标签栈转发SRv6报文。当MPLS标签栈全部弹出后继续按照SRv6报文头转发报文。

通过IGP协议通告SR节点的SRv6 SID后,其他SR节点可以根据收到的路由协议报文生成到达该SRv6 SID的路由转发表项。

1.2.4  SID附加行为

SID附加行为(Flavors)可以改变SRv6 SID的转发行为,以便适配多种业务需求。目前,支持的SRv6 SID附加行为包括:

·     PSP(penultimate Segment POP of the SRH):倒数第二个SRv6节点执行SRH移除操作。为了减轻SRv6网络尾节点的负担,提高转发效率,可以在倒数第二个SRv6节点将SRH移除,尾节点不需要查看SRH信息,只需根据目的IPv6地址查找Local SID表进行处理。

·     NO PSP:倒数第二个SRv6节点不执行SRH移除操作。

·     USP(Ultimate Segment POP of the SRH):最后一个Endpoint节点执行SRH移除操作。SRv6 VPN网络中,PE节点根据SID查找到对应的转发动作后,执行SRH移除操作,将报文转发给CE设备。

·     USD(Ultimate Segment Decapsulation):最后一个Endpoint节点执行外层IPv6头移除操作。TI-LFA场景中,Repair List的最后一个Endpoint节点需要将外层IPv6头移除,将内层报文转发到目的节点。

·     NEXT:标识本SID是16bit压缩的G-SID。携带NEXT附加行为的SID转发时支持“位移”操作,即SRv6报文转发到Endpoint节点上,当本Endpoint节点的Local SID携带NEXT附加行为,并且当前G-SID不是IPv6目的地址中最后一个G-SID时,可以将下一个G-SID“位移”到当前G-SID所在的位置,按照下一个G-SID指导G-SRv6报文进行转发。

NEXT附加行为在封装报文和转发报文时存在不同含义:

¡     在封装报文时,用于标识本SID是16bit压缩的G-SID,需要将G-SID封装到SRv6报文中。

¡     在转发报文时,携带NEXT附加行为的SID转发时支持“位移”操作。

1.2.5  Local SID

运行SRv6的节点维护一个Local SID表,记录本节点生成的SRv6 SID信息。Local SID表主要用于:

·     保存本地生成的SRv6 SID转发信息。

·     存储对SRv6 SID的操作方式。

1.2.6  Segment List

Segment List是包含报文转发路径信息的SID列表。

1.2.7  SRv6报文

SRv6的报文封装格式为:在原始三层数据报文前面添加新的IPv6基本头和SRH(Segment Routing Header,SRv6报文头)。SRH是路由类型取值为4的一种路由扩展头。如图1-3所示,IPv6基本头中Next Header取值为43,表明下一个报文头为路由扩展头。路由扩展头的路由类型字段取值为4,表明该路由扩展头为SRH。SRH主要包含以下几个部分:

·     Next Header:8bits,用来标识下一个报文头的类型。

·     Hdr Ext Len:8bits,表示以8个字节为单位的SRH头的长度,不包括前8个字节。

·     Routing Type:8bits,路由类型字段,取值为4,表示携带的是SRH。

·     Segments Left:8bits,标识需要查看的下一个SID的编号,初始取值为n-1(n表示路由扩展头中SID的数目),每经过一个节点减1。

·     Last Entry:8bits,SRH头中报文实际转发路径的第一个SID的编号。

·     Flags:8bits,标志位信息。

·     Tag:16bits,用来标记具有相同特性的一组报文。

·     Segment List:SID列表。按照报文转发路径上节点从远到近的顺序进行排列,即Segment List [0]表示路径的最后一个SID,Segment List [1]表示路径的倒数第二个SID,以此类推。

图1-3 SRv6的报文封装示意图

 

1.2.8  SRv6报文转发过程

图1-4所示,SRv6隧道报文转发过程如下:

(1)     源节点Device A收到IPv6报文后,查找路由表判定此报文需要通过SRv6隧道模式的Tunnel接口转发,并将报文发给相应的Tunnel接口。

(2)     Tunnel接口收到此IPv6报文后,执行如下操作对报文进行封装:

¡     封装SRH头。由于从Ingress到Egress的跳数为3,因此,SRH中SL为跳数-1,即SL=2。封装的SID列表信息为Segment List [0]=D、Segment List [1]=C、Segment List [2]=B,即按照节点由远及近的顺序进行排列。

¡     封装IPv6头。IPv6头中的源地址为隧道的源端地址,目的地址为SL指示的地址,即SL为2时表示SRH中Segment List [2]对应的地址(本例中为Device B的地址)。

(3)     Device A根据封装的IPv6头中的目的地址查找路由表,将封装后的报文转发给Device B。

(4)     Device B收到报文后,首先检查IPv6头中目的地址的SID类型:

¡     对于End.X SID,根据End.X SID获取出接口和下一跳信息。

¡     对于其他类型SID,无任何操作。

然后检查SRH头中的SL值,并将SL值减1,同时查找Segment List [1]对应的地址,即Device C的地址,并使用Device C的地址替换IPv6头中的目的地址。

(5)     对于End.X SID,Device B根据获取的出接口和下一跳信息,直接将封装后的报文转发给Device C。对于其他类型SID,Device B根据封装的IPv6头中的目的地址查找路由表,将封装后的报文转发给Device C。

(6)     Device C收到报文后,执行(4)、(5)步的操作,将报文发给Device D。

(7)     尾节点Device D收到报文后,检查SRH头中的SL值,发现SL=0。对报文进行解封装,删除封装报文头,根据原始报文的目的地址进行报文转发。

图1-4 SRv6隧道报文转发示意图

 


2 G-SRv6

2.1  产生背景

在SRv6 TE Policy组网场景中,管理员需要将报文转发路径上的SRv6节点的128-bit SRv6 SID添加到SRv6 TE Policy的SID列表中。因此,路径越长,SRv6 TE Policy的SID列表中SRv6 SID数目越多,SRv6报文头开销也越大,导致设备转发效率低、芯片处理速度慢。在跨越多个AS域的场景中,端到端的SRv6 SID数目可能更多,报文开销问题更加严峻。

Generalized SRv6(G-SRv6)通过对128-bit SRv6 SID进行压缩,在SRH的Segment List中封装更短的SRv6 SID(G-SID),来减少SRv6报文头的开销,从而提高SRv6报文的转发效率。同时,G-SRv6支持将128-bit SRv6 SID和G-SID混合编排到Segment List中。

2.2  G-SRv6简介

部署SRv6时,通常会规划出一个地址块,专门用于SID的分配,这个地址块称为SID Space。在一个SRv6域中,SID均从SID Space中分配,具有相同的前缀(即公共前缀Common Prefix)。因此,SRH中SID的公共前缀是冗余信息。

G-SRv6将Segment List中SRv6 SID的Common Prefix移除,仅携带SRv6 SID中的可变部分,即压缩SID(G-SID),可以有效减少SRv6报文头开销。报文转发过程中,在根据SRH头中的Segment List替换报文的目的地址时,将G-SID与Common Prefix拼接形成新的目的地址,继续查表转发。封装了G-SID的SRH被称为G-SRH。

G-SRv6对SRv6 SID进行压缩时,H3C当前支持两种G-SRv6压缩方案:

·     16bit G-SRv6压缩方案:128-bit SRv6 SID在SRH中封装时被压缩为16bit G-SID。

·     32bit G-SRv6压缩方案:128-bit SRv6 SID在SRH中封装时被压缩为32bit G-SID。

2.3  32bit G-SRv6压缩方案

2.3.1  32bit压缩方案中G-SID格式

1. G-SID格式简介

图2-1所示,SRv6 SID的Locator部分可以细分为Common Prefix和Node ID,其中Common Prefix表示公共前缀地址;Node ID表示节点标识。具有相同Common Prefix的SRv6 SID可以进行压缩,形成32-bit G-SID。32-bit G-SID由128-bit SRv6 SID中的Node ID和Function组成。128-bit SRv6 SID和32-bit G-SID的转换关系为:128-bit SRv6 SID = Common Prefix + 32-bit G-SID + 0 (Args&MBZ)。

图2-1 支持压缩的SRv6 SID格式图

 

32bit压缩方案中的G-SID可以从coc32类型的Locator的Locator中分配。

2. coc32类型的Locator

图2-2 coc32类型的Locator中的G-SID示意图

 

coc32类型的Locator可以分配带COC标记的SRv6 SID(即End(COC32) SID、End.X(COC32) SID)和不带COC标记的普通SRv6 SID。这些SRv6 SID既可以在静态段内手工指定,也可以通过IGP协议在动态段内自动分配。例如,配置locator test1 ipv6-prefix 100:200:DB8:ABCD:1111:: 80 common-prefix 64 coc32 static 8 args 16时,G-SID包括Node ID、动态段和静态段,其长度固定为32位。此时,SRv6 SID总长度不足128bit,最后16位为MBZ,全部为0。其中:

·     Locator为100:200:DB8:ABCD:1111::,长度为64

·     公共前缀长度为64

·     静态段占用8位

·     Args占用16位

·     动态段占用8位

·     MBZ占16位

由此可以计算出静态SRv6 SID范围和动态SRv6 SID范围:

·     静态SRv6 SID起始值=100:200:DB8:ABCD:1111:1::

·     静态SRv6 SID结束值=100:200:DB8:ABCD:1111:FF::

·     动态SRv6 SID起始值=100:200:DB8:ABCD:1111:100::

·     动态SRv6 SID结束值=100:200:DB8:ABCD:FFFF::

2.4  16bit G-SRv6压缩方案

2.4.1  16bit G-SRv6压缩方案基本概念

1. 16bit压缩的G-SID格式

图2-3所示,在16bit压缩方案中,SRv6 SID同样由Locator、Function和Args三部分构成:

SRv6 SID的Locator部分细分为公共前缀和Node ID,其中:

·     Block:表示公共前缀,又称为Locator Block,是G-SRv6报文的压缩冗余部分,长度为32bit;

·     Node ID:为节点标识,又称为Locator Node,其长度固定为16bit。Node ID会通过IGP随着Locator发布给域内所有节点,其他节点学习到Block和Node ID组成的Locator路由前缀后可以基于Block和Node ID进行路由寻址。

SRv6 SID的Function部分并不会通过路由发布。因此,Function部分仅在节点本地用于指导报文的转发行为。Function部分细分为压缩Function段(Compressed Function)和非压缩Function段(Non-Compressed Function):

·     Compressed Function:压缩Function段,固定长度为16bit,从这段地址空间中可以分配携带NEXT附加行为的G-SID。在固定的16bit压缩Function段中又根据SID的分配方式,分为动态压缩G-SID(Dynamic部分)和静态压缩G-SID(Static部分,Static部分长度可以通过命令指定)。

·     Non-Compressed Function:非压缩Function段,这段地址空间中通常用于分配不携带附加行为的普通SRv6 SID。

图2-3 16bit压缩方案中的G-SID结构示意图

 

2. 严格显式路径和松散显式路径

通常情况下,具有相同公共前缀的SRv6 SID可以进行压缩,只需将G-SID中的16bit Node ID或16bit的压缩Function段作为G-SID封装到G-SRv6报文中即可实现对SRv6报文的压缩。

对于某个SRv6 Endpoint节点,可以将该节点本地SRv6 SID的16bit Node ID部分作为G-SID封装到G-SRv6报文中,也可以将16bit压缩Function段这部分作为G-SID封装到G-SRv6报文中,还可以同时将Node ID部分和压缩Function段都封装到G-SRv6报文中。如图2-4所示,具体的封装方式取决于实际场景:

·     松散显式路径场景:根据上一跳的SID不足以将报文转发到本节点的场景。例如,SRv6转发路径上两个Endpoint节点不相邻,上一个Endpoint节点使用End.X类型的G-SID也无法严格限制报文转发到本节点的路径,此时,G-SRv6报文封装本节点的G-SID时,必须封装本节点Local SID的Node ID用于路由寻址,再根据业务需求等情况决定是否封装Local SID的Function部分来控制转发行为。

·     严格显式路径场景:根据上一跳的SID能够将报文转发到本节点的场景。例如,与本节点相邻的上一节点使用本地End.X类型的G-SID指示转发路径时,报文可以根据End.X绑定的出接口下一跳转发到本节点,此时,G-SRv6报文中仅需封装本节点Local SID的压缩Function部分,而无需封装Node ID,就可以使报文按照Local SID压缩Function部分绑定的转发行为转发报文。

图2-4 严格显式路径和松散显式路径示意图

 

3. 封装G-SID的Container

在G-SRv6报文中用于存放G-SID的一个128bit空间称为G-SID的容器即Container,G-SRv6报文IPv6基本报文头中的128bit的目的地址可以作为Container来存放多个G-SID,SRH扩展头中每个128bit的SID也可以作为Container。

4. GIB和LIB空间

当源节点将转发路径上各Endpoint节点的Node ID或压缩Function部分作为16 bits G-SID封装到G-SRv6报文中,H3C通过16 bits G-SID高4bit的16种不同取值来区分该G-SID是Endpoint节点Local SID的Node ID部分还是压缩Function部分。

图2-5所示,16 bits G-SID高4bit的16种不同取值范围来划分出了两个不重叠的子空间GIB(Global Identifiers Block,全局G-SID空间)和LIB(Local Identifiers Block,本地G-SID空间):

·     GIB空间中的G-SID即Endpoint节点Local SID的Node ID部分,缺省情况下,GIB空间中G-SID的高4bit取值为0x0~0xD(即二进制的0000~1101,数量为14),即当G-SID高4bit取值为0x0~0xD时,该G-SID为某个Endpoint节点Local SID的Node ID部分,该G-SID用来实现Endpoint节点的路由寻址功能。

·     LIB空间中的G-SID即Endpoint节点Local SID的Node ID部分,缺省情况下,LIB空间中G-SID的高4bit取值为0xE~0xF(即二进制的1110~1111,数量为2),即当G-SID高4bit取值为0xE~0xF时,该G-SID为某个Endpoint节点Local SID的压缩Function部分,该G-SID用来标识和区分Endpoint节点上不同转发指令。

缺省情况下,GIB空间G-SID数量和LIB空间的G-SID数量比例为14:2,,可以通过命令来自定义调整GIB空间和LIB空间的比例。

图2-5 GIB和LIB空间示意图

 

5. coc16类型的Locator

为了规划和分配16bit压缩的G-SID,H3C定义了一种coc16类型的Locator段。从coc16类型的Locator段地址空间中可以分配16bit压缩的G-SID。根据G-SID分配方式的差异、G-SID携带的附加行为差异,又定义了Next模式的coc16类型Locator:

·     Next模式的coc16类型Locator:分配携带NEXT附加行为的SID。Next模式的coc16类型Locator只用于分配支持“位移”这种操作的G-SID,仅用于和某些第三方厂商的16bit压缩G-SRv6方案互通。

2.4.2  支持NEXT附加行为的16bit压缩G-SRv6方案

1. 16bit压缩G-SRv6报文封装

如果转发节点较少且拥有相同的公共前缀Block的情况下,可以将G-SID和公共前缀Block封装在IPv6基本头的目的地址中,无需封装SRH。当转发路径上的节点较多或者转发路径上节点存在不同的公共前缀Block,则必须要封装SRH扩展头。

图2-6所示,从节点R1到节点R11存在3个不同的公共前缀Block,R2~R5公共前缀为Block 1,R6~R8公共前缀为Block 2,R9~R11公共前缀为Block 3。封装G-SRv6报文时,需要将不同公共前缀Block分别封装在三个Container中。

图2-6 16bit压缩G-SRv6报文封装示意图

 

2. 16bit压缩G-SRv6报文转发

图2-6所示场景为例介绍报文转发的流程。请注意G-SRv6报文转发流程的关键取决于Local SID所携带的附加行为,只有本地Endpoint节点配置了携带合适的附加行为的SID才能实现G-SRv6报文正常转发。

本方案中,G-SRv6报文转发流程中执行“位移”动作。具体转发流程如下:

(1)     在源节点R1上,G-SRv6报文完成封装后,R1根据报文的IPv6报文的目的地址查找路由表项,按照最长掩码匹配发现Block 1+G-SID 0为R2节点的Locator地址网段,因此,根据路由表中对应的出接口和下一跳将报文转发到节点R2。

(2)     节点R2按照最长掩码匹配发现Block 1+G-SID 0+G-SID 1为本地End.X SID,并且该SID携带了NEXT附加行为,于是执行“位移”操作,将Container中G-SID 1之后的其他G-SID往前“位移”到公共前缀Block 1之后,Container最后若干位填充0生成EOC。R2按照End.X SID绑定的出接口将报文转发到节点R3。

(3)     对于所有16bit压缩转发路径上Endpoint节点都存在一种特殊的本地G-SID表项,与普通Local SID不同的是,本地G-SID表项中的G-SID可以由公共前缀Block+压缩Function段生成,也可以公共前缀Block+压缩Function段+Wlib空间生成,而无需Node ID部分。节点R3按照最长掩码匹配发现目的地址Block 1+G-SID 2是本地G-SID表项,绑定的转发行为也是End.X,并且G-SID携带了NEXT附加行为,因此,R3将Container中G-SID 2之后的其他G-SID往前“位移”到公共前缀Block之后,Container最后若干位填充0生成EOC。R3按照End.X SID绑定的出接口将报文转发到节点R4。

(4)     节点R4重复执行上述步骤,直到G-SRv6报文转发到节点R5。R5按照最长掩码匹配规则发现IPv6目的地址Block+G-SID 4是本地G-SID表项,并且该G-SID未携带NEXT附加行为,表示下一个SID为128bit普通的SID。G-SID 4是当前Container中最后一个G-SID,G-SID 4之后为全0的EOC。此时,SL等于1,R5将SID[1]更新到目的地址中,再将SL减1。最后R5根据Block+G-SID 4绑定的End.X转发行为,将报文从出接口转发到R6。

(5)     节点R6到R10重复上述的转发,直到G-SRv6报文转发到R11,R11作为尾节点,G-SID 10是Container中最后一个SID,当前Container结束,由于SL当前已为0,因此,结束SRv6报文处理,按照G-SID 10对应的转发行为解封装SRv6报文,查询VPN路由表,将解封装后的报文转发到VPN中。

 


3 BGP-EPE

3.1  BGP-EPE简介

通过扩展的IGP协议通告SRv6 SID仅能实现在自治系统域内的SID编排,并基于SID列表规划出合理的转发路径。但是,在跨越多个AS的大规模网络中,仅基于IGP for SRv6不能编排跨域SID组成的转发路径。此时,需要通过扩展BGP协议支持SRv6来实现自治系统域间的SID分配和发布。

BGP-EPE(BGP Egress Peer Engineering,BGP出口对等体工程)就是一种BGP for SRv6的扩展,它用来为BGP对等体和对等体的域间路径分配BGP Peer SID。Peer SID通过扩展的BGP LS收集并传递给SDN控制器。SDN控制器通过对IGP SID和BGP Peer SID进行合理编排,生成跨域的报文转发路径。通常情况下,在多个自治系统组成的跨域网络中,每个自治系统内都需要至少一台转发设备与SDN控制器建立BGP-LS连接,但无需所有转发器均与SDN控制器建立BGP-LS连接。与SDN控制器建立了BGP-LS连接的转发设备收集自治系统内部的所有IGP SID和BGP Peer SID,并通过BGP-LS将SID传递给SDN控制器,从而完成全网信息的收集。

3.2  BGP-EPE的原理

BGP-EPE为BGP对等体和对等体的域间路径分配SID时支持自动分配和手工指定两种方式。如图3-1所示,BGP-EPE能够针对对等体分配以下SID:

·     PeerNode SID:用于标识节点的一个BGP-EPE对等体。BGP-EPE会为每个BGP对等体分配PeerNode SID。如果基于Loopback接口建立EBGP邻居,则BGP-EPE对等体之间可能存在多条物理链路,对于该邻居的PeerNode SID会存在多个出接口。基于PeerNode SID转发时,会在多个出接口间负载分担。

·     PeerAdj SID:用于标识到达BGP-EPE对等体的一个邻接链路。如果基于Loopback接口建立EBGP邻居,则可能存在多条物理链路,BGP-EPE会为每条链路分配一个PeerAdj SID。基于PeerAdj SID转发时,只能通过指定出接口进行转发。

·     PeerNode-Adj SID:既可用于标识一个对等体节点,也可以标识到达对等体的一条或多条邻接链路。

·     PeerSet SID:用于标识一组对等体。BGP支持将一组对等体规划为一个Set,基于该组分配SID,这个SID称为PeerSet SID。基于PeerSet SID转发时,会在多个邻居间负载分担。一个PeerSet SID对应多个PeerNode SID和PeerAdj SID。

图3-1 BGP-EPE示意图

 

图3-1所示,BGP-EPE的标签分配方式为:

·     ASBR 1和ASBR 3间存在两条直连物理链路,二者通过LoopBack接口建立EBGP邻居,BGP-EPE针对对等体分配了PeerNode SID 100:AB::1,为物理链路分配了PeerAdj SID 100:AB:1::2和100:AB:1::3。当通过PeerNode SID转发流量时,会在两条链路间负载分担。

·     ASBR 1和ASBR 5,ARBR 2和ASBR 4,以及ASBR 2和ASBR 5使用直连物理接口建立EBGP邻居,BGP-EPE为对等体只分配了PeerNode SID 100:AB::2,100:AB::4和100:AB::5。

·     ASBR 4、ASBR 5均和ASBR 2建立EBPG邻居关系,BGP-EPE将对等体ASBR 4和ASBR 5加入同一Set组,为其分配PeerSet SID 100:AB::3。当通过PeerSet SID转发流量时,会在多个邻居间负载分担。

通过BGP-EPE功能为邻居分配的SID仅具有本地意义,不会向其他设备通告,因此不受BGP对等体间交换路由信息类型的影响。


4 TI-LFA FRR

TI-LFA FRR(Topology-Independent Loop-free Alternate Fast Reroute,拓扑无关无环备份快速重路由)能为Segment Routing隧道提供链路及节点的保护。当某处链路或节点故障时,流量会快速切换到备份路径继续转发,从而最大程度上避免流量的丢失。

4.1  TI-LFA FRR产生背景

为了最大程度减少路由重新收敛过程中的流量丢包,网络管理员选取被保护链路的直连节点或被保护节点的直连设备开启FRR(Fast Reroute,快速重路由)功能,这个开启了FRR功能的设备节点称为PLR(Point of Local Repair,本地修复节点)。PLR节点在计算到达目的路由的最短路径的同时,将自动计算一条FRR备份路径写入FIB转发表中,当保护的链路或节点故障时,通过PLR节点的FRR备份路径转发流量,而无需等待网络拓扑中路由重新收敛,因此可以最大程度避免流量丢包。按出现时间先后顺序,FRR的算法机制有以下几种:

·     LFA FRR(Loop-Free Alternate Fast Reroute,无环备份快速重路由)。LFA FRR计算备份路径的关键是找到一个PLR的邻居保护节点(LFA节点),使得流量从PLR转发到该LFA节点之后可以不经过被保护链路或被保护节点,就可以到达目的节点。在某些场景中,特别是一些环形组网拓扑中,使用LFA FRR无法计算出备份保护路径,因此LFA FRR技术无法实现拓扑无关。根据RFC 6571的统计,LFA FRR可以实现备份保护的拓扑场景覆盖率为80%~90%。

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

·     适用于SRv6组网和SR-MPLS组网的TI-LFA FRR(Topology-Independent Loop-Free Alternate Fast Reroute,拓扑无关无环备份快速重路由)。相对于传统LFA FRR技术和RLFA FRR技术,TI-LFA FRR的意义在于它实现了“拓扑无关”,即FRR备份路径计算不再受限于网络拓扑,只要存在可供绕行的转发路径,PLR节点就可以100%自动计算出TI-LFA FRR备份路径。

图4-1所示,数据报文需要从节点A发往节点F。当节点B和节点E之间发生故障后,节点B将数据报文转发给节点C。由于节点C和节点D之间开销是100,且节点C上路由还未收敛,因此节点C认为到达节点F的最优路径的下一跳是节点B。节点C将数据报文重新转回到节点B,形成环路。

图4-1 TI-LFA应用场景示意图

 

在SRv6网络中部署TI-LFA,可以解决上述问题。如图4-2所示,当节点B和节点E之间发生故障后,节点B启用TI-LFA计算的备份路径,为报文指定显式路径B->C->D->E,保证报文可以沿着备份路径转发。

图4-2 TI-LFA转发示意图

 

4.2  TI-LFA FRR相关概念

TI-LFA FRR继承了RFC7490中RLFA FRR算法定义的一些关键概念:

·     P空间:是指对于被保护链路/被保护节点,在故障拓扑收敛前,从PLR不经过该被保护链路/被保护节点(包括等价路径)的前提下可达的节点集合。P空间内的节点被称为P节点。P节点的计算一般是以PLR为根节点建立SPF树,在SPF树上查找满足无环校验公式的节点。

·     扩展P空间:是指对于被保护链路/被保护节点,在故障拓扑收敛前,从PLR的邻居节点(被保护节点除外)不经过该被保护链路/被保护节点(包括等价路径)的前提下可达的节点集合。扩展P空间包含了P空间,扩展P空间的节点也被称为P节点。扩展P空间内的节点定义为P节点,PLR的邻居节点定义为N节点。下图中扩展P空间节点包括Src、B、C和D。P节点满足如下无环路条件:Distance(N,P)<Distance(N,PLR)+Distance(PLR,P)。

·     Q空间:是指对于被保护链路/被保护节点,在故障拓扑收敛前,从目的节点不经过该被保护链路/被保护节点(包括等价路径)的前提下可达的节点集合。Q空间内的节点被称为Q节点。

图4-3 TI-LFA FRR相关概念示意图

 

4.3  TI-LFA FRR路径计算

图4-4所示,PE 1为源节点,P 1节点为故障节点,PE 2为目的节点,链路中间的数字表示cost值。假设流量路径为:PE 1->P 1->PE 2,为避免P 1节点故障导致流量丢失,TI-LFA会计算出扩展P空间、Q空间、P 1故障收敛后的SPF树、Repair List和备份出接口,最终生成备份转发表项。

TI-LFA计算备份路径步骤如下:

(1)     计算扩展P空间:至少存在一个邻居节点到P节点的路径不经过故障链路的集合,即P 2。

(2)     计算Q空间:Q节点到目的节点不经过故障链路的集合,即PE 2和P 4。

(3)     计算收敛后的SPF树:计算P 1故障收敛后的SPF树,即P 1故障后的最优转发路径。SPF树为PE 1->P 2->P 4->PE 2。

(4)     计算Repair List:Repair List是一个约束路径,当P空间和Q空间没有交集时,用来指示如何到达Q节点,Repair List由“P节点的SRv6 SID+P节点到最近的Q节点路径上的SRv6 SID”组成。当P节点和源节点直连时,则Repair List中不需要添加P节点的SRv6 SID。如图4-4所示,Repair List为P 2和P 3间链路的End.X SID C、P 3和P 4间链路的End.X SID D。

(5)     计算备份出接口:PE 1到P 1链路故障后的下一跳出接口。

图4-4 TI-LFA典型组网图

 

4.4  TI-LFA FRR转发流程

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

图4-5所示,P 2为P节点,P 4和PE 2为Q节点。主下一跳P 1故障时,触发FRR切换到备路径,详细过程如下:

(1)     PE 1根据报文的目的IPv6地址查找IPv6路由表进行转发,下一跳为P 2,同时包含Repair List信息。PE 1根据Repair List构造报文并转发给P 2:

¡     封装SRH头。封装的SID列表信息为Segment List [0]=D、Segment List [1]=C,即按照节点由远及近的顺序进行排列。

¡     封装IPv6头。IPv6头中的源地址为源节点PE 1地址A,目的地址为SL指示的地址,即SL为1时表示SRH中Segment List [1]对应的地址C。

(2)     P 2收到报文后,检查SRH头中的SL值,并将SL值减1,同时查找Segment List [0]对应的地址,即P 3和P 4间链路的End.X SID D,并使用该End.X SID D替换IPv6头中的目的地址。P 2根据End.X SID C获取出接口和下一跳信息,将封装后的报文转发给P 3。

(3)     P 3收到报文后,检查SRH头中的SL值,发现SL=0,对报文进行解封装,并根据End.X SID D获取出接口和下一跳信息,将解封装后的报文转发给P 4。

(4)     P 4收到报文后,根据报文的目的IP地址查找IP路由表进行转发,将报文转发给目的节点PE 2。

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

 

4.5  正切防微环

图4-6所示,当Device B故障时,到Device C的流量将切换到TI-LFA计算的备份路径转发。Device A收敛后,到Device C的流量将沿着收敛后路径转发。此时,如果Device D和Device F还没有收敛,仍按照收敛前的路径转发流量,则Device A到Device F之间形成环路。

通过SR防微环功能可以解决上述问题。在Device A上开启该功能后,可以使Device A延迟一段时间收敛,在此期间使用SR防微环功能计算的路径转发流量。等待Device D和Device F收敛完成后,Device A再开始收敛。Device A收敛完成后,到Device C的流量沿将着收敛后路径转发,从而避免发生环路。

图4-6 正切防微环故障场景

 

4.6  回切防微环

图4-7所示,Device B和Device C之间的链路故障恢复前,数据流量沿着备份路径转发。当Device B和Device C之间的链路故障恢复后,如果Device A先于Device B收敛,则Device A会将流量转发给Device B,但是Device B没有收敛,仍旧沿着备份路径转发,这样Device A和Device B之间就会形成环路。

通过SR防微环功能可以解决上述问题。Device A在故障回切以后,会自动计算一条最优路径到达Device C,并按照该路径转发流量,即Device A在转发时为报文添加端到端路径信息(例如Device B到Device C的SRv6 SID),这样Device B收到报文后,根据报文中SRH里的路径信息将报文转发给Device C,避免环路的产生。

经过SR防微环延迟时间后,Device B节点完成收敛,Device A去除额外添加的路径信息,按正常方式将报文转发到Device C。

图4-7 回切防微环故障场景

 


5 协议规范

与IPv6 segment routing相关的协议规范有:

·     draft-previdi-6man-segment-routing-header

·     draft-ietf-6man-segment-routing-header

·     draft-filsfils-spring-segment-routing

·     draft-filsfils-spring-srv6-network-programming


6 SRv6的配置

6.1  SRv6配置任务简介

SRv6配置任务如下:

(1)     配置普通的SRv6 SID

(2)     配置G-SID

SRv6节点的SID需要压缩时,本功能必选。

(3)     (可选)管理SRv6 SID

¡     配置SRv6 SID附加行为是倒数第二个SRv6节点不移除SRH

¡     配置SRH封装模为普通模式

¡     配置动态End.X SID延迟删除功能

(4)     配置封装的IPv6报文头的源地址

(5)     配置通过IGP通告SRv6 SID

(6)     配置BGP for SRv6

¡     配置通过BGP通告Locator网段的路由

¡     配置BGP-EPE

(7)     (可选)配置SRv6高级功能

¡     配置SRv6 Local SID的流量转发统计功能

¡     配置TI-LFA FRR

¡     配置SRv6的MTU

¡     配置SRv6的差分服务模式

6.2  SRv6配置准备

在配置SRv6之前,需完成以下任务:

·     确定SRv6的源节点、中间节点和尾节点。

·     规划节点的IP地址。

6.3  配置普通的SRv6 SID

1. 配置限制和指导

不同Locator的名称不能相同。

不能为不同Locator配置相同的IPv6地址前缀和前缀长度,且不同Locator的IPv6地址前缀不能有重叠部分。

SRv6视图下的Locator段内存在正在被使用的动态SRv6 SID时,不能关闭SRv6功能和删除该Locator段。

SRv6报文转发时,SRv6隧道的中间节点和尾节点的单台设备只能处理一个End SID或End.X SID。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启SRv6功能,并进入SRv6视图。

segment-routing ipv6

(3)     配置Locator段,并进入SRv6 Locator视图

locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]

(4)     (可选)配置预留的SRv6 SID起始值。

reserved-sid-start sid-value count reserved-sid-count

缺省情况下,未配置预留的SRv6 SID。

设备根据接收到的SRv6 TE Policy路由生成SRv6 TE Policy时,需要为该SRv6 TE Policy分配BSID。通过本命令限制可以被分配的BSID范围,以保证该范围内的SRv6 SID不会被其他协议所占用。

仅R5220及以上版本支持本命令。

(5)     (可选)配置当前Locator为Anycast Locator。

anycast enable

缺省情况下,当前Locator不是Anycast Locator。

路由协议报文携带的Locator TLV中Flags字段的A-bit置位,表示该Locator为Anycast Locator,即一组SRv6节点具有相同的Locator。

(6)     配置Opcode段。

¡     配置End SID。

opcode { opcode | hex hex-opcode } end

¡     配置End.X SID。

opcode { opcode | hex hex-opcode } end-x interface interface-type interface-number nexthop { nexthop-ipv4-address | nexthop-ipv6-address } [ path-index index-value | weight weight-value ] *

仅R5212P01及以上版本支持nexthop-ipv4-address参数。

¡     配置End.DT4 SID。

opcode { opcode | hex hex-opcode } end-dt4 [ vpn-instance vpn-instance-name [ evpn | l3vpn-evpn ] ]

指定的VPN实例必须已经存在。不同VPN实例不能配置相同End.DT4 SID。

¡     配置End.DT6 SID。

opcode { opcode | hex hex-opcode } end-dt6 [ vpn-instance vpn-instance-name [ evpn | l3vpn-evpn ] ]

指定的VPN实例必须已经存在。不同VPN实例不能配置相同End.DT6 SID。

¡     配置End.DT46 SID。

opcode { opcode | hex hex-opcode } end-dt46 [ vpn-instance vpn-instance-name [ evpn | l3vpn-evpn ] ]

指定的VPN实例必须已经存在。不同VPN实例不能配置相同End.DT46 SID。

¡     配置End.DX4 SID。

opcode { opcode | hex hex-opcode } end-dx4 interface interface-type interface-number nexthop nexthop-ipv4-address [ vpn-instance vpn-instance-name [ evpn ] ]

指定的VPN实例必须已经存在,不同下一跳和出接口不能配置相同End.DX4 SID。

¡     配置End.DX6 SID。

opcode { opcode | hex hex-opcode } end-dx6 interface interface-type interface-number nexthop nexthop-ipv6-address [ vpn-instance vpn-instance-name [ evpn ] ]

指定的VPN实例必须已经存在,不同下一跳和出接口不能配置相同End.DX6 SID。

¡     配置End.DX2 SID。

opcode { opcode | hex hex-opcode } end-dx2 xconnect-group group-name connection connection-name

指定的交叉连接组和交叉连接必须已经存在。

opcode { opcode | hex hex-opcode } end-dx2 vsi vsi-name interface interface-type interface-number service-instance instance-id

指定的VSI必须已经存在。

¡     配置End.DX2L SID。

opcode { opcode | hex hex-opcode } end-dx2l xconnect-group group-name connection connection-name

指定的交叉连接组和交叉连接必须已经存在。

opcode { opcode | hex hex-opcode } end-dx2l vsi vsi-name interface interface-type interface-number service-instance instance-id

指定的VSI必须已经存在。

¡     配置End.DT2M SID。

opcode { opcode | hex hex-opcode } end-dt2m vsi vsi-name

指定的VSI必须已经存在。不同VSI不能配置相同End.DT2M SID。

¡     配置End.DT2U SID。

opcode { opcode | hex hex-opcode } end-dt2u vsi vsi-name

指定的VSI必须已经存在。不同VSI不能配置相同End.DT2U SID。

¡     配置End.DT2UL SID。

opcode { opcode | hex hex-opcode } end-dt2ul vsi vsi-name

指定的VSI必须已经存在。不同VSI不能配置相同End.DT2UL SID。

¡     配置End.M SID。

opcode { opcode | hex hex-opcode } end-m mirror-locator ipv6-address prefix-length

¡     配置End.OP SID。

opcode { opcode | hex hex-opcode } end-op

¡     配置End.DTM SID。

opcode { opcode | hex hex-opcode } end-dtm

R5220及以上版本支持本命令。

6.4  配置G-SID

6.4.1  在coc32类型Locator中配置SRv6 SID

1. 配置限制和指导

IPv6地址前缀长度必须大于公共前缀长度。

请确保流量的IPv6目的地址高80位与本机Locator不同,否则可能导致流量转发失败。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     开启SRv6功能,并进入SRv6视图。

segment-routing ipv6

(3)     开启SRv6压缩功能。

srv6 compress enable

缺省情况下,SRv6压缩功能处于关闭状态。

(4)     配置Locator段,并进入SRv6 Locator视图。

locator locator-name [ ipv6-prefix ipv6-address prefix-length common-prefix common-prefix-length coc32 [ static static-length ] ]

(5)     (可选)配置预留的SRv6 SID起始值。

reserved-sid-start sid-value count reserved-sid-count

缺省情况下,未配置预留的SRv6 SID。

设备根据接收到的SRv6 TE Policy路由生成SRv6 TE Policy时,需要为该SRv6 TE Policy分配BSID。通过本命令限制可以被分配的BSID范围,以保证该范围内的SRv6 SID不会被其他协议所占用。

(6)     配置Opcode段。

¡     配置End SID。

opcode opcode end-coc32 [ no-psp ]

¡     配置End.X SID。

opcode opcode end-x-coc32 interface interface-type interface-number nexthop { nexthop-ipv4-address | nexthop-ipv6-address } [ no-psp | path-index index-value | weight weight-value ] *

6.4.2  在coc16类型Locator中配置SRv6 SID

1. 功能简介

指定compress-16参数的Locator为coc16类型的Locator。这类Locator用于16bit G-SRv6场景中分配SID,当前支持的coc16类型的Locator为Next模式的Locator。用于从Compress Function地址空间中分配携带NEXT附加行为的G-SID或从Non-Compress Function地址空间中分配不携带NEXT附加行为的普通SID。H3C设备对接第三方设备时,如果第三方设备仅支持“位移”操作的16bit压缩G-SRv6封装方案,可以配置Next模式的Locator用于分配SID。

2. 配置限制和指导

请避免在16bit G-SRv6压缩的Locator段中配置service-sid-marking类型的Opcode。

3. 在Next模式的Locator配置SRv6 SID

(1)     进入系统视图。

system-view

(2)     开启SRv6功能,并进入SRv6视图。

segment-routing ipv6

(3)     开启SRv6压缩功能。

srv6 compress enable

缺省情况下,SRv6压缩功能处于关闭状态。

(4)     配置Next模式的Locator段,并进入SRv6 Locator视图。

locator locator-name [ ipv6-prefix ipv6-address prefix-length compress-16 next [ non-compress-static non-compress-static-length ] [ args args-length | static static-length ] * ]

(5)     配置Opcode段,即静态指定SRv6 SID并指定SID的转发行为和附加行为。

¡     配置从非压缩Function段中分配普通SRv6 SID,普通SRv6 SID不会携带NEXT附加行为。

具体配置请参见“6.3  配置普通的SRv6 SID”。

¡     配置从压缩Function段中分配携带NEXT附加行为的SRv6 SID。

opcode { opcode | hex hex-opcode } end compress next

SID的转发指令为End。

opcode { opcode | hex hex-opcode } end-x interface interface-type interface-number nexthop { nexthop-ipv4-address | nexthop-ipv6-address } compress next [ path-index index-value | weight weight-value ] *

SID的转发指令为End.X。

opcode { opcode | hex hex-opcode } end-dt4 [ vpn-instance vpn-instance-name [ evpn | l3vpn-evpn ] ] compress next

SID的转发指令为End.DT4。

opcode { opcode | hex hex-opcode } end-dt46 [ vpn-instance vpn-instance-name [ evpn | l3vpn-evpn ] ] compress next

SID的转发指令为End.DT46。

opcode { opcode | hex hex-opcode } end-dt6 [ vpn-instance vpn-instance-name [ evpn | l3vpn-evpn ] ] compress next

SID的转发指令为End.DT6。

opcode { opcode | hex hex-opcode } end-dx4 interface interface-type interface-number nexthop nexthop-ipv4-address [ vpn-instance vpn-instance-name [ evpn ] ] compress next

SID的转发指令为End.DX4。

opcode { opcode | hex hex-opcode } end-dx6 interface interface-type interface-number nexthop np-ipv6-address [ vpn-instance vpn-instance-name [ evpn ] ] compress next

SID的转发指令为End.DX6。

opcode { opcode | hex hex-opcode } end-dx2 xconnect-group group-name connection connection-name compress next

SID的转发指令为End.DX2。

opcode { opcode | hex hex-opcode } end-dx2 vsi vsi-name interface interface-type interface-number service-instance instance-id compress next

SID的转发指令为End.DX2。

opcode { opcode | hex hex-opcode } end-dx2l xconnect-group group-name connection connection-name compress next

SID的转发指令为End.DX2L。

opcode { opcode | hex hex-opcode } end-dx2l vsi vsi-name interface interface-type interface-number service-instance instance-id compress next

SID的转发指令为End.DX2L。

opcode { opcode | hex hex-opcode } end-dt2m vsi vsi-name compress next

SID的转发指令为End.DX2M。

opcode { opcode | hex hex-opcode } end-dt2u vsi vsi-name compress next

SID的转发指令为End.DX2U。

opcode { opcode | hex hex-opcode } end-dt2ul vsi vsi-name compress next

SID的转发指令为End.DX2UL。

6.4.3  配置GIB的长度

1. 功能简介

执行本功能可以配置GIB空间范围的长度,例如配置GIB长度为8,则LIB长度等于16-8=8,GIB和LIB的各有8个取值,执行locator命令配置coc16类型的Locator段时,Node ID的高4 bit范围是0x0~0x7(0000~0111);相应的压缩Function的高4 bit的范围是0x8~0xF(1000~1111)。

2. 配置限制和指导

请保证全网所有设备,包括非压缩的设备的GIB一致。

配置coc16类型的Locator后,GIB的长度不能修改,请先删除coc16类型的Locator,再修改GIB的长度。

3. 软件版本适配关系

仅R5220及以上版本支持本功能。

4. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     配置GIB的长度。

csid-proportion global-id-block gib-proportion-value

缺省情况下,GIB的长度为14。

6.5  配置SRv6 SID附加行为是倒数第二个SRv6节点不移除SRH

1. 功能简介

通过配置本功能可以统一修改所有SRv6 SID的附加行为,简化用户操作。SRv6 SID的附加行为包括如下几种:

·     PSP:倒数第二个SRv6节点移除SRH。为了减轻SRv6网络尾节点的负担,提高转发效率,可以在倒数第二个SRv6节点将SRH移除,尾节点不需要查看SRH信息,只需根据目的IPv6地址查找Local SID表进行处理。

·     NO-PSP:倒数第二个SRv6节点不移除SRH。网络中最后一个SRv6节点需要根据SRH中的SID执行对应的转发动作,对报文进行特殊处理。

2. 配置限制和指导

配置本功能后,需要重启设备才能生效。

通过本功能和opcode命令均可以修改SID附加行为。本功能对所有SID生效。opcode命令仅对指定的SID生效。如果同时配置,则flavor-mode switch no-psp命令优先生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     配置SRv6 SID附加行为是倒数第二个SRv6节点不移除SRH。

flavor-mode switch no-psp

缺省情况下,SRv6 SID附加行为是倒数第二个SRv6节点移除SRH。

6.6  配置SRH封装模为普通模式

1. 功能简介

通过SRv6方式转发报文时,需要为报文封装SRH。SRH的封装模式包括:

·     普通封装模式:SRH中包含转发路径上的所有SID信息。该封装模式可以通过报文中的SRH获取完整的路径信息。

·     简化封装模式:SRH中包含转发路径上除第一个SID外所有SID信息,转发路径中的第一个SID作为目的IPv6地址封装到IPv6头中。该封装方式可以减少SRH的长度。

配置本功能后,需要重启设备才能生效。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     配置SRH封装模为普通模式。

srh-mode switch normal

缺省情况下,SRH封装模式为简化模式。

6.7  配置动态End.X SID延迟删除功能

1. 功能简介

OSPFv3或IS-IS邻居关系震荡,为设备间链路动态分配的End.X SID会频繁地删除和申请,从而导致邻居间丢包。为了解决上述问题,可以配置本功能,当设备间邻居关系断开时,暂不删除动态分配的End.X SID,保证流量正常转发。当达到延迟删除时间后,如果设备间邻居关系仍然处于断开状态,则删除动态分配的End.X SID。

2. 配置限制和指导

执行以下操作后,不会等待延迟时间,将立即删除动态分配的End.X SID:

·     执行reset ospfv3 process命令。有关本命的详细介绍,请参见“三层技术-IP路由命令参考”中的“IS-IS”。

·     执行reset isis all命令。有关本命的详细介绍,请参见“三层技术-IP路由命令参考”中的“OSPFv3”。

·     接口删除,如接口板拔出、删除子接口和删除VLAN接口等。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入IS-IS IPv6地址族视图或OSPFv3视图。

¡     依次执行以下命令,进入IS-IS IPv6地址族视图。

isis [ process-id ] [ vpn-instance vpn-instance-name ]

address-family ipv6 [ unicast ]

¡     进入OSPFv3视图。

ospfv3 [ process-id | vpn-instance vpn-instance-name ] *

(3)     开启动态End.X SID延迟删除功能并配置延迟删除时间。

segment-routing ipv6 end-x delete-delay [ time-value ]

缺省情况下,动态End.X SID延迟删除功能处于开启状态,延迟删除时间为1800秒。

6.8  配置封装的IPv6报文头的源地址

1. 配置限制和指导

在SRv6组网环境中,必须指定封装的IPv6报文头的源地址。否则,无法通过SRv6转发数据流量。

配置源地址时,不能为环回地址、链路本地地址、组播地址和未指定地址。指定的源地址必须为本机地址,且已经由路由协议发布,建议指定本设备的Loopback接口地址。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     配置封装的IPv6报文头的源地址。

encapsulation source-address ipv6-address [ ip-ttl ttl-value ]

缺省情况下,未指定封装的IPv6报文头的源地址。

6.9  配置通过IGP通告SRv6 SID

1. 功能简介

通过引用Locator段,IGP协议可以通告Locator段内的SRv6 SID。

2. 配置准备

配置通过IS-IS通告SRv6 SID前,需要确保IS-IS开销值的类型为wide、compatible或wide-compatible。关于IS-IS开销值类型的配置请参见“三层技术-IP路由配置指导”中的“IS-IS”。

3. 配置通过IS-IS通告SRv6 SID

(1)     进入系统视图。

system-view

(2)     进入IS-IS视图。

isis [ process-id ] [ vpn-instance vpn-instance-name ]

(3)     进入IS-IS IPv6地址族视图。

address-family ipv6 [ unicast ]

(4)     引用Locator段。

segment-routing ipv6 locator locator-name [ level-1 | level-2 ] [ auto-sid-disable ]

缺省情况下,未引用Locator段。

多次配置本功能,可以引用多个Locator段,从而通告多个SRv6 SID。

(5)     (可选)配置IS-IS发布SRv6 L3 Service相关SID。

segment-routing ipv6 advertise l3-service-sid

缺省情况下,IS-IS不发布SRv6 L3 Service相关SID。

仅公网IS-IS进程支持配置本命令。

配置本命令后,IS-IS会在LSP中发布SRv6 L3 Service相关的SID,以便IS-IS将包含SRv6 L3 Service相关SID的链路状态信息上报给控制器,满足需要链路状态信息的各种应用需求。目前IS-IS仅支持发布End.DT4 SID、End.DT6 SID和End.DT46 SID。

4. 配置通过OSPFv3通告SRv6 SID

(1)     进入系统视图。

system-view

(2)     进入OSPFv3视图。

ospfv3 [ process-id | vpn-instance vpn-instance-name ] *

(3)     引用Locator段。

segment-routing ipv6 locator locator-name [ auto-sid-disable ]

缺省情况下,未引用Locator段。

多次配置本功能,可以引用多个Locator段,从而通告多个SRv6 SID。

(4)     (可选)配置SRv6 Locator TLV中的Locator字段为固定的128bit长度,兼容旧版本草案。

segment-routing ipv6 compatible locator-fixed-length

缺省情况下,SRv6 Locator LSA中的Locator字段为可变长度。

SRv6 Locator TLV中的Locator字段的长度在draft-ietf-lsr-ospfv3-srv6-extensions-12及以后版本草案中修改为可变长度,最长不超过128bit,Locator字段的长度可以根据配置的Locator段长度变化,但在draft-ietf-lsr-ospfv3-srv6-extensions-11及以前版本的草案中为固定的128 bit。

仅R5220及以上版本支持本命令。

6.10  配置通过BGP通告Locator网段的路由

1. 功能简介

在BGP跨域组网中,执行本配置后,BGP IPv6单播路由表中将生成指定Locator网段的路由,并通过BGP将该路由发布给BGP对等体。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     进入BGP IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(4)     配置在BGP IPv6单播路由表中生成指定Locator网段的路由,并发布给BGP对等体。

advertise srv6 locator locator-name [ route-policy route-policy-name ]

缺省情况下,不会在BGP IPv6单播路由表中生成Locator网段的路由。

6.11  配置BGP-EPE

6.11.1  开启SRv6的BGP-EPE功能

1. 功能简介

BGP-EPE用来为域间路径分配BGP Peer SID。Peer SID通过BGP LS扩展传递给网络控制器。控制器通过对IGP SID和BGP Peer SID进行合理编排,实现跨域最优路径转发。

在设备上配置BGP-EPE功能后,该设备为相连的BGP对等体/对等体组分配SID,用来标识与本设备相连的特定BGP邻居或链路。

通过本功能指定locator参数可以动态为对等体分配PeerNode SID和PeerAdj SID,指定static-sid参数可以为对等体手工静态指定PeerNode SID和PeerAdj SID的附加行为和分配方式。

2. 配置限制和指导

如果未指定任何参数,则在BGP实例下通过segment-routing ipv6 egress-engineering locator命令配置的BGP-EPE引用Locator段内为对等体动态分配SRv6 SID。

对于同一对等体,配置本功能时:

·     指定参数locator时,多次执行本命令,最后一次执行的命令生效。

·     指定参数static-sid时,可以多次执行本命令,分别配置不同类型SRv6 SID;对于同一类型SRv6 SID,多次执行本命令,最后一次执行的命令生效。

为对等体配置静态SRv6 SID时,指定的静态SRv6 SID必须在BGP实例视图下通过segment-routing ipv6 egress-engineering locator命令引用的Locator段内。用户可通过display bgp egress-engineering ipv6命令查看静态SRv6 SID是否生效。如果未生效,则表示该静态SRv6 SID已经被其他协议占用。静态SRv6 SID被其他协议占用以后,BGP EPE 不会再申请动态的SRv6 SID,待解除占用后,需要先执行undo peer egress-engineering srv6命令删除该静态SRv6 SID的配置,再执行peer egress-engineering srv6命令重新配置,该静态SRv6 SID才能生效。

通过本命令为对等体指定静态SRv6 SID和通过egress-engineering srv6 peer-set命令为BGP-EPE SRv6 Peer Set组指定静态SRv6 SID时,配置的静态SRv6 SID不能相同。

仅当引用的Locator段为coc16类型Locator时,nextpsp-usd-next参数才会生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     开启SRv6的BGP-EPE功能。请选择其中一项进行配置。

¡     适用于普通类型的Locator命令形式:

peer group-name egress-engineering srv6

peer ipv6-address [ prefix-length ] egress-engineering srv6 [ locator locator-name | static-sid { psp psp-sid | no-psp-usp no-psp-usp-sid | usp-usd usp-usd-sid } * ]

¡     适用于16bit G-SRv6压缩场景的Locator命令形式:

peer ipv6-address egress-engineering srv6 static-sid { psp psp-sid | no-psp-usp no-psp-usp-sid | usp-usd usp-usd-sid } *

peer ipv6-address egress-engineering srv6 static-sid compress { next next-sid | psp-usd-next psp-usd-next-sid } *

缺省情况下,SRv6的BGP-EPE功能处于关闭状态。

6.11.2  配置BGP-EPE引用的Locator

1. 功能简介

BGP-EPE引用Locator段用来限定BGP-EPE SRv6 Peer Set组和开启BGP-EPE功能的对等体所能分配的End.X SID范围。在BGP-EPE SRv6 Peer Set组和对等体下配置的静态SRv6 SID必须在本命令指定的Locator段范围内。

2. 配置限制和指导

配置本功能后,以下情况将从本功能指定的Locator段中动态分配End.X SID:

·     创建BGP-EPE SRv6 Peer Set组后,未配置静态SRv6 SID。

·     对等体配置了peer egress-engineering srv6命令,但未指定locator参数,也未配置静态SRv6 SID。

配置本功能时,如果Locator段下已经配置了静态SRv6 SID,则优先使用静态SRv6 SID;如果未配置静态SRv6 SID,则动态分配SRv6 SID。如果Locator段下配置的静态SRv6 SID是同一opcode值不同的出接口和下一跳的End.X SID,则BGP-EPE不会使用该静态SRv6 SID,而是会动态分配SRv6 SID。

引用coc16类型Locator时,分配的SID类型可能为:

·     BGP根据peer egress-engineering srv6命令和egress-engineering srv6 peer-set命令中static-sid参数静态指定的SID所携带的附加行为来分配SID。

·     如果egress-engineering srv6命令和egress-engineering srv6 peer-set命令中未指定static-sid参数,则BGP无法动态分配SID。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     配置BGP-EPE引用的Locator。

segment-routing ipv6 egress-engineering locator locator-name

缺省情况下,BGP-EPE未引用Locator。

6.11.3  配置BGP-EPE SRv6 Peer Set

1. 功能简介

当一台设备和多台设备建立BGP邻居关系时,可以手工规划邻居组,即将一组BGP邻居规划为一个Set,基于该组分配PeerSet SID。通过PeerSet SID转发流量时,可以在多个邻居间负载分担。

通过segment-routing ipv6 egress-engineering locator命令引用Locator段,再配置本命令可以为一组BGP邻居分配PeerSet SID,指定static-sid参数可以为BGP对等体手工静态指定PeerSet SID的附加行为和分配方式,不指定static-sid参数则动态为一组BGP邻居分配PeerSet SID。对于coc16类型Locator,仅支持指定static-sid参数来静态分配PeerSet SID,不支持动态分配PeerSet SID。

2. 配置准备

配置本功能前,对等体必须开启SRv6 BGP-EPE功能。

配置BGP-EPE SRv6 Peer Set组前,必须在BGP实例视图下通过segment-routing ipv6 egress-engineering locator命令配置BGP-EPE引用的Locator段:

·     从引用的Locator段内为BGP-EPE SRv6 Peer Set组动态分配SRv6 SID。

·     为BGP-EPE SRv6 Peer Set组静态指定SRv6 SID时,指定的静态SRv6 SID必须在引用的Locator段内。

对于同一Peer Set组,多次执行egress-engineering srv6 peer-set命令时:

·     不指定static-sid时,最后一次执行的命令生效。

·     指定参数static-sid时:

¡     对于同一类型Locator,最后一次执行的命令生效。

¡     对于不同类型Locator,多次执行本命令,可以分配多个不同类型的SRv6 SID

通过本命令为BGP-EPE SRv6 Peer Set组指定静态SRv6 SID和通过peer egress-engineering srv6命令为对等体指定静态SRv6 SID时,配置的静态SRv6 SID不能相同。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3)     创建BGP-EPE SRv6 Peer Set组。请选择其中一项进行配置。

¡     适用于普通类型Locator的命令形式:

egress-engineering srv6 peer-set peer-set-name [ static-sid { psp psp-sid | no-psp-usp no-psp-usp-sid | usp-usd usp-usd-sid } * ]

¡     适用于16bit G-SRv6压缩场景的Locator命令形式:

egress-engineering srv6 peer-set peer-set-name static-sid { psp psp-sid | no-psp-usd no-psp-usp-sid | usp-usd usp-usd-sid } *

egress-engineering srv6 peer-set peer-set-name static-sid coc-none { psp coc-none-psp-sid | no-psp-usp coc-none-no-psp-usp-sid | usp-usd coc-none-usp-usd-sid } *

egress-engineering srv6 peer-set peer-set-name static-sid compress { next next-sid | psp-usd-next psp-usd-next-sid } *

(4)     将对等体加入BGP-EPE SRv6 Peer Set组。

peer { ipv6-address [ prefix-length ] } peer-set srv6-peer-set-name

缺省情况下,对等体未加入BGP-EPE SRv6 Peer Set组。

不能通过重复执行peer peer-set命令修改对等体加入的BGP-EPE SRv6 Peer Set组。如需修改对等体加入的BGP-EPE SRv6 Peer Set组,请先通过undo peer peer-set命令将对等体从BGP-EPE SRv6 Peer Set组中删除,再执行peer peer-set命令将对等体加入新BGP-EPE SRv6 Peer Set组。

6.12  配置SRv6 Local SID的流量转发统计功能

1. 功能简介

配置本功能后,设备将对通过SRv6 Local SID转发的流量进行统计。对SRv6 Local SID转发的流量进行统计,可以达到对经过当前节点的SRv6转发流量预测和优化的目的,便于网络规划。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     开启SRv6 Local SID的流量转发统计功能。

local-sid forwarding statistics enable

缺省情况下,SRv6 Local SID的流量转发统计功能处于关闭状态。

(4)     (可选)配置SRv6 Local SID流量转发统计信息收集的时间间隔。

local-sid forwarding statistics interval interval

缺省情况下,SRv6 Local SID流量转发统计信息收集的时间间隔为30秒。

6.13  配置TI-LFA FRR

6.13.1  TI-LFA FRR配置任务简介

TI-LFA FRR配置任务如下:

(1)     开启TI-LFA FRR功能

(2)     (可选)配置接口不参与TI-LFA计算

禁止源节点设备上路由的主下一跳出接口参与TI-LFA计算。

(3)     (可选)开启FRR正切防微环功能

(4)     (可选)配置SR防微环功能

6.13.2  开启TI-LFA FRR功能

1. 开启IPv6 IS-IS的TI-LFA FRR功能

(1)     进入系统视图。

system-view

(2)     进入IS-IS视图。

isis process-id

(3)     进入IS-IS IPv6单播地址族视图。

address-family ipv6

(4)     开启 IPv6 IS-IS的LFA快速重路由功能。

fast-reroute lfa [ level-1 | level-2 ]

缺省情况下,IPv6 IS-IS支持快速重路由功能处于关闭状态。

(5)     开启IPv6 IS-IS的TI-LFA快速重路由功能。

fast-reroute ti-lfa [ per-prefix ] [ route-policy route-policy-name | host ] [ level-1 | level-2 ]

缺省情况下,IPv6 IS-IS的TI-LFA FRR功能处于关闭状态。

(6)     (可选)配置快速重路由备份路径优选方案的优先级。

fast-reroute tiebreaker { lowest-cost | node-protecting | srlg-disjoint } preference preference [ level-1 | level-2 ]

缺省情况下,最小开销路径优选方案的优先级为20,节点保护优选方案的优先级为40,共享风险链路组优选方案的优先级为10。

2. 开启OSPFv3的TI-LFA FRR功能

(1)     进入系统视图。

system-view

(2)     进入OSPFv3视图。

ospfv3 [ process-id | vpn-instance vpn-instance-name ] *

(3)     开启OSPFv3的LFA快速重路由功能。

fast-reroute { lfa [ abr-only ] | route-policy route-policy-name }

缺省情况下,OSPFv3支持快速重路由功能处于关闭状态。

(4)     开启OSPFv3的TI-LFA快速重路由功能。

fast-reroute ti-lfa [ per-prefix ] [ route-policy route-policy-name | host ]

缺省情况下,OSPFv3的TI-LFA FRR功能处于关闭状态。

(5)     (可选)配置快速重路由备份路径优选方案的优先级。

fast-reroute tiebreaker { lowest-cost | node-protecting } preference preference

缺省情况下,最小开销路径优选方案的优先级为20,节点保护优选方案的优先级为40。

6.13.3  配置接口不参与TI-LFA计算

1. 配置IPv6 IS-IS的接口不参与TI-LFA计算

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     禁止IPv6 IS-IS的接口参与TI-LFA计算。

isis ipv6 fast-reroute ti-lfa disable [ level-1 | level-2 ]

缺省情况下,允许IPv6 IS-IS的接口参与TI-LFA计算。

2. 配置OSPFv3的接口不参与TI-LFA计算

(1)     进入系统视图。

system-view

(2)     进入接口视图。

interface interface-type interface-number

(3)     禁止OSPFv3的接口参与TI-LFA计算。

ospfv3 fast-reroute ti-lfa disable [ instance instance-id ]

缺省情况下,允许OSPFv3的接口参与TI-LFA计算。

6.13.4  开启FRR正切防微环功能

1. 功能简介

FRR正切防微环功能仅能解决正切微环的问题。

应用了TI-LFA快速重路由功能的组网环境中,若某节点或者链路发生故障,流量会切换到TI-LFA计算的备份路径。但是,如果此时备份路径上的设备还没有完成收敛,则会在源节点(故障节点或者链路的前一节点)和备份路径上的设备之间形成环路,直到备份路径上的设备完成收敛。

为了解决上述问题,可以在开启了TI-LFA FRR功能的节点上配置FRR正切防微环功能,当最优路径上某个节点或者链路故障以后,首先流量切换到TI-LFA计算的备份路径上转发,避免丢包,然后本节点路由收敛后启动延迟时间定时器(延迟时间可通过fast-reroute microloop-avoidance rib-update-delay命令配置),等待备份路径上的所有设备均收敛完成且延迟时间定时器超时以后,本节点才将收敛后的转发路径下发FIB表,并将流量从TI-LFA计算的备份路径切换到收敛后的转发路径上。

2. 配置限制和指导

如果同时配置FRR正切防微环功能和SR防微环功能,则FRR正切防微环功能和SR防微环功能同时启动延迟时间定时器,且FRR正切防微环功能优先生效,即先延迟下发FIB表项。此时存在两种情况:

·     如果FRR正切防微环的延迟时间大于等于SR防微环的延迟时间,则FRR正切防微环的延迟时间定时器超时后立即切换到收敛后的路径。

·     如果FRR正切防微环的延迟时间小于SR防微环的延迟时间,则FRR正切防微环的延迟时间定时器超时后继续等待SR防微环的延迟时间定时器超时,再切换到收敛后的路径。

3. 配置IS-IS的FRR正切防微环功能

(1)     进入系统视图。

system-view

(2)     进入IS-IS视图。

isis process-id

(3)     进入IS-IS IPv6单播地址族视图。

address-family ipv6

(4)     开启IS-IS的FRR正切防微环功能。

fast-reroute microloop-avoidance enable [ level-1 | level-2 ]

缺省情况下,IS-IS的FRR正切防微环功能处于关闭状态。

(5)     (可选)配置FRR正切防微环延迟时间。

fast-reroute microloop-avoidance rib-update-delay delay-time [ level-1 | level-2 ]

缺省情况下,FRR正切防微环延迟时间为5000毫秒。

 

6.13.5  配置SR防微环功能

1. 功能简介

SR防微环功能可以解决正切微环和回切微环的问题。

在网络故障或故障恢复期间,路由都会重新收敛,由于网络节点之间转发状态短暂不一致,各个设备收敛速度不同,可能存在转发微环现象。配置SR的防微环功能后,在IGP收敛期间,设备会按照指定路径转发流量,转发过程不依赖于各设备的路由收敛,从而避免产生环路。

具体处理流程为:

·     正切情况下,开启了该功能的节点收敛后,将计算出的转发路径下发到FIB表中,并延迟一段时间切换到该转发路径,延迟时间内仍使用TI-LFA FRR备份路径转发,从而避免微环。

·     回切情况下,开启了该功能的节点收敛后,计算出正常主用路径的同时,还会计算一条带SID的严格显式备份路径,在延迟切换的时间内,使用备份路径转发,从而避免微环。

为了保证IGP收敛有足够的时间,可以配置SR防微环延迟时间,在此期间设备按照指定路径转发流量。在网络故障恢复IGP完成收敛后,流量再通过IGP计算的路径转发。

2. 配置限制和指导

如果同时配置FRR正切防微环功能和SR防微环功能,则FRR正切防微环功能和SR防微环功能同时启动延迟时间定时器,且FRR正切防微环功能优先生效,即先延迟下发FIB表项。此时存在两种情况:

·     如果FRR正切防微环的延迟时间大于等于SR防微环的延迟时间,则FRR正切防微环的延迟时间定时器超时后立即切换到收敛后的路径。

·     如果FRR正切防微环的延迟时间小于SR防微环的延迟时间,则FRR正切防微环的延迟时间定时器超时后继续等待SR防微环的延迟时间定时器超时,再切换到收敛后的路径。

3. 配置IPv6 IS-IS的SR防微环功能

(1)     进入系统视图。

system-view

(2)     进入IS-IS视图。

isis process-id

(3)     进入IS-IS IPv6单播地址族视图。

address-family ipv6

(4)     开启IPv6 IS-IS的SR防微环功能。

segment-routing microloop-avoidance enable [ level-1 | level-2 ]

缺省情况下,IPv6 IS-IS的SR防微环功能处于关闭状态。

(5)     (可选)配置IPv6 IS-IS的SR防微环延迟时间。

segment-routing microloop-avoidance rib-update-delay delay-time [ level-1 | level-2 ]

缺省情况下,IPv6 IS-IS的SR防微环延迟时间为5000毫秒。

4. 配置OSPFv3的SR防微环功能

(1)     进入系统视图。

system-view

(2)     进入OSPFv3视图。

ospfv3 [ process-id | vpn-instance vpn-instance-name ] *

(3)     开启OSPFv3的SR防微环功能。

segment-routing microloop-avoidance enable

缺省情况下,OSPFv3的SR防微环功能处于关闭状态。

(4)     (可选)配置OSPFv3的SR防微环延迟时间。

segment-routing microloop-avoidance rib-update-delay delay-time

缺省情况下,OSPFv3的SR防微环延迟时间为5000毫秒。

6.14  配置SRv6的MTU

1. 功能简介

SRv6可以配置两种MTU值:

·     Path MTU是报文在源节点到目的节点之间成功传送所允许的最大IPv6 MTU。

·     Reserved MTU是在TI-LFA等场景中为源节点规划的预留MTU值。

由于IPv6报文在传输过程中不允许在中间节点分片转发,当IPv6报文长度大于出接口MTU时,设备会丢弃报文;如果利用较小的MTU对报文进行分片,会降低链路的带宽利用率。为了避免报文过大而丢弃,同时又能充分利用接口MTU提高链路的带宽利用率,可以合理规划SRv6 MTU。

在TI-LFA场景中主路径故障,流量切换到备份路径时,设备会重新构造IPv6和SRH头,增加了IPv6报文长度,可能会导致报文超过MTU限制而被丢弃。在源节点上引入Reserved MTU,可以在发送报文时为增加的SRH预留长度,以避免TI-LFA进行FRR备份路径切换时报文因超大而丢弃。SRv6 Path MTU减去Reserved MTU称作Active MTU,Active MTU必须大于等于1280字节。源节点发送的SRv6报文的大小同时受Active MTU和物理接口的IPv6 MTU控制,实际生效的MTU是二者的较小值。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     配置SRv6的Reserved MTU值。

path-mtu reserved [ reserved-value ]

缺省情况下,未配置全局Path MTU预留值。

(4)     配置SRv6的Path MTU值。

path-mtu mtu-value

缺省情况下, SRv6的Path MTU值为9000字节。

6.15  配置SRv6的差分服务模式

1. 功能简介

在QoS的DiffServ服务模型中,报文在IP网络和SRv6网络之间相互传输时,IP优先级和DSCP优先级的处理模式分为:

·     Pipe模式:当报文进入SRv6网络时,原始报文会封装新IPv6报文头。Ingress设备会忽略其自身携带的IP或DSCP优先级,使用配置值service-class作为新IPv6报文头的Traffic Class;离开SRv6网络时,Egress设备剥离外层IPv6报文头,不会修改原始报文的原有IP或DSCP优先级。在SRv6网络中,依据配置的service-class对报文进行QoS调度。

·     Short-pipe模式:报文进入和离开SRv6网络时,处理方式与Pipe模式相同。与Pipe模式不同的是:

¡     报文在SRv6网络的Ingress节点至倒数第二跳,依据配置的service-class进行QoS调度。

¡     在Egress节点,先剥离外层IPv6报文头,再进行QoS调度。如果没有配置优先级信任模式,则依据原始报文携带的IP或DSCP优先级进行QoS调度;如果配置了优先级信任模式,则依据信任的优先级进行QoS调度。

·     Uniform模式:当报文进入SRv6网络时,Ingress设备会将其携带的原始报文IP或DSCP优先级映射为外层封装IPv6头的Traffic Class;离开SRv6网络时,Egress设备再将外层IPv6头的Traffic Class映射为原始报文的IP或DSCP优先级。

2. 配置限制和指导

在隧道的源节点和目的节点上配置diffserv-mode命令时,需要保证本端出方向的差分服务模式和对端入方向的差分服务模式一致,本端入方向的差分服务模式和对端出方向差分服务模式一致。

有关IP优先级、DSCP优先级的详细介绍,请参见“QoS配置指导”中的“优先级映射”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

(3)     配置SRv6的差分服务模式。

diffserv-mode { ingress { pipe service-class | short-pipe service-class | uniform } egress { pipe | short-pipe | uniform } | { pipe service-class | short-pipe service-class | uniform } }

缺省情况下,未配置SRv6的差分服务模式。

 

6.16  SRv6显示和维护

6.16.1  显示SRv6基本配置信息

可在任意视图下执行以下命令:

·     显示SRv6简要信息。

display segment-routing ipv6 brief

·     显示SRv6转发信息。

display segment-routing ipv6 forwarding [ entry-id ] [ slot slot-number ]

·     显示SRv6的Local SID转发表信息。

display segment-routing ipv6 local-sid [ locator locator-name ] [ end | end-b6encaps | end-bm | end-coc32 | end-dt2m | end-dt2u | end-dt2ul | end-dtm | end-dx2 | end-dx2l | end-m | end-op | end-psid | end-t | end-x-coc32 ] [ owner owner ] [ sid ]

display segment-routing ipv6 local-sid [ locator locator-name ] [ end-dt4 | end-dt46 | end-dt6 | end-dx4 | end-dx6 ] [ owner owner ] [ sid | vpn-instance vpn-instance-name ]

display segment-routing ipv6 local-sid [ locator locator-name ] [ end-x ] [ owner owner ]

仅R5220及以上版本支持end-bmend-dtmend-psid参数。

·     显示16bit压缩G-SRv6场景中基于Local SID生成的本地G-SID表项。

display segment-routing ipv6 local-sid lib [ locator locator-name ] [ end | end-b6encaps | end-bm | end-dt2m | end-dt2u | end-dt2ul | end-dx2 | end-dx2l | end-dt4 | end-dt46 | end-dt6 | end-dx4 | end-dx6 | end-x ] [ owner owner ] [ forwarding statistics ] [ sid ]

·     显示各协议分配的SRv6 SID的数目。

display segment-routing ipv6 local-sid statistics [ locator [ locator-name ] ]

·     显示SRv6的Locator信息。

display segment-routing ipv6 locator [ locator-name ]

·     显示指定Locator中可用的静态SRv6 SID。

display segment-routing ipv6 available-static-sid locator locator-name [ from begin-value ]

·     显示SRv6的Locator的配置信息和Locator已分配SRv6 SID的统计信息。

display segment-routing ipv6 locator-statistics [ locator-name ]

6.16.2  显示SRv6 BGP EPE信息

·     显示IPv6对等体的BGP-EPE信息。

display bgp [ instance instance-name ] egress-engineering ipv6 [ ipv6-address ] [ verbose ]

·     显示BGP Peer SRv6 Set组的信息。

display bgp [ instance instance-name ] egress-engineering srv6 peer-set [ srv6-peer-set-name ]

6.16.3  显示IS-IS SRv6信息

·     显示IS-IS SRv6能力信息。

display isis segment-routing ipv6 capability [ level-1 | level-2 ] [ process-id ]

·     显示IS-IS SRv6的Locator路由信息。

display isis segment-routing ipv6 locator [ ipv6-address prefix-length ] [ [ level-1 | level-2 ] | verbose ] * [ process-id ]

·     显示IS-IS发布的SRv6 SID信息。

display isis segment-routing ipv6 sid-info sid [ sid-value | [ end | end-dt4 | end-dt46 | end-dt6 | end-m | end-x ] ] [ level-1 | level-2 ] [ process-id ]

·     显示IS-IS发布的Locator段内的SRv6 SID信息。

display isis segment-routing ipv6 sid-info locator [ ipv6-prefix prefix-length ] [ end | end-dt4 | end-dt46 | end-dt6 | end-m | end-x ] [ level-1 | level-2 ] [ process-id ]

·     显示发布源发布的SRv6 SID信息。

display isis segment-routing ipv6 sid-info system-id [ system-id ] [ end | end-dt4 | end-dt46 | end-dt6 | end-m | end-x ] [ level-1 | level-2 ] [ process-id ] [ is-name isname ]

仅R5220及以上版本支持is-name参数。

·     显示冲突的SRv6 SID信息。

display isis segment-routing ipv6 sid-info conflict [ sid-value ] [ level-1 | level-2 ] [ process-id ]

·     显示SRv6 SID统计信息。

display isis segment-routing ipv6 sid-info statistics [ system-id system-id ] [ level-1 | level-2 ] [ process-id ]

6.16.4  显示OSPFv3 SRv6信息

·     显示OSPFv3 SRv6能力信息。

display ospfv3 [ process-id ] segment-routing ipv6 capability

·     显示OSPFv3 SRv6的Locator信息。

display ospfv3 [ process-id ] segment-routing ipv6 locator [ ipv6-address prefix-length ]

6.16.5  显示和清除SRv6 Local SID的流量转发统计信息

1. 显示SRv6 Local SID的流量转发统计信息

可在任意视图下执行以下命令,显示SRv6 Local SID的流量转发统计信息。

display segment-routing ipv6 local-sid forwarding statistics { end | end-dt2m | end-dt2u | end-dt2ul } [ sid ]

display segment-routing ipv6 local-sid forwarding statistics { end-dt4 | end-dt46 | end-dt6 | end-dx4 | end-dx6 } [ sid | vpn-instance vpn-instance-name ]

display segment-routing ipv6 local-sid forwarding statistics end-x [ sid | interface interface-type interface-number [ nexthop nexthop-ipv6-address ] ]

2. 清除SRv6 Local SID的流量转发统计信息

请在用户视图下执行以下命令,清除SRv6 Local SID流量转发统计信息。

reset segment-routing ipv6 local-sid forwarding statistics

6.17  SRv6典型配置举例

6.17.1  IS-IS TI-LFA FRR配置举例

1. 组网需求

·     设备Device A、Device B、Device C和Device D运行IPv6 IS-IS实现互通。

·     Device A、Device B、Device C和Device D配置IS-IS SRv6功能。

·     当设备Device A和Device C之间链路Link A故障,链路Link B上存在环路,流量无法通过Device D转发到目的节点Device C。通过部署TI-LFA FRR消除环路,同时使流量可以快速切换到链路Link B。

2. 组网图

图6-1 IS-IS TI-LFA FRR组网图

设备

接口

IP地址

设备

接口

IP地址

Device A

Loop1

1::1/128

Device B

Loop1

2::2/128

 

HGE1/0/1

2000:1::1/64

 

HGE1/0/1

2000:1::2/64

 

HGE1/0/2

2000:4::1/64

 

HGE1/0/2

2000:2::2/64

Device C

Loop1

3::3/128

Device D

Loop1

4::4/128

 

HGE1/0/1

2000:3::3/64

 

HGE1/0/1

2000:3::4/64

 

HGE1/0/2

2000:2::3/64

 

HGE1/0/2

2000:4::4/64

 

3. 配置准备

缺省情况下,本设备的接口处于ADM(Administratively Down)状态,请根据实际需要在对应接口视图下使用undo shutdown命令开启接口。

4. 配置步骤

(1)     请按照图6-1配置各接口的IP地址和子网掩码,具体配置过程略

(2)     配置Device A

# 配置IS-IS协议实现网络层互通,开销值类型为wide。

<DeviceA> system-view

[DeviceA] isis 1

[DeviceA-isis-1] network-entity 00.0000.0000.0001.00

[DeviceA-isis-1] cost-style wide

[DeviceA-isis-1] address-family ipv6

[DeviceA-isis-1-ipv6] quit

[DeviceA-isis-1] quit

[DeviceA] interface hundredgige 1/0/1

[DeviceA-HundredGigE1/0/1] isis ipv6 enable 1

[DeviceA-HundredGigE1/0/1] isis cost 10

[DeviceA-HundredGigE1/0/1] quit

[DeviceA] interface hundredgige 1/0/2

[DeviceA-HundredGigE1/0/2] isis ipv6 enable 1

[DeviceA-HundredGigE1/0/2] isis cost 10

[DeviceA-HundredGigE1/0/2] quit

[DeviceA] interface loopback 1

[DeviceA-LoopBack1] isis ipv6 enable 1

[DeviceA-LoopBack1] quit

# 开启SRv6功能,并配置Locator段。

[DeviceA] segment-routing ipv6

[DeviceA-segment-routing-ipv6] locator aaa ipv6-prefix 11:: 64 static 32

[DeviceA-segment-routing-ipv6-locator-aaa] quit

[DeviceA-segment-routing-ipv6] quit

# 配置IS-IS TI-LFA FRR。

[DeviceA] isis 1

[DeviceA-isis-1] address-family ipv6

[DeviceA-isis-1-ipv6] fast-reroute lfa

[DeviceA-isis-1-ipv6] fast-reroute ti-lfa

[DeviceA-isis-1-ipv6] fast-reroute microloop-avoidance enable

[DeviceA-isis-1-ipv6] segment-routing microloop-avoidance enable

[DeviceA-isis-1-ipv6] quit

[DeviceA-isis-1] quit

# 配置引用Locator段。

[DeviceA] isis 1

[DeviceA-isis-1] address-family ipv6

[DeviceA-isis-1-ipv6] segment-routing ipv6 locator aaa

[DeviceA-isis-1-ipv6] quit

[DeviceA-isis-1] quit

 

(3)     配置Device B

# 配置IS-IS协议实现网络层互通,开销值类型为wide。

<DeviceB> system-view

[DeviceB] isis 1

[DeviceB-isis-1] network-entity 00.0000.0000.0002.00

[DeviceB-isis-1] cost-style wide

[DeviceB-isis-1] address-family ipv6

[DeviceB-isis-1-ipv6] quit

[DeviceB-isis-1] quit

[DeviceB] interface hundredgige 1/0/1

[DeviceB-HundredGigE1/0/1] isis ipv6 enable 1

[DeviceB-HundredGigE1/0/1] isis cost 10

[DeviceB-HundredGigE1/0/1] quit

[DeviceB] interface hundredgige 1/0/2

[DeviceB-HundredGigE1/0/2] isis ipv6 enable 1

[DeviceB-HundredGigE1/0/2] isis cost 10

[DeviceB-HundredGigE1/0/2] quit

[DeviceB] interface loopback 1

[DeviceB-LoopBack1] isis ipv6 enable 1

[DeviceB-LoopBack1] quit

# 开启SRv6功能,并配置Locator段。

[DeviceB] segment-routing ipv6

[DeviceB-segment-routing-ipv6] locator bbb ipv6-prefix 22:: 64 static 32

[DeviceB-segment-routing-ipv6-locator-bbb] quit

[DeviceB-segment-routing-ipv6] quit

# 配置IS-IS TI-LFA FRR。

[DeviceB] isis 1

[DeviceB-isis-1] address-family ipv6

[DeviceB-isis-1-ipv6] fast-reroute lfa

[DeviceB-isis-1-ipv6] fast-reroute ti-lfa

# 配置引用Locator段。

[DeviceB-isis-1-ipv6] segment-routing ipv6 locator bbb

[DeviceB-isis-1-ipv6] quit

[DeviceB-isis-1] quit

 

(4)     配置Device C

# 配置IS-IS协议实现网络层互通,开销值类型为wide。

<DeviceC> system-view

[DeviceC] isis 1

[DeviceC-isis-1] network-entity 00.0000.0000.0003.00

[DeviceC-isis-1] cost-style wide

[DeviceC-isis-1] address-family ipv6

[DeviceC-isis-1-ipv6] quit

[DeviceC-isis-1] quit

[DeviceC] interface hundredgige 1/0/1

[DeviceC-HundredGigE1/0/1] isis ipv6 enable 1

[DeviceC-HundredGigE1/0/1] isis cost 100

[DeviceC-HundredGigE1/0/1] quit

[DeviceC] interface hundredgige 1/0/2

[DeviceC-HundredGigE1/0/2] isis ipv6 enable 1

[DeviceC-HundredGigE1/0/2] isis cost 10

[DeviceC-HundredGigE1/0/2] quit

[DeviceC] interface loopback 1

[DeviceC-LoopBack1] isis ipv6 enable 1

[DeviceC-LoopBack1] quit

# 开启SRv6功能,并配置Locator段。

[DeviceC] segment-routing ipv6

[DeviceC-segment-routing-ipv6] locator ccc ipv6-prefix 33:: 64 static 32

[DeviceC-segment-routing-ipv6-locator-ccc] quit

[DeviceC-segment-routing-ipv6] quit

# 配置IS-IS TI-LFA FRR。

[DeviceC] isis 1

[DeviceC-isis-1] address-family ipv6

[DeviceC-isis-1-ipv6] fast-reroute lfa

[DeviceC-isis-1-ipv6] fast-reroute ti-lfa

# 配置引用Locator段。

[DeviceC-isis-1-ipv6] segment-routing ipv6 locator ccc

[DeviceC-isis-1-ipv6] quit

[DeviceC-isis-1] quit

(5)     配置Device D

# 配置IS-IS协议实现网络层互通,开销值类型为wide。

<DeviceD> system-view

[DeviceD] isis 1

[DeviceD-isis-1] network-entity 00.0000.0000.0004.00

[DeviceD-isis-1] cost-style wide

[DeviceD-isis-1] address-family ipv6

[DeviceD-isis-1-ipv6] quit

[DeviceD-isis-1] quit

[DeviceD] interface hundredgige 1/0/1

[DeviceD-HundredGigE1/0/1] isis ipv6 enable 1

[DeviceD-HundredGigE1/0/1] isis cost 100

[DeviceD-HundredGigE1/0/1] quit

[DeviceD] interface hundredgige 1/0/2

[DeviceD-HundredGigE1/0/2] isis ipv6 enable 1

[DeviceD-HundredGigE1/0/2] isis cost 10

[DeviceD-HundredGigE1/0/2] quit

[DeviceD] interface loopback 1

[DeviceD-LoopBack1] isis ipv6 enable 1

[DeviceD-LoopBack1] quit

# 开启SRv6功能,并配置Locator段。

[DeviceD] segment-routing ipv6

[DeviceD-segment-routing-ipv6] locator ddd ipv6-prefix 44:: 64 static 32

[DeviceD-segment-routing-ipv6-locator-ddd] quit

[DeviceD-segment-routing-ipv6] quit

# 配置IS-IS TI-LFA FRR。

[DeviceD] isis 1

[DeviceD-isis-1] address-family ipv6

[DeviceD-isis-1-ipv6] fast-reroute lfa

[DeviceD-isis-1-ipv6] fast-reroute ti-lfa

# 配置引用Locator段。

[DeviceD-isis-1-ipv6] segment-routing ipv6 locator ddd

[DeviceD-isis-1-ipv6] quit

[DeviceD-isis-1] quit

 

5. 验证配置

# 在Device A上查看3::3/128路由,可以看到TI-LFA备份下一跳信息。

[DeviceA] display isis route ipv6 3::3 128 verbose

 

                         Route information for IS-IS(1)

                         ------------------------------

 

                         Level-1 IPv6 forwarding table

                         -----------------------------

 

 IPv6 dest   : 3::3/128

 Flag        : R/L/-                       Cost        : 20

 Admin tag   : -                           Src count   : 2

 Nexthop     : FE80::4449:7CFF:FEE0:206

 Interface   : HGE1/0/1

 TI-LFA:

  Interface : HGE1/0/2

  BkNextHop : FE80::4449:91FF:FE42:407

  LsIndex    : 0x80000001

  Backup label stack(top->bottom): {44::1:0:1}

 Nib ID      : 0x24000006

 

      Flags: D-Direct, R-Added to Rib, L-Advertised in LSPs, U-Up/Down Bit Set

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们