IPv6 SR典型配置

1 IPv6 SR· 1-1

1.1 IPv6 SR简介·· 1-1

1.1.1 IPv6 SR基本概念·· 1-1

1.1.2 IPv6 SR报文·· 1-2

1.1.3 IPv6 SR报文转发过程·· 1-3

1.1.4 SRv6 VPN· 1-4

1.1.5 引流到IPv6 SR隧道·· 1-5

1.1.6 协议规范·· 1-6

1.2 IPv6 SR配置配置限制和指导·· 1-6

1.3 IPv6 SR配置任务简介·· 1-6

1.4 IPv6 SR配置准备·· 1-7

1.5 配置SRv6 SID·· 1-7

1.6 配置通过IGP通告SRv6 SID·· 1-8

1.7 配置IPv6 SR隧道·· 1-8

1.7.1 配置IPv6 SR SID列表·· 1-8

1.7.2 配置IPv6 SR隧道引用SID列表·· 1-9

1.7.3 配置隧道转发类·· 1-9

1.7.4 开启IPv6 SR隧道echo模式的BFD检测功能·· 1-10

1.8 配置SRv6 VPN· 1-10

1.8.1 SRv6 VPN配置任务简介·· 1-10

1.8.2 配置为私网路由添加End.DT4 SID·· 1-11

1.8.3 配置PE-PE间交互BGP VPNv4路由·· 1-12

1.8.4 配置IPv6对等体之间交换End.DT4 SID·· 1-12

1.8.5 配置BGP VPNv4路由·· 1-13

1.8.6 配置SRv6 VPN封装的IPv6报文头的源地址·· 1-16

1.8.7 配置私网路由根据SID属性迭代·· 1-16

1.9 配置流量转发·· 1-17

1.9.1 配置静态路由使流量沿IPv6 SR隧道转发·· 1-17

1.9.2 配置自动发布静态路由使流量沿IPv6 SR隧道转发·· 1-17

1.9.3 配置自动发布IGP路由使流量沿IPv6 SR隧道转发·· 1-17

1.10 IPv6 SR显示和维护·· 1-18

1.10.1 复位BGP会话·· 1-18

1.10.2 显示和维护IPv6 SR的运行状态·· 1-19

1.10.3 显示和维护SRv6 VPN的运行状态·· 1-19

1.11 IPv6 SR典型配置举例·· 1-20

1.11.1 IPv6 SR基本配置举例·· 1-20

1.11.2 IPv6 SR隧道自动路由发布配置举例·· 1-23

1.11.3 SRv6 VPN配置举例·· 1-27


1 IPv6 SR

1.1 IPv6 SR简介

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

1.1.1 IPv6 SR基本概念

1. SR节点

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

2. SID

在IPv6 SR中,SID分为两种:

· 采用接口的IPv6地址作为SID。

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

如图1-1所示,SRv6 SID由Locator和Function两部分组成:

· Locator:标识路由能力,指导流量在指定的节点转发。Locator在SR域内唯一。

· Function:标识设备的网络功能,例如转发报文、执行特定业务等。SR域内指定节点收到流量后,根据SRv6 SID的Funciton字段执行相关操作。

图1-1 SRv6 SID

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

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

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

· End.DT4 SID:用于标识网络中的某个IPv4 VPN。

通过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. IPv6 SR隧道

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

1.1.2 IPv6 SR报文

IPv6 SR的报文封装格式为:在原始三层数据报文前面添加新的IPv6基本头和SRH(Segment Identifier Header,IPv6 SR报文头)。SRH是路由类型取值为4的一种路由扩展头。如图1-2所示,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的编号,取值为0。

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

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

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

图1-2 IPv6 SR的报文封装示意图

1.1.3 IPv6 SR报文转发过程

如图1-3所示,IPv6 SR隧道报文转发过程如下:

(1) 源节点Device A收到IPv6报文后,查找路由表判定此报文需要通过IPv6 SR隧道模式的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-3 IPv6 SR隧道报文转发示意图

1.1.4 SRv6 VPN

SRv6 VPN即IPv4 VPN over IPv6 SR,是指通过IPv6 SR隧道传递IPv4 VPN数据。

如图1-4所示,通过MP-BGP在IPv6骨干网上发布用户站点的IPv4私网路由,使用PE间的单跳IPv6 SR隧道承载私网报文,在骨干网上根据IGP计算的最优路径转发私网报文,从而实现通过IPv6骨干网连接属于同一个VPN、位于不同地理位置的用户。

图1-4 SRv6 VPN组网示意图

2. 路由发布

如图1-4所示,CE 1路由发布到CE 2的过程为:

(1) CE 1使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的私网路由发布给PE 1。

(2) PE 1从CE 1学习到私网路由信息后,将其存放到相应的VPN实例1的路由表中。PE 1为私网路由增加RD和RT属性,并为这些路由分配私网标签End.DT4 SID,形成VPNv4路由。PE 1通过MP-BGP把VPNv4路由发布给PE 2。

(3) PE 2收到VPNv4路由后,将该路由加入到VPN实例1的路由表中并将VPNv4路由转换成IPv4路由发布给CE 2。

(4) CE 2收到路由后,学习到路由表中,即CE 2学习到CE 1的路由。

3. 报文转发

完成路由发布后,报文从CE 2到CE 1的转发过程为:

(1) CE 2发送IPv4报文给PE 2。

(2) PE 2从绑定了VPN实例的接口上收到私网报文后,在VPN实例1的路由表中查找匹配IPv4目的地址的路由,找到对应的End.DT4 SID。然后为报文封装IPv6报文头和SRH:

¡ 在IPv6报文头中End.DT4 SID作为其目的地址。

¡ 在SRH中,Segments Left=0且Segment list[0]=End.DT4 SID。

(3) PE 2根据End.DT4 SID查找IPv6路由表,通过最优IGP路由将报文转发给P。

(4) P根据End.DT4 SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 1。

(5) PE 1根据End.DT4 SID查找Local SID表,执行End.DT4 SID对应的转发动作,即解封装报文去掉IPv6报文头和SRH,并根据End.DT4 SID匹配VPN实例1,在VPN实例1的路由表中,查表转发,将报文发送给CE 1。

1.1.5 引流到IPv6 SR隧道

当IPv6 SR隧道建立之后,流量不会自动通过IPv6 SR隧道转发,需要通过如下方法配置流量沿IPv6 SR隧道转发。

1. 静态路由

使用静态路由转发流量,是指在源节点定义一条通过Tunnel接口到达目的网络地址的静态路由,把流量引入到IPv6 SR隧道上进行转发。

静态路由是将流量引入IPv6 SR隧道的最简便、直观的方法。该方法的缺点是:如果多个目的网络的流量都需要引入到IPv6 SR隧道上,则需要配置多条静态路由,配置和维护难度比较大。

有关静态路由的介绍请参见“三层技术-IP路由配置指导”中的“静态路由”。

2. 自动路由发布

自动路由发布是指将IPv6 SR隧道发布到IGP中,让IPv6 SR隧道参与IGP路由的计算,使得流量可以通过IPv6 SR隧道转发。自动路由发布包括以下两种方式:

· IGP Shortcut:也称为自动路由宣告(AutoRoute Announce),该功能将IPv6 SR隧道当作一条直接连接隧道Ingress节点(头节点)和Egress节点(尾节点)的链路,在隧道的Ingress节点上进行IGP路由计算时考虑该IPv6 SR隧道。

