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

08-Segment Routing配置指导

目录

01-SRv6配置

本章节下载 01-SRv6配置  (349.63 KB)

01-SRv6配置


1 SRv6

1.1  SRv6简介

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

1.1.1  SRv6基本概念

1. SR节点

按照功能的不同,SRv6网络中的节点分为三种角色:

·     源节点:负责在IPv6报文的IPv6头中插入SRH扩展头,或者在报文外加上IPv6头并插入SRH扩展头。该节点将报文流引入SRH中Segment List定义的SRv6路径。

¡     如果Segment List中只包含一个SID,并且不需要在SRH中携带信息或TLV,则只需要将IPv6头的目的地址设置为这个SID,不需要插入SRH。

¡     如果Segment List中包含多个SID,则需要插入SRH。

源节点可以是产生SRv6报文的主机,也可以是SRv6域的边缘设备。

·     中转节点:在报文的SRv6路径上,不参与SRv6处理,只执行普通的IPv6报文转发。中转节点可以是支持SRv6的节点,也可以是不支持SRv6的节点。

·     Endpoint节点:对接收到的SRv6报文进行SRv6相关处理。接收到的SRv6报文的IPv6目的地址必须是Endpoint节点上配置的SRv6 SID,该节点需要按SRv6 SID的指令进行处理,并更新SRH。

同一个节点可以是不同的角色,比如节点在某个SRv6路径里可能是源节点,在其他SRv6路径里可能就是中转节点或者Endpoint节点。

2. SRv6 SID组成

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

图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也各不相同:

·     普通类型的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-lengthargs-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-lengthargs-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::

3. 节点行为(SRv6 Endpoint Behavior)

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

·     End SID:用于标识网络中的某个节点,代表一个目的地址前缀,到达该节点时,如果SL大于0,执行的节点行为是将SL-1,并从SRH取出下一个SID更新到IPv6报文头的目的地址字段,再查表转发报文。

·     End.X SID:用于标识网络中的某条链路,到达生成该SID的节点时,如果SL大于0,执行的节点行为是将SL-1,并从SRH取出下一个SID更新到IPv6报文头的目的地址字段,再从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私网用户接入场景。

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

4. SID附加行为

除节点行为以外,还存在一类SID附加行为(Flavors),这类附加行为可以和一些节点行为结合起来形成一些组合的节点行为,例如节点行为End.X和附加行为PSP组合后变成一种新的节点行为End.X with PSP,这类节点行为结合了两种转发动作,改变了原SRv6 SID节点行为的转发动作,以便适配多种业务需求。目前,支持的SRv6 SID附加行为包括:

·     NO-FLAVOR:SRv6 SID不携带Flavors,即无附加行为。

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

·     NO PSP:倒数第二个SRv6节点不执行SRH移除操作。在SRv6 OAM场景中,需要获取SRH中的SID来判断链路的连通性,不在倒数第二个SRv6节点将SRH移除,以避免误检测。

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

·     USD(Ultimate Segment Decapsulation):最后一个Endpoint节点执行外层IPv6头移除操作。

通过IGP或BGP协议发布SRv6 SID时,支持发布具有以下附加行为的SRv6 SID:

·     NO-FLAVOR

·     PSP

·     PSP&USP&USD

5. Local SID表

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

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

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

6. Segment List

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

1.1.2  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.1.3  SRv6报文转发过程

图1-4所示,源节点Device A接收到符合指定特征的报文后,需要通过SRv6路径转发该报文。SRv6路径中Device A为源节点,Device C和Device E为Endpoint节点,Device B和Device D为中转节点。报文通过SRv6路径转发的过程为:

(1)     ‍源节点Device A收到IPv6报文后,执行如下操作:

¡     封装SRH头。由于从Device A到Device E的路径必须经过C、E两个节点,因此,SRH中SL为2-1,即SL=1,封装的SID列表信息为Segment List [0]=E、Segment List [1]=C。

¡     封装IPv6基本头。IPv6基本头中的源地址为Device A上的一个地址,目的地址为SL指示的地址,即SL=1对应的Segment List [1](本例中为Device C的地址)。

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

(2)     Device B收到报文后,据IPv6头中的目的地址查找路由表,将报文转发给Device C。

(3)     Device C收到报文后,执行如下操作:

