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

11-Segment Routing配置指导

目录

05-SRv6配置

本章节下载 05-SRv6配置  (266.50 KB)

05-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. SID组成及分类

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

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

·     Locator:标识SID所属的网段。Locator在SR域内唯一。

·     Function:标识与SID绑定的本地操作指令,SR域内指定节点收到流量后,根据SRv6 SID的Function字段执行相关操作。

·     Arguments:定义报文的流和服务等信息。

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

图1-1 SRv6 SID

 

根据不同配置方式,SRv6 SID各个字段的关系分为以下几种:

·     普通SRv6 SID

图1-2 普通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::

根据SRv6 SID功能的不同,SRv6 SID分为:

·     End.DT4 SID:用于标识网络中的某个IPv4 VPN。End.DT4 SID对应的转发动作是解封装报文,并且查找IPv4 VPN实例路由表转发。End.DT4 SID用于IP L3VPN和EVPN L3VPN场景。

·     End.DT6 SID:用于标识网络中的某个IPv6 VPN。End.DT6 SID对应的转发动作是解封装报文,并且查找IPv6 VPN实例路由表转发。End.DT6 SID用于IPv6 L3VPN和IPv6 EVPN L3VPN场景。

·     End.DT2M SID:End.DT2M SID表示二层交叉连接且进行广播泛洪的SID,用于标识一个端点。End.DT2M SID对应的转发动作是去掉IPv6报文头及其扩展头,然后将剩余报文在VSI内广播泛洪。End.DT2M SID可以用于EVPN VPLS BUM流量场景。

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

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

3. Local SID表

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

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

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

4. Segment List

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

5. SRv6隧道

SRv6通过在源节点对IPv6数据报文进行封装,使封装后的报文在开启SRv6功能的网络中进行传输。封装后的数据报文在网络中传输的路径,称为SRv6隧道。SRv6隧道是从源节点到尾节点的一个虚拟的点对点连接,其两端的设备分别对数据报文进行封装及解封装。

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所示,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类型,然后检查SRH头中的SL值,并将SL值减1,同时查找Segment List [1]对应的地址,即Device C的地址,并使用Device C的地址替换IPv6头中的目的地址。

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

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

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

图1-4 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与硬件适配关系

仅S5580X-HI系列交换机支持本功能。

1.4  SRv6配置任务简介

SRv6配置任务如下:

(1)     配置SRv6 SID

¡     配置普通SRv6 SID

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

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

1.5  SRv6配置准备

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

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

·     规划节点的IP地址。

1.6  配置普通SRv6 SID

1.6.1  普通SRv6 SID配置限制和指导

配置普通SRv6 SID时,指定的Locator段的IPv6地址必须是接口的主IPv6地址。

1.6.2  配置本地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)     配置Opcode段。

¡     配置End.DT4 SID。

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

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

¡     配置End.DT6 SID。

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

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

¡     配置End.DT2M SID。

opcode opcode end-dt2m vsi vsi-name

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

¡     配置End.DT2U SID。

opcode opcode end-dt2u vsi vsi-name

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

1.7  配置封装的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报文头的源地址。

1.8  配置通过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 ]

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

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

 

1.9  SRv6显示和维护

1.9.1  显示SRv6基本配置信息

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

·     显示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-dt2m | end-dt2u ] [ owner owner ] [ sid ]

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

·     显示各协议分配的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 ]

1.9.2  显示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-dt4 | end-dt6 ] ] [ level-1 | level-2 ] [ process-id ]

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

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

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

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

·     显示冲突的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 ]

 

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

新华三官网
联系我们