· 转发邻接:该功能将IPv6 SR隧道当作一条直接连接隧道Ingress节点和Egress节点的链路,通过IGP路由协议将该链路发布到网络中,以便网络中的节点在路由计算时使用IPv6 SR隧道。

说明

目前仅支持IGP Shortcut功能。

IGP Shortcut和转发邻接功能的区别在于:

· 在隧道的Ingress节点上开启IGP Shortcut功能后,只有Ingress节点计算IGP路由时会考虑IPv6 SR隧道。IGP Shortcut功能不会通过IGP路由协议将IPv6 SR隧道作为一条链路发布出去。因此,其他设备在路由计算时不会考虑IPv6 SR隧道。

· 在隧道的Ingress节点上开启转发邻接功能后,Ingress节点会通过IGP路由协议将IPv6 SR隧道作为一条链路发布出去。因此,IGP网络中的所有设备在路由计算时都会考虑IPv6 SR隧道。

图1-5 IGP Shortcut与转发邻接示意图

在图1-5中,Device D到Device C之间存在一条IPv6 SR隧道,IGP Shortcut只能使Ingress节点Device D在计算IGP路由时利用这条隧道,Device A并不能利用这条隧道到达Device C。如果配置了转发邻接功能,则Device A也能够知道这条IPv6 SR隧道的存在,从而可以利用该隧道将到Device C的流量转发到Device D上。

1.1.6 协议规范

与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.2 IPv6 SR配置配置限制和指导

仅sdn-wan工作模式支持本特性。有关系统工作模式的介绍,请参见“基础配置指导”中的“设备管理”。

1.3 IPv6 SR配置任务简介

IPv6 SR配置任务如下:

(1) 配置SRv6 SID

通过SRv6 SID建立路由转发表项时,本功能必选。

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

通过SRv6 SID建立路由转发表项时,本功能必选。

(3) 配置IPv6 SR隧道

在IPv6 SR隧道的源节点上配置IPv6 SR隧道。

a. 配置IPv6 SR SID列表

b. 配置IPv6 SR隧道引用SID列表

c. (可选)配置隧道转发类

d. (可选)开启IPv6 SR隧道echo模式的BFD检测功能

(4) 配置SRv6 VPN

使用IPv6 SR隧道传递VPN数据时,本功能必选。

(5) 配置流量转发

1.4 IPv6 SR配置准备

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

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

· 规划节点的IP地址。

1.5 配置SRv6 SID

1. 功能简介

SRv6 SID分为Locator段和Opcode段(即Function),二者组成唯一的SRv6 SID,用于生成对应的Local SID表。

SRv6 SID生成方式如下:SRv6 SID=ipv6-prefix+opcode+0。其中ipv6-prefix为配置Locator时指定的IPv6地址前缀,所占位数为prefix-length;opcode为配置的Opcode段,所占位数为static-length。如果IPv6地址前缀和Opcode段位数之和不足128,则其余位全部为0。例如配置情况如下:

· locator test1 ipv6-prefix 100:: 64 static 32

· opcode 64 end

则SRv6 SID为100::40:0:0。

2. 配置限制和指导

不同Locator的名称不能相同。

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

3. 配置步骤

(1) 进入系统视图。

system-view

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

segment-routing ipv6

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

locator locator-name ipv6-prefix ipv6-address prefix-length static static-length

(4) 配置Opcode段。

¡ 配置End SID。

opcode opcode end

¡ 配置End.X SID。

opcode opcode end-x interface interface-type interface-number nexthop nexthop-address

¡ 配置End.DT4 SID。

opcode opcode end-dt4 vpn-instance vpn-instance-name

不同VPN实例不能配置相同End.DT4 SID。

1.6 配置通过IGP通告SRv6 SID

1. 功能简介

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

2. 配置准备

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

3. 配置步骤