¡     检查SRH头中的SL值,如果SL>0,则将SL值减1,目的地址更新为SL指示的地址,即SL=0对应的Segment List [0](本例中为Device E的地址)。

¡     根据IPv6头中的目的地址查找路由表,将报文转发给Device D。

(4)     Device D收到报文后,据IPv6头中的目的地址查找路由表,将报文转发给Device E。

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

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

1.1.4  通过SRv6方式转发业务流量

当SRv6隧道建立之后,流量不会自动通过SRv6隧道转发,目前仅支持BGP路由迭代的方式通过SRv6 BE来转发业务流量。在PE之间通过BGP传递的路由时可以携带Prefix SID属性,允许PE之间的BGP路由迭代到SRv6 BE隧道后,路由可以通过SRv6 BE方式转发。关于SRv6 BE转发的详细介绍,请参见“Segment Routing配置指导”中的“IP L3VPN over SRv6”、“EVPN L3VPN over SRv6”或“公网IP over SRv6”等。

1.2  协议规范

与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

1.3  SRv6配置任务简介

SRv6配置任务如下:

(1)     配置SRv6 SID

¡     配置普通SRv6 SID

(2)     (可选)管理SRv6 SID

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

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

¡     配置静态End.X SID下发FIB表的延迟时间

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

(4)     配置通过BGP通告Locator网段的路由

(5)     (可选)配置SRv6的MTU

(6)     (可选)配置SRv6的差分服务模式

(7)     (可选)开启SRv6模块的告警功能

1.4  SRv6配置准备

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

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

·     规划节点的IP地址。

1.5  配置普通SRv6 SID

1.5.1  配置本地Locator段和Opcode

1. 配置限制和指导

不同Locator的名称不能相同。

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

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

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)     (可选)配置当前Locator为Anycast Locator。

anycast enable

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

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

(5)     配置Opcode段。

¡     配置End SID。

opcode { opcode | hex hex-opcode } end [ no-psp ]

opcode { opcode | hex hex-opcode } end { no-flavor | psp | psp-usp-usd }

¡     配置End.X SID。

opcode { opcode | hex hex-opcode } end-x interface interface-type interface-number nexthop nexthop-ipv6-address { no-flavor | psp | psp-usp-usd }

¡     配置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。

 

1.6  配置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。

1.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路由命令参考”中的“OSPFv3”。

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

·     接口删除,如接口板拔出、删除子接口和删除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秒。

1.8  配置静态End.X SID下发FIB表的延迟时间

1. 功能简介

邻居设备故障,本端与邻居相连的接口状态由Up变为Down时,该接口关联的End.X SID会失效。当邻居设备故障恢复后,接口恢复Up状态,与该接口关联的静态End.X SID生效。由于路由没有完成收敛,设备无法通过静态End.X SID对应的路由表项转发报文,导致报文转发失败或导致丢包(动态分配的End.X SID路由完成收敛后才下发FIB表,无此类问题)。为了避免该问题,可以配置本命令,延迟将接口关联的静态End.X SID下发到FIB表,以保证在延迟时间内设备不通过End.X SID对应的接口链路转发流量,避免丢包。

2. 配置步骤

(1)     ‍进入系统视图。

system-view

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

segment-routing ipv6

(3)     配置静态End.X SID下发FIB表的延迟时间。

end-x update-delay delay-time

缺省情况下,静态End.X SID不延迟下发FIB表。

1.9  配置通过IGP通告SRv6 SID

1. 功能简介

通过引用Locator段,IGP协议可以通告指定的Locator网段和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 ] [ cost cost-value ] [ tag tag-value ]

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

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

(5)     (可选)配置聚合Locator路由。

summary ipv6-prefix prefix-length algorithm algo-id [ explicit ]

缺省情况下,不对Locator路由进行聚合。

将Locator路由与Flex-algo算法关联后,可以将该类路由聚合,以减少本路由器生成的LSP报文大小和LSDB的规模。有关Flex-algo算法的详细介绍,请参见“三层技术-IP路由配置指导”中的“IS-IS”。

(6)     (可选)配置SRv6 Locator的管理标记值。

segment-routing ipv6 admin-tag tag-value

缺省情况下,IS-IS发布SRv6 Locator时不携带管理标记值。