(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.7 配置IPv6 SR隧道

1.7.1 配置IPv6 SR SID列表

1. 功能简介

IPv6 SR SID列表中的节点采用索引值唯一标识,并按照索引值从小到大的顺序形成报文转发路径。在封装SID列表时,IPv6 SR会根据索引值自动分配SID编号,最小的索引值对应最大的SID编号,最大的索引值对应最小的SID编号。

2. 配置限制和指导

配置SID列表时,请注意:

· 如果手工指定节点索引值,请确保离源节点越近的节点索引值越小。

· 如果不指定索引值,设备会按照配置顺序为节点自动分配索引值,最先配置的节点索引值最小。配置时,请先配置离源节点最近的SID。

3. 配置步骤

(1) 进入系统视图。

system-view

(2) 创建IPv6 SR的SID列表,并进入对应的列表视图。

ipv6 segment-routing sid-list list-name

(3) 配置SID列表中的节点。

sid [ index index-number ] ipv6-address

当节点使用接口的IPv6地址作为SID时,需要通过IGP协议通告该接口的IPv6地址,使得路由可达。

当节点使用SRv6 SID时,需要配置IGP协议通告该SRv6 SID,使得路由可达。

1.7.2 配置IPv6 SR隧道引用SID列表

(1) 进入系统视图。

system-view

(2) 创建IPv6 SR模式的隧道接口,并进入对应的隧道接口视图。

interface tunnel tunnel-number mode sr ipv6

(3) 指定隧道引用的SID列表。

tunnel sid-list list-name [ backup ]

缺省情况下,IPv6 SR隧道未引用任何SID列表。

1.7.3 配置隧道转发类

1. 功能简介

通过配置隧道转发类,与隧道转发类匹配的流量可以选择相对应的隧道进行转发,以便根据业务的不同提供不同的转发服务。

配置本功能后:

· 设备会优先选择与流量的隧道转发类值相同的隧道转发该流量。

· 如果存在多条与流量的隧道转发类值相同的隧道,只有一条流且为逐流转发则随机选择一条隧道转发;有多条流或者一条流但是为逐包转发则相同转发类的隧道进行负载分担。

· 如果没有与流量的隧道转发类值相同的隧道,从比流量的转发类值小的隧道中选择转发类值最大的隧道进行转发。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入模式为IPv6 SR隧道的Tunnel接口视图。

interface tunnel tunnel-number [ mode sr ipv6 ]

(3) 配置隧道转发类。

service-class class-value

缺省情况下,未配置隧道转发类。

1.7.4 开启IPv6 SR隧道echo模式的BFD检测功能

1. 功能简介

通过配置本命令,设备通过BFD会话检测IPv6 SR隧道,以便设备能够快速发现隧道故障,及时进行相应地处理,如将流量切换到备份路径。

开启IPv6 SR隧道echo模式的BFD检测功能后,当BFD会话状态为down时,IPv6 SR隧道状态为down;当BFD会话状态为up时,IPv6 SR隧道状态为up。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 配置echo报文的源IPv6地址。

bfd echo-source-ipv6 ipv6-address

缺省情况下,未配置echo报文的源IPv6地址。,

为了避免对端发送大量的ICMP重定向报文造成网络拥塞,建议不要将echo报文的源IPv6地址配置为属于该设备任何一个接口所在网段。关于本命令的详细介绍请参见“可靠性配置指导”中的“BFD”。

(3) 进入模式为IPv6 SR隧道的Tunnel接口视图。

interface tunnel tunnel-number [ mode sr ipv6 ]

(4) 开启echo模式的BFD检测功能。

tunnel bfd enable echo

缺省情况下,IPv6 SR隧道echo模式BFD检测功能处于关闭状态。

1.8 配置SRv6 VPN

1.8.1 SRv6 VPN配置任务简介

SRv6 VPN配置任务如下:

(1) 配置VPN实例

在PE设备上执行本配置,配置方法请参见“MPLS配置指导”中的“MPLS L3VPN”。

(2) 配置PE-CE间的路由交换

a. 在PE-CE间配置静态路由、RIP、OSPF、IS-IS、EBGP或IBGP

CE使用静态路由、RIP、OSPF、IS-IS、EBGP或IBGP,将本站点的VPN路由发布给PE。在PE上需要为路由协议关联指定VPN实例,在CE上配置普通路由协议即可。关于各个路由协议的具体配置,请参见“三层技术-IP路由配置指导”。

b. 配置为私网路由添加End.DT4 SID

只有配置本功能后,PE设备才能为私网路由添加私网标签End.DT4 SID。

(3) 配置PE-PE间的路由交换

a. 配置PE-PE间交互BGP VPNv4路由

b. 配置IPv6对等体之间交换End.DT4 SID

只有配置本功能后,PE设备之间交换VPNv4路由时才可以交换私网标签End.DT4 SID。

c. (可选)配置BGP VPNv4路由

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

本功能用来指定SRv6 VPN骨干网中报文封装的IPv6报文头的源地址。

(5) 配置SRv6 SID

本功能用来指定SRv6 VPN骨干网中报文封装的IPv6报文头的目的地址End.DT4 SID。

(6) 配置私网路由根据SID属性迭代

只有配置本功能后,PE设备才能将私网路由迭代到End.DT4 SID对应的路由表项上,以便在骨干网上根据IGP计算的最优路径转发私网报文。

1.8.2 配置为私网路由添加End.DT4 SID

1. 功能简介

在SRv6 VPN组网场景中,通过BGP Update消息发布私网路由时,需要携带End.DT4 SID。在指定VPN实例的BGP-VPN IPv4单播地址族视图下配置本功能后,PE设备将为该VPN实例内的私网路由添加指定的End.DT4 SID,通过End.DT4 SID标识该VPN实例的报文。

2. 配置限制和指导

配置本功能前,必须满足以下条件:

· 指定的Locator必须存在。

· End.DT4 SID所在VPN实例与私网的VPN实例必须相同。

3. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP-VPN实例视图。

ip vpn-instance vpn-instance-name

(4) 进入BGP-VPN IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(5) 配置私网路由转变为VPNv4路由时携带SID属性。

segment-routing ipv6 locator locator-name

缺省情况下,私网路由转变为VPNv4路由时不携带SID属性。

1.8.3 配置PE-PE间交互BGP VPNv4路由

1. 配置限制和指导

本节所有命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 将对端PE配置为IPv6对等体。

peer { group-name | ipv6-address [ prefix-length ] } as-number as-number

(4) 指定与IPv6对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。

peer { group-name | ipv6-address [ prefix-length ] } connect-interface interface-type interface-number

缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口。

(5) 创建BGP VPNv4地址族,并进入BGP VPNv4地址族视图。

address-family vpnv4

(6) 使能本地路由器与指定IPv6对等体交换VPNv4路由信息的能力。

peer { group-name | ipv6-address [ prefix-length ] } enable

缺省情况下,本地路由器不能与对等体交换VPNv4路由信息。

1.8.4 配置IPv6对等体之间交换End.DT4 SID

1. 功能简介

配置本功能后,IPv6对等体之间可以通过VPNv4路由交换End.DT4 SID信息。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 配置与指定IPv6对等体之间交换End.DT4 SID信息。

peer { group-name | ipv6-address [ prefix-length ] } prefix-sid

缺省情况下,IPv6对等体之间不能交换End.DT4 SID信息。

1.8.5 配置BGP VPNv4路由

1. 配置限制和指导

本节所有命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

2. 控制BGP VPNv4路由的接收和保存

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 设置允许从指定对等体/对等体组收到的路由数量。

peer { group-name | ipv6-address [ prefix-length ] } route-limit prefix-number [ { alert-only | discard | reconnect reconnect-time } | percentage-value ] *

缺省情况下,不限制从对等体/对等体组接收的路由数量。

(5) 保存所有来自指定对等体/对等体组的原始路由更新信息,不管这些路由是否通过了路由策略的过滤。

peer { group-name | ipv6-address [ prefix-length ] } keep-all-routes

缺省情况下,不保存来自对等体/对等体组的原始路由更新信息。

3. 配置BGP VPNv4路由的首选值

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 为从指定对等体/对等体组接收的路由分配首选值。

peer { group-name | ipv6-address [ prefix-length ] } preferred-value value

缺省情况下,从对等体/对等体组接收的路由的首选值为0。

4. 配置BGP VPNv4路由反射

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 配置将本机作为路由反射器,并将对等体或对等体组作为路由反射器的客户。

peer { group-name | ipv6-address [ prefix-length ] } reflect-client

缺省情况下,未配置路由反射器及其客户。

(5) (可选)允许路由反射器在客户机之间反射路由。

reflect between-clients

缺省情况下,允许路由反射器在客户机之间反射路由。

(6) (可选)配置路由反射器的集群ID。

reflector cluster-id { cluster-id | ip-address }

缺省情况下,每个路由反射器都使用自己的Router ID作为集群ID。

(7) (可选)创建路由反射器的反射策略。

rr-filter { ext-comm-list-number | ext-comm-list-name }

缺省情况下,路由反射器不会对反射的路由进行过滤。

(8) (可选)允许路由反射器反射路由时修改路由属性。

reflect change-path-attribute

缺省情况下,不允许路由反射器反射路由时修改路由属性。

5. 配置BGP VPNv4路由属性

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 配置NEXT_HOP属性,向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。

peer { group-name | ipv6-address [ prefix-length ] } next-hop-local

缺省情况下,向对等体/对等体组发布路由时,将下一跳属性修改为自身的地址。

(5) 配置AS_PATH属性。

¡ 配置对于从对等体/对等体组接收的路由,允许本地AS号在接收路由的AS_PATH属性中出现,并配置允许出现的次数。

peer { group-name | ipv6-address [ prefix-length ] } allow-as-loop [ number ]

缺省情况下,不允许本地AS号在接收路由的AS_PATH属性中出现。

¡ 配置向指定EBGP对等体/对等体组发送BGP更新消息时只携带公有AS号,不携带私有AS号。

peer { group-name | ipv6-address [ prefix-length ] } public-as-only

缺省情况下,向EBGP对等体/对等体组发送BGP更新消息时,既可以携带公有AS号,又可以携带私有AS号。

(6) 配置向对等体/对等体组发布团体属性。

peer { group-name | ipv6-address [ prefix-length ] } advertise-community

缺省情况下,不向对等体/对等体组发布团体属性。

(7) 为BGP对等体/对等体组配置SoO属性。

peer { group-name | ipv6-address [ prefix-length ] } soo site-of-origin

缺省情况下,没有为BGP对等体/对等体组配置SoO属性。

6. 配置BGP VPNv4路由过滤

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 配置对发布的路由信息进行过滤。

filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list prefix-list-name } export [ protocol process-id ]

缺省情况下,不对发布的路由信息进行过滤。

(5) 配置对接收的路由信息进行过滤。

filter-policy { ipv4-acl-number | name ipv4-acl-name | prefix-list prefix-list-name } import

缺省情况下,不对接收的路由信息进行过滤。

(6) 为对等体/对等体组设置基于地址前缀列表的BGP路由过滤策略。

peer { group-name | ipv6-address [ prefix-length ] } prefix-list prefix-list-name { export | import }

缺省情况下,未配置基于地址前缀列表的BGP路由过滤策略。

(7) 对来自对等体/对等体组的路由或发布给对等体/对等体组的路由应用路由策略。

peer { group-name | ipv6-address [ prefix-length ] } route-policy route-policy-name { export | import }

缺省情况下,没有为对等体/对等体组指定路由策略。

(8) 配置对接收到的VPNv4路由进行Route Target过滤。

policy vpn-target

缺省情况下,对接收到的VPNv4路由进行Route Target过滤,即只将Export Route Target属性与本地Import Route Target属性匹配的VPNv4路由加入到路由表。

7. 配置BGP Add-Path

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP VPNv4地址族视图。

address-family vpnv4

(4) 配置Add-Path功能。

peer { group-name | ipv6-address [ prefix-length ] } additional-paths { receive | send } *

缺省情况下,未配置Add-Path功能。

(5) 配置向指定对等体/对等体组发送的Add-Path优选路由的最大条数。

peer { group-name | ipv6-address [ prefix-length ] } advertise additional-paths best number

缺省情况下,向指定对等体/对等体组发送的Add-Path优选路由的最大条数为1。

(6) (可选)配置路由延迟优选时间。

route-select delay delay-value

缺省情况下,延迟时间为0秒,即路由优选不延迟。

1.8.6 配置SRv6 VPN封装的IPv6报文头的源地址

1. 配置限制和指导

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

配置源地址时,可以指定任意IPv6地址。建议指定为本设备上未使用的IPv6地址。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入SRv6视图。

segment-routing ipv6

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

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

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

1.8.7 配置私网路由根据SID属性迭代

1. 功能简介

在SRv6 VPN组网场景中,PE设备为私网报文添加End.DT4 SID后,需要根据报文的End.DT4 SID查找路由表进行转发。配置本功能后,PE设备才能将私网路由迭代到End.DT4 SID对应的路由表项上,才能通过IGP计算出到达End.DT4 SID的最优路径。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入BGP实例视图。

bgp as-number [ instance instance-name ]

(3) 进入BGP-VPN实例视图。

ip vpn-instance vpn-instance-name

(4) 进入BGP-VPN IPv4单播地址族视图。

address-family ipv4 [ unicast ]

(5) 配置私网路由根据路由携带的SID属性进行迭代。

segment-routing ipv6 sid-route-recursion

缺省情况下,PE设备不能将私网路由迭代到End.DT4 SID对应的路由表项上,直接查找路由表进行转发。

1.9 配置流量转发

1.9.1 配置静态路由使流量沿IPv6 SR隧道转发

通过配置静态路由使流量沿IPv6 SR隧道转发,静态路由命令的详细介绍请参见“三层技术-IP路由命令参考”中的“静态路由”。命令中指定的接口为IPv6 SR隧道模式的Tunnel接口。

1.9.2 配置自动发布静态路由使流量沿IPv6 SR隧道转发

1. 功能简介

在Tunnel接口下配置本功能后,将会自动生成一条静态路由,静态路由目的地址是隧道的目的IP,出接口是配置本命令的Tunnel接口。

2. 配置步骤

(1) 进入系统视图。

system-view

(2) 进入模式为IPv6 SR隧道的Tunnel接口视图。

interface tunnel tunnel-number [ mode sr ipv6 ]

(3) 配置自动发布静态路由功能。

tunnel route-static [ preference preference-value ]

缺省情况下,设备不会自动发布静态路由。

1.9.3 配置自动发布IGP路由使流量沿IPv6 SR隧道转发

1. 功能简介

为了将IPv6 SR隧道发布到IGP中,并参与IGP路由的计算,使得流量可以通过IPv6 SR隧道转发,需要部署以下功能:

· IPv6 Route ID

IPv6 Route ID决定了发布到IGP路由中的IPv6 SR隧道的源地址和目的地址。其中,IPv6 SR隧道接口的源地址必须与源节点的IPv6 Route ID相同;IPv6 SR隧道接口的目的地址必须与目的节点的IPv6 Route ID相同。

配置IPv6 Route ID后,会同时开启IPv6 TE功能,即IPv6 SR隧道参与IGP路由的计算后,流量可以通过IPv6 SR隧道转发。

· 自动路由发布

自动路由发布是指将IPv6 SR隧道发布到IGP中,让IPv6 SR隧道参与IGP路由的计算。

2. 配置限制和指导

IPv6 Router ID在IPv6网络中必须唯一。

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

在环形组网中,为了避免IPv6 SR隧道上某条链路Down而产生路由环路,建议将IPv6 SR隧道引用的SID列表中的SID配置为128位掩码的主机路由,IGP协议不会将该SID对应的主机路由出接口设置为该IPv6 SR隧道接口,从而避免环路的产生。

3. 配置准备

配置自动路由发布前,需要在IPv6 SR隧道接口上开启IGP协议的IPv6能力。

4. 配置IPv6 Router ID并开启IPv6 TE功能

(1) 进入系统视图。

system-view

(2) 进入IS-IS视图。

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

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

address-family ipv6 [ unicast ]

(4) 配置IS-IS的IPv6 Router ID并开启IPv6 TE功能。

router-id ipv6-address

缺省情况下,未配置IS-IS的IPv6 router ID,IPv6 TE功能处于关闭状态。

5. 配置IGP Shortcut

(1) 进入系统视图。

system-view

(2) 进入模式为IPv6 SR隧道的Tunnel接口视图。

interface tunnel tunnel-number mode sr ipv6

(3) 开启IGP Shortcut功能。

srv6 igp shortcut [ ospf | isis ]

缺省情况下,IGP Shortcut功能处于关闭状态。

目前只有IS-IS协议支持IGP Shortcut功能。

(4) 配置IPv6 SR隧道的度量值。

srv6 igp metric { absolute value | relative value }

缺省情况下,IPv6 SR隧道的度量值等于其IGP度量值。

1.10 IPv6 SR显示和维护

1.10.1 复位BGP会话

当BGP配置变化后,可以通过软复位或复位BGP会话使新的配置生效。软复位BGP会话是指在不断开BGP邻居关系的情况下,更新BGP路由信息;复位BGP会话是指断开并重新建立BGP邻居关系的情况下,更新BGP路由信息。软复位需要BGP对等体具备路由刷新能力(支持ROUTE-REFRESH消息)。

请在用户视图下进行下列操作。下表中各命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

表1-1 复位BGP会话

操作

命令

手工对VPNv4地址族下的BGP会话进行软复位

refresh bgp [ instance instance-name ] ipv6-address [ prefix-length ] { export | import } vpnv4

复位VPNv4地址族下的BGP会话

reset bgp [ instance instance-name ] ipv6-address [ prefix-length ] vpnv4

1.10.2 显示和维护IPv6 SR的运行状态

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

表1-2 显示与维护IPv6 SR的运行状态

操作

命令

显示SID列表信息

display ipv6 segment-routing sid-list [ list-name ]

显示IS-IS SRv6能力信息

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