在不同级别和不同区域间引入IS-IS路由,或者在IS-IS邻居之间学习IS-IS路由时,如果希望引入某些特定的SRv6 Locator,过滤掉其他SRv6 Locator,则可以通过配置本功能来标记不同SRv6 Locator,再通过路由策略中的if-match tag命令来过滤不同管理标记值的SRv6 Locator。

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)     (可选)配置OSPFv3路由中携带的SRv6 SID-Sub TLV的类型值。

segment-routing ipv6 sid-sub-tlv-type { end-x end-x-value | lan-end-x lan-end-x-value }

缺省情况下,OSPFv3路由中携带的End.X SID Sub-TLV类型值为31,LAN End.X SID Sub-TLV类型值为32。

通过OSPFv3路由发布End.X SID时,不同设备OSPFv3路由协议报文中携带的End.X SID子TLV的类型值可能不同,从而导致设备之间无法互通。为了实现设备互通,需要配置本命令保证各个设备上子TLV的类型值相同。

(5)     (可选)配置OSPFv3报文中为SRv6扩展的TLV和标记位遵循私有协议的定义。

segment-routing ipv6 private-srv6-extensions compatible

OSPFv3报文中的SRv6 Capabilities TLV类型值、各种Sub TLV的类型值及标记位遵循草案draft-ietf-lsr-ospfv3-srv6-extensions-09中的定义。请确保OSPFv3的邻居遵循了相同的标准,否则可能无法正常发布SRv6 Locator和SRv6 SID信息。

同时配置segment-routing ipv6 sid-sub-tlv-type命令和segment-routing ipv6 private-srv6-extensions compatible命令时,segment-routing ipv6 sid-sub-tlv-type命令中设置的End.X SID Sub-TLV类型取值和LAN End.X SID Sub-TLV类型取值优先生效。

(6)     (可选)配置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。

1.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网段的路由。

1.11  配置SRv6的MTU

1. 功能简介

SRv6可以配置两种MTU值:

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

·     Reserved MTU是为源节点规划的预留MTU值。

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

源节点发送的SRv6报文的大小同时受SRv6 Path MTU、Reserved MTU和物理接口的IPv6 MTU控制。SRv6 Path MTU和物理接口的IPv6 MTU先取较小值,再减去Reserved MTU即为实际采用的MTU。例如,全局配置SRv6 Path MTU为1600,配置Reserved MTU为100,如果物理接口的IPv6 MTU大于或等于1600,则源节点实际采用的MTU是SRv6 Path MTU减去Reserved MTU的值,即1500;如果物理接口的IPv6 MTU小于1600,例如1500,则源节点实际采用的MTU是物理接口的IPv6 MTU减去Reserved MTU的值,即1400。

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值为1500字节。

1.12  配置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配置指导”中的“优先级映射”。

IP L3VPN/EVPN L3VPN over SRv6 BE组网中,在Egress节点配置diffserv-mode命令不生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

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

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

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

1.13  开启SRv6模块的告警功能

1. 功能简介

开启SRv6模块的告警功能后,该模块会生成告警信息,用于报告该模块的重要事件。生成的告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。

2. 配置步骤

(1)     ‍进入系统视图。

system-view

(2)     开启SRv6模块的告警功能。

snmp-agent trap enable srv6

缺省情况下,SRv6模块的告警功能处于关闭状态。

1.14  SRv6显示和维护

在完成上述配置后,在任意视图下执行display命令,可以显示配置的SID列表信息。

表1-1 显示与维护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 ] [ flex-algo flex-algo-id | [ level-1 | level-2 ] | verbose ] * [ process-id ]

显示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 ]

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

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

显示SRv6简要信息

display segment-routing ipv6 brief

显示SRv6转发信息

display segment-routing ipv6 forwarding [ entry-id [ relation ] | forwarding-type { srv6be | srv6sids } ] [ slot slot-number ]

显示SRv6的Local SID转发表信息

display segment-routing ipv6 local-sid [ locator locator-name ] [ end ] [ 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 ] [ sid | interface interface-type interface-number [ nexthop nexthop-ipv6-address ] ] [ owner owner ]

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

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

显示SRv6的Locator信息

display segment-routing ipv6 locator [ locator-name ]

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

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

显示远端Locator段的信息

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

 

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

新华三官网
联系我们