显示IS-IS SRv6 Tunnel接口信息

display isis srv6 tunnel [ level-1 | level-2 ] [ process-id ]

显示SRv6的Local SID列表信息

display segment-routing ipv6 local-sid { end | end-dt4 | end-x } [ sid ]

显示SRv6的Locator信息

display segment-routing ipv6 locator [ locator-name ]

显示SRv6转发表项信息

(独立运行模式)

display srv6 forwarding-table [ remote ipv6-address ] [ slot slot-number cpu cpu-number ]

(IRF模式)

display srv6 forwarding-table [ remote ipv6-address ] [ chassis chassis-number slot slot-number cpu cpu-number ]

1.10.3 显示和维护SRv6 VPN的运行状态

在完成上述配置后,在任意视图下执行display命令可以显示配置后SRv6 VPN的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令清除BGP VPNv4路由的相关信息。

display bgp peer vpnv4、display bgp update-group vpnv4和reset bgp flap-info命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。

表1-3 显示和维护SRv6 VPN的运行状态

操作

命令

显示BGP VPNv4对等体信息

display bgp [ instance instance-name ] peer vpnv4

{ ipv6-address prefix-length | ipv6-address { log-info | verbose } }

显示BGP VPNv4地址族下打包组的相关信息

display bgp [ instance instance-name ] update-group vpnv4 ipv6-address

清除BGP VPNv4路由的震荡统计信息

reset bgp [ instance instance-name ] flap-info vpnv4 [ ipv4-address [ mask | mask-length ] | as-path-acl as-path-acl-number | peer ipv6-address [ prefix-length ] ]

1.11 IPv6 SR典型配置举例

1.11.1 IPv6 SR基本配置举例

1. 组网需求

· 设备Router A、Router B、Router C和Router D运行OSPFv3。

· 建立一条从Router A到Router D的IPv6 SR隧道,实现两个IP网络通过IPv6 SR隧道传输数据流量。主路径为Router A->Router B->Router D,备路径为Router A->Router C->Router D。

2. 组网图

图1-6 IPv6 SR配置组网图

设备

接口

IP地址

设备

接口

IP地址

Router A

Loop0

1::11/128

Router B

Loop0

2::22/128

GE3/1/1

100::1/128

GE3/1/1

1::2/128

GE3/1/2

1::1/128

GE3/1/2

2::1/128

GE3/1/3

11::1/128

Router D

Loop0

4::44/128

Router C

Loop0

3::33/128

GE3/1/1

200::1/128

GE3/1/1

11::2/128

GE3/1/2

2::2/128

GE3/1/2

22::1/128

GE3/1/3

22::2/128

3. 配置步骤

(1) 配置各接口的IP地址和掩码,具体配置过程略

(2) 配置OSPFv3协议发布接口所在网段的路由,包括Loopback接口,具体配置过程略

配置完成后,在各设备上执行display ipv6 routing-table命令,可以看到相互之间都学到了到对方的路由,包括Loopback接口对应的主机路由。

(3) 配置IPv6 SR隧道

# 在Router A上配置到Router D的IPv6 SR隧道Tunnel1:源地址为Router A的Loopback0(1::11/128);配置Tunnel1引用的SID列表aa为主路径,bb为备路径。

<RouterA> system-view

[RouterA] ipv6 segment-routing sid-list aa

[RouterA-srv6-sid-list-aa] sid 2::22

[RouterA-srv6-sid-list-aa] sid 4::44

[RouterA-srv6-sid-list-aa] quit

[RouterA] ipv6 segment-routing sid-list bb

[RouterA-srv6-sid-list-bb] sid 3::33

[RouterA-srv6-sid-list-bb] sid 4::44

[RouterA-srv6-sid-list-bb] quit

[RouterA] interface tunnel 1 mode sr ipv6

[RouterA-Tunnel1] tunnel sid-list aa

[RouterA-Tunnel1] tunnel sid-list bb backup

[RouterA-Tunnel1] source loopback 0

[RouterA-Tunnel1] ipv6 address 6::6 64

[RouterA-Tunnel1] destination 4::44

[RouterA-Tunnel1] ospfv3 1 area 0

(4) 配置自动发布静态路由功能

# 在Router A上配置自动发布静态路由功能,使得到达网络4::44的流量通过IPv6 SR隧道接口Tunnel1转发。

[RouterA-Tunnel1] tunnel route-static preference 1

[RouterA-Tunnel1] quit

(5) 开启IPv6 SR隧道echo模式的BFD检测功能

[RouterA] bfd echo-source-ipv6 37::45

[RouterA] interface tunnel 1

[RouterA-Tunnel1] tunnel bfd enable echo

[RouterA-Tunnel1] quit

4. 验证配置

# 在Router A上执行tracert ipv6命令,可以看到IPv6流量转发路径为aa。

[RouterA] tracert ipv6 4::44

traceroute to 4::44 (4::44), 30 hops at most, 60 byte packets, press CTRL_C to break

1 1::2 0.719 ms 0.821 ms 0.884 ms

2 2::2 1.006 ms 1.859 ms 1.064 ms

# 在Router A的GigabitEthernet3/1/2上执行shutdown,然后使用tracert ipv6命令,查看IPv6报文从源端传到目的端所经过的路径,可以看到流量已切换到备份路径bb上。

[RouterA] tracert ipv6 4::44

traceroute to 4::44 (4::44), 30 hops at most, 60 byte packets, press CTRL_C to break

1 11::2 0.719 ms 0.821 ms 0.884 ms

2 22::2 1.006 ms 1.859 ms 1.064 ms

# 在Router A的GigabitEthernet3/1/2上执行undo shutdown,然后通过display bfd session verbose命令查看BFD会话的详细信息。

[RouterA] display bfd session verbose

Total sessions: 2 Up sessions: 2 Init mode: Active

IPv6 SR session working in echo mode:

Local discr: 34306

Source IP: 1::11

Destination IP: 4::44

Session state: Up

Interface: Tunnel1

Hold time: 2360ms Actual Tx interval: 500ms

Min Rx interval: 500ms Detection time: 2500ms

Rx count: 377 Tx count: 377

Connection type: Indirect Up duration: 00:02:43

Detection mode: Async Slot: 0

Protocol: SRv6

Version: 1

Diag info: No Diagnostic

Hardware mode: Disable

Local discr: 34307

Source IP: 1::11

Destination IP: 4::44

Session state: Up

Interface: Tunnel1

Hold time: 2015ms Actual Tx interval: 500ms

Min Rx interval: 500ms Detection time: 2500ms

Rx count: 373 Tx count: 373

Connection type: Indirect Up duration: 00:02:43

Detection mode: Async Slot: 0

Protocol: SRv6

Version: 1

Diag info: No Diagnostic

Hardware mode: Disable

# 在Router A执行display ipv6 segment-routing sid-list命令,可以看到IPv6 SR SID列表的信息。

[RouterA] display ipv6 segment-routing sid-list

SID list name: aa

SID information:

SID index Address

1 2::22

6 4::44

SID list usage on tunnels:

Tunnel number SID list role

1 Primary

SID list name: bb

SID information:

SID index Address

1 3::33

6 4::44

SID list usage on tunnels:

Tunnel number SID list role

1 Backup

1.11.2 IPv6 SR隧道自动路由发布配置举例

1. 组网需求

· 设备Router A、Router B、Router C和Router D运行IS-IS。

· 建立一条从Router A到Router D的IPv6 SR隧道,实现两个IPv6网络通过IPv6 SR隧道传输数据流量。主路径为Router A->Router B->Router D,备路径为Router A->Router C->Router D。

· 将IPv6 SR隧道发布到IS-IS中,让IPv6 SR隧道参与IS-IS路由计算,使得流量可以通过IPv6 SR隧道转发。

2. 组网图

图1-7 IPv6 SR隧道自动路由发布配置组网图

设备

接口

IP地址

设备

接口

IP地址

Router A

Loop0

1::11/128

Router B

Loop0

2::22/128

GE3/1/1

100::1/128

GE3/1/1

1::2/128

GE3/1/2

1::1/128

GE3/1/2

2::1/128

GE3/1/3

11::1/128

Router D

Loop0

4::44/128

Router C

Loop0

3::33/128

GE3/1/1

200::1/128

GE3/1/1

11::2/128

GE3/1/2

2::2/128

GE3/1/2

22::1/128

GE3/1/3

22::2/128

3. 配置步骤

(1) 配置各接口的IP地址和掩码,具体配置过程略

(2) 配置Router A

# 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口。

<RouterA> system-view

[RouterA] isis 1

[RouterA-isis-1] is-level level-1

[RouterA-isis-1] cost-style wide

[RouterA-isis-1] network-entity 00.0000.0000.0000.0001.00

[RouterA-isis-1] quit

[RouterA] interface gigabitethernet 3/1/1

[RouterA-GigabitEthernet3/1/1] isis ipv6 enable 1

[RouterA-GigabitEthernet3/1/1] quit

[RouterA] interface gigabitethernet 3/1/2

[RouterA-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterA-GigabitEthernet3/1/2] quit

[RouterA] interface gigabitethernet 3/1/3

[RouterA-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterA-GigabitEthernet3/1/3] quit

[RouterA] interface loopback 0

[RouterA-LoopBack0] isis ipv6 enable 1

[RouterA-LoopBack0] quit

# 配置IPv6 Route ID,并开启IPv6 TE功能。

[RouterA] isis 1

[RouterA-isis-1] address-family ipv6

[RouterA--isis-1-ipv6] router-id 1::11

[RouterA-isis-1-ipv6] quit

[RouterA-isis-1] quit

# 在Router A上配置到Router D的IPv6 SR隧道Tunnel1:源地址为Router A的Loopback0接口地址1::11/128,目的地址为Router D的IPv6 Router ID;配置Tunnel1引用的SID列表aa为主路径,bb为备路径。

[RouterA] ipv6 segment-routing sid-list aa

[RouterA-srv6-sid-list-aa] sid 2::22

[RouterA-srv6-sid-list-aa] sid 4::44

[RouterA-srv6-sid-list-aa] quit

[RouterA] ipv6 segment-routing sid-list bb

[RouterA-srv6-sid-list-bb] sid 3::33

[RouterA-srv6-sid-list-bb] sid 4::44

[RouterA-srv6-sid-list-bb] quit

[RouterA] interface tunnel 1 mode sr ipv6

[RouterA-Tunnel1] tunnel sid-list aa

[RouterA-Tunnel1] tunnel sid-list bb backup

[RouterA-Tunnel1] source loopback 0

[RouterA-Tunnel1] ipv6 address 6::6 64

[RouterA-Tunnel1] destination 4::44

# 在Router A上配置自动路由发布功能,并以绝对值方式指定IPv6 SR隧道的度量值为1,使得到达网络4::44的流量通过IPv6 SR隧道接口Tunnel1转发。

[RouterA-Tunnel1] isis ipv6 enable

[RouterA-Tunnel1] srv6 igp shortcut isis

[RouterA-Tunnel1] srv6 igp metric absolute 1

[RouterA-Tunnel1] quit

(3) 配置Router B

# 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口。

<RouterB> system-view

[RouterB-isis-1] is-level level-1

[RouterB] isis 1

[RouterB-isis-1] cost-style wide

[RouterB-isis-1] network-entity 00.0000.0000.0000.0002.00

[RouterB-isis-1] quit

[RouterB] interface gigabitethernet 3/1/2

[RouterB-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterB-GigabitEthernet3/1/2] quit

[RouterB] interface gigabitethernet 3/1/3

[RouterB-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterB-GigabitEthernet3/1/3] quit

[RouterB] interface loopback 0

[RouterB-LoopBack0] isis ipv6 enable 1

[RouterB-LoopBack0] quit

# 配置IPv6 Route ID,并开启IPv6 TE功能。

[RouterB] isis 1

[RouterB-isis-1] address-family ipv6

[RouterB-isis-1-ipv6] router-id 2::22

[RouterB-isis-1-ipv6] quit

[RouterB-isis-1] quit

(4) 配置Router C

# 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口。

<RouterC> system-view

[RouterC] isis 1

[RouterC-isis-1] is-level level-1

[RouterC-isis-1] cost-style wide

[RouterC-isis-1] network-entity 00.0000.0000.0000.0003.00

[RouterC-isis-1] quit

[RouterC] interface gigabitethernet 3/1/2

[RouterC-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterC-GigabitEthernet3/1/2] quit

[RouterC] interface gigabitethernet 3/1/3

[RouterC-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterC-GigabitEthernet3/1/3] quit

[RouterC] interface loopback 0

[RouterC-LoopBack0] isis ipv6 enable 1

[RouterC-LoopBack0] quit

# 配置IPv6 Route ID,并开启IPv6 TE功能。

[RouterC] isis 1

[RouterC-isis-1] address-family ipv6

[RouterC-isis-1-ipv6] router-id 3::33

[RouterC-isis-1-ipv6] quit

[RouterC-isis-1] quit

(5) 配置Router D

# 配置IS-IS协议发布接口所在网段的路由,包括Loopback接口。

<RouterD> system-view

[RouterD] isis 1

[RouterD-isis-1] is-level level-1

[RouterD-isis-1] cost-style wide

[RouterD-isis-1] network-entity 00.0000.0000.0000.0004.00

[RouterD-isis-1] quit

[RouterD] interface gigabitethernet 3/1/1

[RouterD-GigabitEthernet3/1/1] isis ipv6 enable 1

[RouterD-GigabitEthernet3/1/1] quit

[RouterD] interface gigabitethernet 3/1/2

[RouterD-GigabitEthernet3/1/2] isis ipv6 enable 1

[RouterD-GigabitEthernet3/1/2] quit

[RouterD] interface gigabitethernet 3/1/3

[RouterD-GigabitEthernet3/1/3] isis ipv6 enable 1

[RouterD-GigabitEthernet3/1/3] quit

[RouterD] interface loopback 0

[RouterD-LoopBack0] isis ipv6 enable 1

[RouterD-LoopBack0] quit

# 配置IPv6 Route ID,并开启IPv6 TE功能。

[RouterD] isis 1

[RouterD-isis-1] address-family ipv6

[RouterD-isis-1-ipv6] router-id 4::44

[RouterD-isis-1-ipv6] quit

[RouterD-isis-1] quit

4. 验证配置

# 在Router A上执行display ipv6 routing-table命令,可以看到Router D发布的200::1/128路由出接口为Tunnel1。

[RouterA] display ipv6 routing-table 200::1 128

Summary count : 1

Destination: 200::1/128 Protocol : IS_L1

NextHop : 6::6 Preference: 15

Interface : Tun1 Cost : 1

1.11.3 SRv6 VPN配置举例

1. 组网需求

如图1-8所示,核心网为IPv6网络,私网为IPv4网络,在IPv6网络中PE设备之间部署SRv6 VPN,通过IPv6 SR隧道传递VPNv4数据。

· CE 1和CE 2均属于VPN 1。

· CE与PE之间配置EBGP交换VPN路由信息。

· 同一自治系统内的PE设备之间运行IS-IS实现IPv6网络互通,配置MP-IBGP交换VPNv4路由信息。

2. 组网图

图1-8 SRv6 VPN配置组网图

设备

接口

IP地址

设备

接口

IP地址

CE 1

GE3/1/1

10.1.1.2/24

PE 2

Loop0

3::3/128

PE 1

Loop0

1::1/128

GE3/1/1

10.2.1.1/24

GE3/1/1

10.1.1.1/24

GE3/1/2

2002::1/96

GE3/1/2

2001::1/96

CE 2

GE3/1/1

10.2.1.2/24

P

Loop0

2::2/32

GE3/1/1

2001::2/96

GE3/1/2

2002::2/96

3. 配置步骤

(1) 在PE和P设备上配置IPv6 IS-IS,实现骨干网PE和P的互通

# 配置PE 1。

<PE1> system-view

[PE1] isis 1

[PE1-isis-1] is-level level-1

[PE1-isis-1] cost-style wide

[PE1-isis-1] network-entity 10.1111.1111.1111.00

[PE1-isis-1] address-family ipv6 unicast

[PE1-isis-1-ipv6] quit

[PE1-isis-1] quit

[PE1] interface loopback 0

[PE1-LoopBack0] ipv6 address 1::1 128

[PE1-LoopBack0] isis ipv6 enable 1

[PE1-LoopBack0] quit

[PE1] interface gigabitethernet 3/1/2

[PE1-GigabitEthernet3/1/2] ipv6 address 2001::1 96

[PE1-GigabitEthernet3/1/2] isis ipv6 enable

[PE1-GigabitEthernet3/1/2] quit

# 配置P。

<P> system-view

[P] isis

[P-isis-1] is-level level-1

[P-isis-1] cost-style wide

[P-isis-1] network-entity 10.2222.2222.2222.00

[P-isis-1] address-family ipv6 unicast

[P-isis-1-ipv6] quit

[P-isis-1] quit

[P] interface loopback 0

[P-LoopBack0] ipv6 address 2::2 128

[P-LoopBack0] isis ipv6 enable

[P-LoopBack0] quit

[P] interface gigabitethernet 3/1/1

[P-GigabitEthernet3/1/1] ipv6 address 2001::2 96

[P-GigabitEthernet3/1/1] isis ipv6 enable

[P-GigabitEthernet3/1/1] quit

[P] interface gigabitethernet 3/1/2

[P-GigabitEthernet3/1/2] ipv6 address 2002::2 96

[P-GigabitEthernet3/1/2] isis ipv6 enable

[P-GigabitEthernet3/1/2] quit

# 配置PE 2。

<PE2> system-view

[PE2] isis

[PE2-isis-1] is-level level-1

[PE2-isis-1] cost-style wide

[PE2-isis-1] network-entity 10.3333.3333.3333.00

[PE2-isis-1] address-family ipv6 unicast

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

[PE2] interface loopback 0

[PE2-LoopBack0] ipv6 address 3::3 128

[PE2-LoopBack0] isis ipv6 enable

[PE2-LoopBack0] quit

[PE2] interface gigabitethernet 3/1/2

[PE2-GigabitEthernet3/1/2] ipv6 address 2002::1 96

[PE2-GigabitEthernet3/1/2] isis ipv6 enable

[PE2-GigabitEthernet3/1/2] quit

配置完成后,PE 1、P、PE 2之间应能建立IPv6 IS-IS邻居,执行display isis peer命令可以看到邻居达到Up状态。执行display isis route ipv6命令可以看到PE之间学习到对方的Loopback接口的路由。

(2) 在PE设备上配置VPN实例,将CE接入PE

# 配置PE 1。

[PE1] ip vpn-instance vpn1

[PE1-vpn-instance-vpn1] route-distinguisher 100:1

[PE1-vpn-instance-vpn1] vpn-target 111:1

[PE1-vpn-instance-vpn1] quit

[PE1] interface gigabitethernet 3/1/1

[PE1-GigabitEthernet3/1/1] ip binding vpn-instance vpn1

[PE1-GigabitEthernet3/1/1] ip address 10.1.1.1 24

[PE1-GigabitEthernet3/1/1] quit

# 配置PE 2。

[PE2] ip vpn-instance vpn1

[PE2-vpn-instance-vpn1] route-distinguisher 100:1

[PE2-vpn-instance-vpn1] vpn-target 111:1

[PE2-vpn-instance-vpn1] quit

[PE2] interface gigabitethernet 3/1/1

[PE2-GigabitEthernet3/1/1] ip binding vpn-instance vpn1

[PE2-GigabitEthernet3/1/1] ip address 10.2.1.1 24

[PE2-GigabitEthernet3/1/1] quit

# 按图1-8配置各CE的接口IP地址,配置过程略。

配置完成后,在PE设备上执行display ip vpn-instance命令可以看到VPN实例的配置情况。各PE能ping通自己接入的CE。

以PE 1和CE 1为例:

[PE1] display ip vpn-instance

Total VPN-Instances configured : 1

Total IPv4 VPN-Instances configured : 1

Total IPv6 VPN-Instances configured : 1

VPN-Instance Name RD Address family Create time

vpn1 100:1 IPv4/IPv6 2019/08/12 13:59:39

[PE1] ping -vpn-instance vpn1 10.1.1.2

Ping 10.1.1.2 (10.1.1.2): 56 data bytes, press CTRL+C to break

56 bytes from 10.1.1.2: icmp_seq=0 ttl=255 time=2.000 ms

56 bytes from 10.1.1.2: icmp_seq=1 ttl=255 time=0.000 ms

56 bytes from 10.1.1.2: icmp_seq=2 ttl=255 time=1.000 ms

56 bytes from 10.1.1.2: icmp_seq=3 ttl=255 time=0.000 ms

56 bytes from 10.1.1.2: icmp_seq=4 ttl=255 time=0.000 ms

--- Ping statistics for 10.1.1.2 in VPN instance vpn1 ---

5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss

round-trip min/avg/max/std-dev = 0.000/0.600/2.000/0.800 ms

(3) 在PE与CE之间建立EBGP对等体,引入VPN路由

# 配置CE 1。

<CE1> system-view

[CE1] bgp 65410

[CE1-bgp-default] peer 10.1.1.1 as-number 100

[CE1-bgp-default] address-family ipv4 unicast

[CE1-bgp-default-ipv4] peer 10.1.1.1 enable

[CE1-bgp-default-ipv4] import-route direct

[CE1-bgp-default-ipv4] quit

[CE1-bgp-default] quit

# CE 2配置与CE 1设备配置类似,配置过程省略。

# 配置PE 1。

[PE1] bgp 100

[PE1-bgp-default] router-id 1.1.1.1

[PE1-bgp-default] ip vpn-instance vpn1

[PE1-bgp-default-vpn1] peer 10.1.1.2 as-number 65410

[PE1-bgp-default-vpn1] address-family ipv4 unicast

[PE1-bgp-default-ipv4-vpn1] peer 10.1.1.2 enable

[PE1-bgp-default-ipv4-vpn1] quit

[PE1-bgp-default-vpn1] quit

# PE 2配置与PE 1设备配置类似,配置过程省略。

配置完成后,在PE设备上执行display bgp peer ipv4 vpn-instance命令,可以看到PE与CE之间的BGP对等体关系已建立,并达到Established状态。

(4) 在PE之间建立MP-IBGP对等体

# 配置PE 1。

[PE1] bgp 100

[PE1-bgp-default] peer 3::3 as-number 100

[PE1-bgp-default] peer 3::3 connect-interface loopback 0

[PE1-bgp-default] address-family vpnv4

[PE1-bgp-default-vpnv4] peer 3::3 enable

[PE1-bgp-default-vpnv4] quit

[PE1-bgp-default] quit

# 配置PE 2。

[PE2] bgp 100

[PE2-bgp-default] peer 1::1 as-number 100

[PE2-bgp-default] peer 1::1 connect-interface loopback 0

[PE2-bgp-default] address-family vpnv4

[PE2-bgp-default-vpnv4] peer 1::1 enable

[PE2-bgp-default-vpnv4] quit

[PE2-bgp-default] quit

配置完成后,在PE设备上执行display bgp peer vpnv4命令,可以看到PE之间的BGP对等体关系已建立,并达到Established状态。

(5) 在PE设备上配置SRv6 VPN封装的IPv6报文头的源地址

# 配置PE 1。

[PE1] segment-routing ipv6

[PE1-segment-routing-ipv6] encapsulation source-address 11::11

# 配置PE 2。

[PE2] segment-routing ipv6

[PE2-segment-routing-ipv6] encapsulation source-address 33::33

(6) 在PE设备上配置SRv6 VPN封装的IPv6报文头的目的地址End.DT4 SID

# 配置PE 1。

[PE1-segment-routing-ipv6] locator aaa ipv6-prefix 1:2::1:0 120 static 8

[PE1-segment-routing-ipv6-locator-aaa] opcode 1 end-dt4 vpn-instance vpn1

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

[PE1-segment-routing-ipv6] quit

# 配置PE 2。

[PE2-segment-routing-ipv6] locator bbb ipv6-prefix 6:5::1:0 120 static 8

[PE2-segment-routing-ipv6-locator-bbb] opcode 1 end-dt4 vpn-instance vpn1

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

[PE2-segment-routing-ipv6] quit

配置完成后,在PE设备上执行display ipv6 routing-table命令,可以看到已经将End.DT4 SID引入路由表中,并生成SRv6路由。

以PE 1为例:

[PE1] display ipv6 routing-table protocol srv6

Summary count : 1

SRv6 Routing table status : <Active>

Summary count : 1

Destination: 1:2::1:1/128 Protocol : SRv6

NextHop : ::1 Preference: 4

Interface : InLoop0 Cost : 0

SRv6 Routing table status : <Inactive>

Summary count : 0

(7) 在PE设备上配置为私网路由添加End.DT4 SID

# 配置PE 1。

[PE1] bgp 100

[PE1-bgp-default] ip vpn-instance vpn1

[PE1-bgp-default-vpn1] address-family ipv4 unicast

[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 sid-route-recursion [PE1-bgp-default-ipv4-vpn1] quit

[PE1-bgp-default-vpn1] quit

[PE1-bgp-default] quit

[PE1] interface loopback 1

[PE1-LoopBack1] ipv6 address 1:2::1 64

[PE1-LoopBack1] isis ipv6 enable

[PE1-LoopBack1] quit

# 配置PE 2。

[PE2] bgp 100

[PE2-bgp-default] ip vpn-instance vpn1

[PE2-bgp-default-vpn1] address-family ipv4 unicast

[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 sid-route-recursion

[PE2-bgp-default-ipv4-vpn1] quit

[PE2-bgp-default-vpn1] quit

[PE2-bgp-default] quit

[PE2] interface loopback 1

[PE2-LoopBack1] ipv6 address 6:5::1 64

[PE2-LoopBack1] isis ipv6 enable

[PE2-LoopBack1] quit

(8) 在PE设备上配置IPv6对等体之间交换End.DT4 SID,同时允许将私网路由迭代到End.DT4 SID的路由条目上

# 配置PE 1。

[PE1] bgp 100

[PE1-bgp-default] address-family vpnv4

[PE1-bgp-default-vpnv4] peer 3::3 prefix-sid

[PE1-bgp-default-vpnv4] quit

[PE1-bgp-default] ip vpn-instance vpn1

[PE1-bgp-default-vpn1] address-family ipv4 unicast

[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 locator aaa [PE1-bgp-default-ipv4-vpn1] quit

[PE1-bgp-default-vpn1] quit

[PE1-bgp-default] quit

# 配置PE 2。

[PE2] bgp 100

[PE2-bgp-default] address-family vpnv4

[PE2-bgp-default-vpnv4] peer 1::1 prefix-sid

[PE2-bgp-default-vpnv4] quit

[PE2-bgp-default] ip vpn-instance vpn1

[PE2-bgp-default-vpn1] address-family ipv4 unicast

[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 locator bbb

[PE2-bgp-default-ipv4-vpn1] quit

[PE2-bgp-default-vpn1] quit

[PE2-bgp-default] quit

配置完成后,在PE设备上执行display bgp routing-table vpnv4命令查看对端PE发送的路由详细信息,可以看到对端PE发送的路由携带SID属性数据。

以PE 1为例:

[PE1] display bgp routing-table vpnv4 10.2.1.0

BGP local router ID: 1.1.1.1

Local AS number: 100

Route distinguisher: 100:1(vpn1)

Total number of routes: 1

Paths: 1 available, 1 best

BGP routing table information of 10.2.1.0/24:

From : 3::3 (3.3.3.3)

Rely nexthop : FE80::2A96:34FF:FE9D:216

Original nexthop: 3::3

Out interface : GigabitEthernet3/1/2

Route age : 00h14m23s

OutLabel : 3

Ext-Community : <RT: 111:1>

RxPathID : 0x0

TxPathID : 0x0

PrefixSID : End.DT4 SID <6:5::1:1>

AS-path : 65420

Origin : incomplete

Attribute value : MED 0, localpref 100, pref-val 0

State : valid, internal, best

IP precedence : N/A

QoS local ID : N/A

Traffic index : N/A

Tunnel policy : NULL

Rely tunnel IDs : N/A

4. 验证配置

# 在PE设备上执行display ip routing-table vpn-instance命令,可以看到去往对端CE的路由,并且路由下一跳值为路由携带的End.DT4 SID。

以PE 1为例:

[PE1] display ip routing-table vpn-instance vpn1

Destinations : 11 Routes : 11

Destination/Mask Proto Pre Cost NextHop Interface

0.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0

10.1.1.0/24 Direct 0 0 10.1.1.1 GE3/1/1

10.1.1.0/32 Direct 0 0 10.1.1.1 GE3/1/1

10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0

10.1.1.255/32 Direct 0 0 10.1.1.1 GE3/1/1

10.2.1.0/24 BGP 255 0 6:5::1:1 GE3/1/2

127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0

127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0

127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0

127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0

255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0

CE 1和CE 2之间能够ping通。

联系我们