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

11-Segment Routing配置指导

目录

07-EVPN L3VPN over SRv6配置

本章节下载 07-EVPN L3VPN over SRv6配置  (813.67 KB)

07-EVPN L3VPN over SRv6配置


1 EVPN L3VPN over SRv6

1.1  EVPN L3VPN over SRv6简介

EVPN L3VPN over SRv6是指通过SRv6隧道承载EVPN L3VPN业务,通过IPv6网络透明传输用户三层数据,实现属于同一个VPN、位于不同地理位置的用户互通。EVPN L3VPN的详细介绍,请参见“EVPN配置指导”中的“EVPN L3VPN”。

1.1.1  EVPN L3VPN over SRv6基本原理

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

图1-1 EVPN L3VPN over SRv6组网示意图

 

1.1.2  路由信息发布

IPv4 EVPN L3VPN over SRv6和IPv6 EVPN L3VPN over SRv6的路由发布过程类似,以IPv4 EVPN L3VPN over SRv6为例,如图1-1所示,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属性,并按VPN实例分配私网标签End.DT4 SID、End.DT46 SID(即同一VPN实例的所有私网路由分配相同的End.DT4 SID、End.DT46 SID),或按下一跳分配End.DX4 SID(即VPN实例中相同下一跳的私网路由分配相同的End.DX4 SID),形成EVPN的IP前缀路由。PE 1通过MP-BGP把EVPN的IP前缀路由发布给PE 2。

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

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

1.1.3  报文转发

EVPN L3VPN over SRv6支持SRv6 BE、SRv6 TE和SRv6 TE/SRv6 BE混合三种路由迭代方式。采用不同的路由迭代方式时,报文转发过程有所不同。

1. SRv6 BE方式

又称为基于SID的转发方式。该方式根据封装的SRv6 SID查找IPv6路由表进行转发。

IPv4 EVPN L3VPN over SRv6和IPv6 EVPN L3VPN over SRv6的报文转发过程类似,以IPv4 EVPN L3VPN over SRv6为例,完成路由发布后,报文从CE 2到CE 1的转发过程为:

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

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

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

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

(5)     根据报文头携带的SID类型,PE1的处理方式不同:

¡     如果报文头携带的是End.DT4 SID或End.DT46 SID,PE 1根据End.DT4 SID或End.DT46 SID查找Local SID表,执行End.DT4 SID或End.DT46 SID对应的转发动作,即解封装报文去掉IPv6报文头,并根据End.DT4 SID或End.DT46 SID匹配VPN实例1,在VPN实例1的路由表中,查表转发,将报文发送给CE 1。

¡     如果报文头携带的是End.DX4 SID,PE 1执行End.DX4 SID对应的转发动作,即解封装报文去掉IPv6报文头,并按照End.DX4 SID绑定的下一跳和出接口将报文发送给CE 1。

2. SRv6 TE方式

又称为基于SRv6 TE Policy的转发方式。该方式根据报文属性查找匹配的SRv6 TE Policy,为报文添加携带SRv6 SID和SRv6 TE Policy SID列表的SRH头后,通过SRv6 TE Policy转发该报文。

可以通过如下方式将报文引入到SRv6 TE Policy进行转发(即SRv6 TE Policy引流):

·     基于Color引流:查找是否存在Color和Endpoint地址与EVPN路由的Color扩展团体属性和下一跳地址完全相同的SRv6 TE Policy。若存在,则将该EVPN路由迭代到SRv6 TE Policy。当设备收到匹配该EVPN路由的报文时,会通过SRv6 TE Policy转发该报文。

·     基于隧道策略引流:根据路由下一跳地址在隧道策略中查找匹配的SRv6 TE policy。通过首选隧道策略或负载分担隧道策略,可以实现用指定SRv6 TE Policy的路径作为公网隧道来转发私网报文。

隧道策略的详细介绍,请参见“MPLS配置指导”中的“隧道策略”;SRv6 TE Policy的详细介绍,请参见“Segment Routing配置指导”中的“SRv6 TE Policy”。

3. SRv6 TE/SRv6 BE混合方式

该方式优先通过SRv6 TE方式选择转发路径;如果SRv6 TE方式未找到可用的SRv6 TE Policy,则通过SRv6 BE方式选择转发路径。

4. SRv6 TE/SRv6 BE快速切换方式

SRv6 TE/SRv6 BE快速切换方式:SRv6 TE方式选择的路径和SRv6 BE方式选择的路径形成FRR,主路径为SRv6 TE方式选择的路径。如果SRv6 TE方式未找到可用的SRv6 TE Policy,则快速切换到SRv6 BE备份路径转发。该方式缩短了迭代方式切换后路径重新收敛的时间,可以实现快速保护,避免流量长时间丢失。

1.2  Option B跨域VPN

当承载VPN路由的骨干网跨越SRv6网络和MPLS网络时,需要实现SRv6网络和MPLS网络互通。目前仅支持在Option B跨域VPN组网中实现互通。

图1-2所示,在Option B跨域VPN场景中,如果一个AS内部署MPLS网络,另一个AS内部署SRv6网络,为了实现跨域互通,需要实现SRv6 SID与MPLS标签互相转换。

图1-2 跨域VPN-Option B组网示意图

 

1.2.2  End.T SID

在Option B跨域VPN场景中,SRv6网络中的ASBR会按照FEC(目的IPv4地址/掩码或目的IPv6地址/前缀长度)分配End.T SID,并通过IGP协议通告给网络中的其他SRv6节点。End.T SID对应的转发动作为剥掉外层IPv6头,并根据End.T SID查找IPv6 FIB表转发报文。

SRv6网络中的ASBR会为从SRv6网络转发到MPLS网络的报文封装End.T SID。

1.2.3  路由发布

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

(1)     PE 1从CE 1学习到私网路由后,通过MP-IBGP发布给ASBR 1。假设PE 1为私网路由分配的MPLS标签为L1。

(2)     ASBR 1接收PE 1发布的EVPN的IP前缀路由,并通过MP-EBGP将EVPN的IP前缀路由发布给ASBR 2。ASBR 1发布该路由时,将路由的下一跳地址改为自身的地址,为路由分配新的MPLS标签L2,并为MPLS标签L2和MPLS标签L1建立关联。

(3)     ASBR 2从ASBR 1接收到EVPN的IP前缀路由后,通过MP-IBGP将路由发布给PE 2。ASBR 2在发布路由时,将路由的下一跳地址改为自身的地址,为路由分配End.T SID,并为End.T SID和MPLS标签L2建立关联。

(4)     PE 2接收到路由后,将其发布给CE 2。

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

(1)     PE 2从CE 2学习到私网路由后,通过MP-IBGP发布给ASBR 2。PE 2为私网路由分配SRv6 SID。SRv6 SID类型包括End.DT4 SID、End.DT6 SID、End.DT46 SID、End.DX4 SID和End.DX6 SID。

(2)     ASBR 2接收PE 2发布的EVPN的IP前缀路由,并通过MP-EBGP将EVPN的IP前缀路由发布给ASBR 1。ASBR 2发布该路由时,将路由的下一跳地址改为自身的地址,为路由分配新的MPLS标签L2,并为MPLS标签L2和SRv6 SID建立关联。

(3)     ASBR 1从ASBR 2接收到EVPN的IP前缀路由后,通过MP-IBGP将路由发布给PE 2。ASBR 1在发布路由时,将路由的下一跳地址改为自身的地址,为路由分配新的MPLS标签为L1,并为MPLS标签L1和MPLS标签L2建立关联。

(4)     PE 1接收到路由后,将其发布给CE 1。

Option B跨域VPN场景中,ASBR需要接收所有跨域VPN的私网路由,因此,ASBR上不能根据Route Target属性对接收的EVPN的IP前缀路由进行过滤。

1.2.4  报文转发

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

(1)     PE 2接收到报文后,为其封装End.T SID,并将报文转发给ASBR 2。

(2)     ASBR 2收到报文后,剥掉外层IPv6头,并根据End.T SID查找IPv6 FIB表转发报文,出标签为L2。ASBR 2为报文重新封装MPLS标签L2,并将报文转发给ASBR 1。ASBR 1和ASBR 2之间的报文只带一层MPLS标签。

(3)     ASBR 1将MPLS标签L2替换为L1,添加从ASBR 1到PE 1的公网隧道的标签,并将报文转发给PE 1。

(4)     PE 1剥离公网标签、私网标签后,将报文转发给CE 1。

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

(1)     PE 1接收到报文后,为其封装两层标签,私网标签L1和PE 1到ASBR 1的公网标签,并将报文转发给ASBR 1。

(2)     ASBR 1收到报文后,剥离公网标签,将私网标签L1替换为L2,并将报文发送给ASBR 2。ASBR 1和ASBR 2之间的报文只带一层私网标签。

(3)     ASBR 2收到报文后,将私网标签L2替换为SRv6 SID,根据SRv6 SID将报文转发给PE 2。

(4)     PE 2收到报文后,根据SRv6 SID执行对应的转发动作,将报文转发给CE 1。

1.3  SRv6网络与MPLS L3VPN网络互通

图1-3所示,数据中心内部署MPLS L3VPN,数据中心之间通过EVPN L3VPN over SRv6网络连接。为实现不同数据中心跨EVPN L3VPN over SRv6网络互联,数据中心边界设备ASBR上需要配置SRv6网络与MPLS L3VPN网络互通功能。

图1-3 SRv6网络与MPLS L3VPN网络互通组网图

 

在ASBR设备上配置SRv6网络与MPLS L3VPN网络互通功能后,ASBR将对路由进行如下处理:

·     ASBR从MPLS L3VPN网络接收到携带MPLS标签的VPNv4路由后,匹配RT属性,将其添加到对应VPN实例的路由表中,并重生成为EVPN IP前缀路由。ASBR根据该VPN实例的配置为路由分配SRv6 SID,并将携带SRv6 SID的EVPN IP前缀路由发布到EVPN L3VPN over SRv6网络。

·     ASBR从EVPN L3VPN over SRv6网络接收到携带SRv6 SID的EVPN IP前缀路由后,匹配RT属性,将其添加到对应VPN实例的路由表中,并重生成为VPNv4路由。ASBR根据该VPN实例的配置为路由分配MPLS标签,并将携带MPLS标签的VPNv4路由发布到MPLS L3VPN网络。

进行路由重生成后,还需要在ASBR上开启SRv6网络与MPLS网络互通功能,使SRv6 SID和MPLS标签关联。

图1-4 SRv6网络与MPLS L3VPN网络互通报文转发过程图

 

图1-4所示,PE和ASBR均完成路由学习后,Site 1和Site 2跨数据中心互访的报文转发过程为:

(1)     PE 2接收到Site 2内发送的报文后,为报文添加私网标签。PE 2通过公网隧道将报文转发给ASBR 2。

(2)     ASBR 2根据私网标签判断接收到报文所属的VPN实例,在VPN实例内查找路由表,为报文封装SRv6 SID,并通过SRv6 BE或SRv6 TE方式将报文发送给ASBR 1。

(3)     ASBR 1根据SRv6 SID判断接收到报文所属的VPN实例,解除SRv6封装后,在VPN实例内查找路由表,为报文添加私网标签。ASBR 1通过公网隧道将报文发送给PE 1。

(4)     PE 1收到报文后,根据私网标签确定报文所属的VPN实例,通过查找该VPN实例的路由表,确定报文的出接口,剥离私网标签后将报文转发给Site 1。

1.4  EVPN L3VPN over SRv6快速重路由

EVPN L3VPN over SRv6快速重路由功能用来在CE双归属(即一个CE同时连接两个PE)的组网环境下,通过为流量转发的主路径指定一条备份路径,并通过静态BFD检测主路径的状态,实现当主路径出现故障时,将流量迅速切换到备份路径,大大缩短了故障恢复时间。在使用备份路径转发报文的同时,会重新进行路由优选,优选完毕后,使用新的最优路由来转发报文。

目前,EVPN L3VPN over SRv6快速重路由的路径备份方式为EVPN路由备份EVPN路由。

图1-5 EVPN路由备份EVPN路由示意图

 

图1-5所示,在入节点PE 1上指定VPN 1的FRR备份下一跳为PE 3,则PE 1接收到PE 2和PE 3发布的到达CE 2的EVPN路由后,PE 1会记录这两条EVPN路由,并将PE 2发布的EVPN路由当作主路径,PE 3发布的EVPN路由当作备份路径。

在PE 1上配置静态BFD检测,通过BFD检测PE 1到PE 2之间公网隧道的状态。当公网隧道正常工作时,CE 1和CE 2通过主路径CE 1—PE 1—PE 2—CE 2通信。当PE 1检测到该公网隧道出现故障时,PE 1将通过备份路径CE 1—PE 1—PE 3—CE 2转发CE 1访问CE 2的流量。

在这种备份方式中,PE 1负责主路径检测和流量切换。

有关静态BFD功能的详细介绍,请参见“可靠性配置指导”中“BFD”。

1.5  EVPN L3VPN over SRv6配置限制和指导

standard工作模式下,仅以下表格中的单板支持本功能。

表1-1 单板信息一览表

单板类型

单板丝印

CEPC单板

CEPC-CQ8L、CEPC-CQ16L1

CSPEX单板

CSPEX-1802XB、CSPEX-1802X、CSPEX-1812X-E、CSPEX-2304X-G、CSPEX-2612X-E

SPE单板

RX-SPE200-E

 

sdn-wan工作模式下,仅以下表格中的单板支持本功能。

表1-2 单板信息一览表

单板类型

单板丝印

CEPC单板

CEPC-XP4LX、CEPC-XP24LX、CEPC-XP48RX、CEPC-CP4RX、CEPC-CP4RX-L、CEPC-CQ8L、CEPC-CQ16L1

CSPEX单板

CSPEX-1304X、CSPEX-1304S、CSPEX-1404X、CSPEX-1404S、CSPEX-1502X、CSPEX-1504X、CSPEX-1504S、CSPEX-1602X、CSPEX-1804X、CSPEX-1512X、CSPEX-1612X、CSPEX-1812X、CSPEX-1802XB、CSPEX-1802X、CSPEX-1812X-E、CSPEX-2304X-G、CSPEX-2612X-E

SPE单板

RX-SPE200、RX-SPE200-E

OAA单板

IM-NGFWX-IV

 

在EVPN L3VPN over SRv6组网中,不支持配置MPLS的差分服务模式。关于MPLS的差分服务模式的详细介绍,请参见“ACL和QoS配置指导”中的“MPLS QoS”。

1.6  EVPN L3VPN over SRv6配置任务简介

EVPN L3VPN over SRv6配置任务如下:

(1)     配置VPN实例并绑定PE连接CE的接口

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

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

在PE-CE间配置IPv4路由协议(包括静态路由、RIP、OSPF、IS-IS、EBGP或IBGP)或IPv6路由协议(包括IPv6静态路由、RIPng、OSPFv3、IPv6 IS-IS、EBGP或IBGP)

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

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

a.     配置SRv6 SID

本功能用来静态配置End.DT4 SID、End.DT6 SID、End.DT46 SID、End.DX4 SID或End.DX6 SID。

b.     配置BGP引用Locator段

通过引用Locator段后,BGP路由才可以通告Locator段内的SRv6 SID。

c.     配置向对等体/对等体组发布SRv6封装的EVPN路由

只有配置本功能后,VPN路由才能作为EVPN路由发布到对等体/对等体组。

d.     配置PE-PE间交互BGP EVPN路由

e.     (可选)配置为私网路由按下一跳分配End.DX4 SID/End.DX6 SID

配置本功能后,PE设备可以为BGP私网路由按下一跳分配End.DX4 SID/End.DX6 SID。

f.     (可选)配置BGP EVPN路由

(4)     配置路由迭代方式

(5)     配置EVPN L3VPN over SRv6封装的IPv6报文头的源地址

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

(6)     (可选)Option B跨域VPN

(7)     (可选)配置SRv6网络与MPLS L3VPN网络互通

(8)     (可选)配置EVPN L3VPN over SRv6快速重路由

(9)     (可选)配置VPN实例关联的隧道对TTL的处理模式

1.7  配置SRv6 SID

(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 | hex hex-opcode } end-dt4 vpn-instance vpn-instance-name evpn

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

¡     配置End.DT6 SID。

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

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

¡     配置End.DT46 SID。

opcode { opcode | hex hex-opcode } end-dt46 vpn-instance vpn-instance-name 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.8  配置BGP引用Locator段

1. 功能简介

在EVPN L3VPN over SRv6组网场景中,在指定VPN实例的BGP-VPN IPv4/IPv6单播地址族视图下配置本功能后,PE设备将为指定VPN实例的私网路由在引用的Locator段内申请SRv6 SID。

使用End.DT4 SID/End.DT6 SID/End.DT46 SID/End.DX4 SID/End.DX6 SID时,都需要执行本配置。

2. 配置限制和指导

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

·     指定的Locator必须存在。

·     End.DT4 SID/End.DT6 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单播地址族视图或BGP-VPN IPv6单播地址族视图。

¡     进入BGP-VPN IPv4单播地址族视图。

address-family ipv4 [ unicast ]

¡     进入BGP-VPN IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(5)     配置BGP引用Locator段。

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

缺省情况下,未引用Locator。

1.9  配置向对等体/对等体组发布SRv6封装的EVPN路由

1. 功能简介

在EVPN L3VPN over SRv6组网环境中需要配置本功能,否则VPN路由无法作为EVPN路由发布到对等体/对等体组。

2. 配置限制和指导

本功能通常配置在EVPN承载的L3VPN网络的边缘节点和RR(Route Reflector,路由反射器)设备上。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

(4)     配置向对等体/对等体组发布SRv6封装的EVPN路由。

peer { group-name | ipv6-address [ prefix-length ] } advertise encap-type srv6

缺省情况下,向对等体/对等体组发布VXLAN封装的IP前缀路由。

1.10  配置PE-PE间交互BGP EVPN路由

1. 配置限制和指导

PE之间不能同时建立IPv4和IPv6对等体,否则影响路由优选,无法通过SRv6隧道转发流量。

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 EVPN地址族,并进入BGP EVPN地址族视图。

address-family l2vpn evpn

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

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

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

1.11  配置为私网路由按下一跳分配End.DX4 SID/End.DX6 SID

1. 功能简介

在EVPN L3VPN over SRv6组网场景中,如果配置了End.DT4 SID、End.DT6 SID或End.DT46 SID,则PE根据VPN实例为BGP EVPN私网路由分配相同SID。PE对接收到的报文解封装后,会在SID标识的VPN实例内查找路由表,将报文转发给CE。如果希望不查路由表,直接快速地将报文转发给下一跳,则可以基于下一跳地址为BGP路由分配End.DX4/End.DX6 SID。

2. 配置限制和指导

配置本功能前,必须先在BGP-VPN IPv4单播地址族视图或BGP-VPN IPv6单播地址族引用Locator段。

本功能不会为直连路由分配End.DX4 SID或者End.DX6 SID。

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单播地址族视图或BGP-VPN IPv6单播地址族视图。

¡     进入BGP-VPN IPv4单播地址族视图。

address-family ipv4 [ unicast ]

¡     进入BGP-VPN IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(5)     配置根据下一跳分配End.DX4 SID或End.DX6 SID。请选择其中一项进行配置。

¡     配置BGP EVPN路由为所有下一跳分配End.DX4/End.DX6 SID。

segment-routing ipv6 apply-sid all-nexthop evpn

¡     依次执行以下命令,配置BGP EVPN路由为指定下一跳分配End.DX4/End.DX6 SID。

segment-routing ipv6 apply-sid specify-nexthop evpn

nexthop nexthop-address interface interface-type interface-number

缺省情况下,根据VPN实例为私网路由分配SID。

1.12  配置BGP EVPN路由

1.12.1  配置限制和指导

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

1.12.2  配置BGP EVPN路由反射

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

(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

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

1.12.3  配置BGP EVPN路由属性

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

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

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

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

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

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

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

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

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

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

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

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

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

1.12.4  配置BGP EVPN路由过滤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

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

filter-policy { mac-acl-number | name mac-acl-name } export

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

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

filter-policy { mac-acl-number | name mac-acl-name } import

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

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

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

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

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

policy vpn-target

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

1.12.5  配置BGP Add-Path

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

(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.13  配置路由迭代方式

1. 功能简介

EVPN L3VPN over SRv6网络中,设备为用户流量封装SRv6 SID后,可以根据如下路由迭代方式为封装后的报文查找转发路径:

·     SRv6 BE方式:又称为基于SID的转发方式。该方式根据封装的End.DT4 SID/End.DT6 SID/End.DT46 SID查找IPv6路由表进行转发。

·     SRv6 TE方式:又称为基于SRv6 TE Policy的转发方式。该方式根据报文属性查找匹配的SRv6 TE Policy,为报文添加携带End.DT4 SID/End.DT6 SID/End.DT46 SID和SRv6 TE Policy SID列表的SRH头后,通过SRv6 TE Policy转发该报文。有关基于SRv6 TE Policy的转发方式的详细介绍,请参见“Segment Routing配置指导”中的“SRv6 TE Policy”。

·     SRv6 TE/SRv6 BE混合方式:优先通过SRv6 TE方式选择转发路径;如果SRv6 TE方式未找到可用的SRv6 TE Policy,则通过SRv6 BE方式选择转发路径。

·     SRv6 TE/SRv6 BE快速切换方式:SRv6 TE方式选择的路径和SRv6 BE方式选择的路径形成FRR,主路径为SRv6 TE方式选择的路径。如果SRv6 TE方式未找到可用的SRv6 TE Policy,则快速切换到SRv6 BE备份路径转发。该方式缩短了迭代方式切换后路径重新收敛的时间,可以实现快速保护,避免流量长时间丢失。

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单播地址族视图或BGP-VPN IPv6单播地址族视图。

¡     进入BGP-VPN IPv4单播地址族视图。

address-family ipv4 [ unicast ]

¡     进入BGP-VPN IPv6单播地址族视图。

address-family ipv6 [ unicast ]

(5)     配置路由迭代方式

segment-routing ipv6 { best-effort | traffic-engineering | traffic-engineering best-effort | traffic-engineering best-effort-backup } evpn

缺省情况下,根据路由的下一跳地址查找IPv6路由表进行转发。

1.14  配置EVPN L3VPN over SRv6封装的IPv6报文头的源地址

1. 配置限制和指导

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

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

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入SRv6视图。

segment-routing ipv6

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

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

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

1.15  Option B跨域VPN

1. 功能简介

在Option B跨域VPN场景中,如果一个AS内部署MPLS网络,另一个AS内部署SRv6网络,为了实现跨域互通,需要在部署SRv6网络的AS域的ASBR上开启SRv6网络与MPLS网络互通功能,以实现End.T SID的分配,并建立End.T SID与MPLS标签的关联。

2. 配置限制和指导

开启SRv6网络与MPLS网络互通功能后,路由从SRv6网络发布到MPLS网络时,会按照每下一跳方式分配标签,不受label-allocation-mode命令和apply-label命令的影响。有关label-allocation-mode命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”;有关apply-label命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L3VPN”。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

(4)     配置从对等体/对等体组接收到BGP EVPN路由后,修改路由信息。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } re-originated [ replace-rt ]

缺省情况下,不修改从对等体/对等体组接收到的EVPN路由的信息。

(5)     (可选)配置向对等体/对等体组发布源EVPN路由。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } advertise original-route

缺省情况下,通过peer re-originated命令配置修改路由信息后,不向对等体/对等体组发布源EVPN路由。

(6)     (可选)抑制向对等体/对等体组发送修改路由信息后的EVPN路由。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } suppress re-originated ip-prefix

缺省情况下,通过peer re-originated命令配置修改路由信息后,向对等体/对等体组发送修改路由信息后的EVPN路由。

(7)     开启SRv6网络与MPLS网络互通功能。

srv6-mpls-interworking enable

缺省情况下,SRv6网络与MPLS网络互通功能处于关闭状态。

(8)     配置BGP引用Locator段。

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

缺省情况下,未引用Locator。

(9)     配置路由迭代方式。

segment-routing ipv6 { best-effort | traffic-engineering | traffic-engineering best-effort } evpn

缺省情况下,根据路由的下一跳地址查找IPv6路由表进行转发。

1.16  配置SRv6网络与MPLS L3VPN网络互通

1. 功能简介

数据中心内部署MPLS L3VPN网络,不同数据中心通过EVPN L3VPN over SRv6网络连接时,需要在数据中心的边界设备ASBR上配置本功能,以实现数据中心之间互联。

2. 配置准备

需要在ASBR上开启SRv6网络与MPLS网络互通功能。

3. 配置将VPNv4/VPNv6路由重生成为EVPN IP前缀路由

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

¡     进入BGP VPNv4地址族视图。

address-family vpnv4

¡     进入BGP VPNv6地址族视图。

address-family vpnv6

(4)     配置从对等体/对等体组接收到BGP路由后,修改路由信息。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } re-originated stitch-evpn

缺省情况下,不修改从对等体/对等体组接收到的VPNv4/VPNv6路由的信息。

4. 配置将EVPN IP前缀路由重生成为VPNv4/VPNv6路由

(1)     进入系统视图。

system-view

(2)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

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

address-family l2vpn evpn

(4)     配置从对等体/对等体组接收到BGP路由后,修改路由信息。

peer { group-name | ipv4-address [ mask-length ] | ipv6-address [ prefix-length ] } re-originated [ ip-prefix ] stitch-l3vpn

缺省情况下,不修改从对等体/对等体组接收到的EVPN路由的信息。

1.17  配置EVPN L3VPN over SRv6快速重路由

1. 功能简介

EVPN L3VPN over SRv6快速重路由功能可以通过开启指定地址族的快速重路由功能实现。采用这种方式时,设备会为当前VPN实例的所有BGP路由自动计算备份下一跳,即只要从不同BGP对等体学习到了到达同一目的网络的路由,且这些路由不等价,就会生成主备两条路由。

在缺省情况下,由于VPN实例的IP路由表中没有SRv6 SID的路由信息,快速重路由功能如需使用静态BFD会话来检测主路径的可达性,只能使用检测两端PE间Locator网段地址的静态BFD会话。如果多个VPN实例下的地址族引用了相同的Locator,则这些地址族下的快速重路由功能可能会使用同一个静态BFD会话来检测主路径的可达性。一旦BFD检测到路径不可用,则多个地址族下的BGP路由将同时进行路径切换,不利于精细化管理。

为了解决上述问题,可以在BGP-VPN IPv4单播地址族视图或BGP-VPN IPv6单播地址族视图下配置segment-routing ipv6 primary-path-detect sid-bfd evpn命令。配置该命令后,携带SRv6 SID的IP前缀路由在添加到VPN实例IP路由表时,会将SRv6 SID作为路由的下一跳一并添加,使得快速重路由功能在使用静态BFD会话来检测主路径的可达性时,可以关联检测两端PE间SRv6 SID的静态BFD会话,并且会优先关联检测两端PE间SRv6 SID的静态BFD会话。这样BFD在检测到SRv6 SID不可达时,仅影响一个地址族内BGP路由的路径切换,为快速重路由功能提供更小的控制粒度。

2. 配置限制和指导

在某些组网情况下,执行pic命令开启该地址族的快速重路由功能,为所有BGP路由生成备份下一跳后,可能会导致路由环路,请谨慎使用本命令。

segment-routing ipv6 primary-path-detect sid-bfd evpn命令仅为迭代方式为SRv6 BE方式的路由生效。当路由的迭代方式为SRv6 TE/SRv6 BE混合方式、SRv6 TE/SRv6 BE快速切换方式或SRv6 TE路径和SRv6 BE路径形成多级FRR时,只有在优先级更高的SRv6 TE路径不可用时,该命令才能生效。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置静态BFD检测。

bfd static session-name [ peer-ipv6 ipv6-address [ vpn-instance vpn-instance-name ] source-ipv6 ipv6-address [ discriminator local local-value remote remote-value ] [ track-interface interface-type interface-number ] ]

未配置segment-routing ipv6 primary-path-detect sid-bfd命令时,指定的peer-ipv6 ipv6-address参数和source-ipv6 ipv6-address参数必须是链路两端设备发布的Locator网段地址。

配置segment-routing ipv6 primary-path-detect sid-bfd命令后,指定的peer-ipv6 ipv6-address参数和source-ipv6 ipv6-address参数可以是链路两端设备在VPN实例内分配的SRv6 SID。

有关本命令的详细介绍,请参见“可靠性命令参考”中的“BFD”。

(3)     退回系统视图。

quit

(4)     进入BGP实例视图。

bgp as-number [ instance instance-name ]

(5)     配置通过控制报文方式或Echo方式的BFD会话检测主路由的下一跳是否可达。

primary-path-detect bfd { ctrl | echo }

缺省情况下,通过ARP检测主路由的下一跳是否可达。

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

(6)     (可选)配置通过检测SRv6 SID的静态BFD会话,来检测SRv6 VPN快速重路由功能的主路径是否可达。

¡     请依次执行以下命令,在BGP-VPN IPv4单播地址族视图下配置通过检测SRv6 SID的静态BFD会话,来检测SRv6 VPN快速重路由功能的主路径是否可达。

ip vpn-instance vpn-instance-name

address-family ipv4 [ unicast ]

segment-routing ipv6 primary-path-detect sid-bfd evpn

¡     请依次执行以下命令,在BGP-VPN IPv6单播地址族视图下配置通过检测SRv6 SID的静态BFD会话,来检测SRv6 VPN快速重路由功能的主路径是否可达。

ip vpn-instance vpn-instance-name

address-family ipv6 [ unicast ]

segment-routing ipv6 primary-path-detect sid-bfd evpn

缺省情况下,设备只能通过检测Locator网段的静态BFD会话,来检测SRv6 VPN快速重路由功能的主路径是否可达。

(7)     (可选)退回BGP实例视图。

quit

quit

(8)     进入BGP EVPN地址族视图。

address-family l2vpn evpn

(9)     开启当前地址族的快速重路由功能。

pic

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

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

1.18  配置VPN实例关联的隧道对TTL的处理模式

1. 功能简介

VPN实例关联的隧道对报文TTL有如下两种处理方式:

·     Pipe模式:当IP(或IPv6)报文进入该VPN实例的隧道时,Ingress设备会为原始报文添加外层报文头部,使用缺省值255(或在SRv6视图下通过执行encapsulation source-address ip-ttl命令指定的TTL值)作为外层IP报文的TTL(或IPv6报文的Hop Limit);离开该VPN实例的隧道时,Egress设备不修改原始IP报文的TTL(或IPv6报文的Hop Limit)。使用这种方式时,公网中的节点对用户网络的报文不可见。公网Tracert的结果不包括每一跳信息,从而隐藏公网的结构。

·     Uniform模式:当IP(或IPv6)报文进入该VPN实例的隧道时,Ingress设备会为原始报文添加外层报文头部,将原始报文的TTL(或Hop Limit)值复制到外层IP报文的TTL(或IPv6报文的Hop Limit)域;离开该VPN实例的隧道时,Egress设备再将外层IP报文的TTL(或IPv6报文的Hop Limit)复制到原始IP报文的TTL(或IPv6报文的Hop Limit)域。使用这种方式时,公网中的节点对用户网络的报文可见。报文沿着隧道传输的过程中,TTL逐跳递减,Tracert的结果将反映报文实际经过的路径。

2. 配置限制和指导

目前仅支持配置VPN实例关联的SRv6隧道对TTL的处理模式。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入VPN实例视图。

ip vpn-instance vpn-instance-name [ index vpn-index ]

(3)     配置VPN实例关联的隧道对TTL的处理模式。

ttl-mode { pipe | uniform }

缺省情况下,VPN实例关联的隧道对TTL的处理模式是Pipe模式。

本命令的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。

1.19  EVPN L3VPN over SRv6显示和维护

1.19.1  复位BGP会话

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

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

表1-3 复位BGP会话

操作

命令

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

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

复位VPNv4地址族下的BGP会话

reset bgp [ instance instance-name ] ipv6-address [ prefix-length ] l2vpn evpn

 

1.19.2  显示和维护EVPN L3VPN over SRv6的运行状态

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

表1-4 显示和维护EVPN L3VPN over SRv6的运行状态

操作

命令

显示BGP EVPN路由信息

display bgp [ instance instance-name ] l2vpn evpn [ peer ipv4-address { advertised-routes | received-routes } [ statistics ] | route-distinguisher route-distinguisher [ route-type ip-prefix ] [ evpn-route route-length [ advertise-info ] ] | route-type { auto-discovery | es | imet | ip-prefix | mac-ip } | statistics ]

1.20  EVPN L3VPN over SRv6典型配置举例

1.20.1  IPv4 EVPN L3VPN over SRv6 BE典型配置举例

1. 组网需求

图1-6所示,核心网为IPv6网络,私网为IPv4网络,在IPv6网络中PE设备之间部署EVPN L3VPN over SRv6 BE,通过SRv6隧道传递EVPN数据。

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

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

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

2. 组网图

图1-6 IPv4 EVPN L3VPN over SRv6配置组网图

设备

接口

IP地址

设备

接口

IP地址

CE 1

XGE3/1/1

10.1.1.2/24

PE 2

Loop0

3::3/128

PE 1

Loop0

1::1/128

 

XGE3/1/1

10.2.1.1/24

 

XGE3/1/1

10.1.1.1/24

 

XGE3/1/2

2002::1/96

 

XGE3/1/2

2001::1/96

CE 2

XGE3/1/1

10.2.1.2/24

P

Loop0

2::2/128

 

 

 

 

XGE3/1/1

2001::2/96

 

 

 

 

XGE3/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 ten-gigabitethernet 3/1/2

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

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

[PE1-Ten-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 ten-gigabitethernet 3/1/1

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

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

[P-Ten-GigabitEthernet3/1/1] quit

[P] interface ten-gigabitethernet 3/1/2

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

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

[P-Ten-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 ten-gigabitethernet 3/1/2

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

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

[PE2-Ten-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 ten-gigabitethernet 3/1/1

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

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

[PE1-Ten-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 ten-gigabitethernet 3/1/1

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

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

[PE2-Ten-GigabitEthernet3/1/1] quit

# 按图1-6配置各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           N/A                 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 l2vpn evpn

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

[PE1-bgp-default-evpn] 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 l2vpn evpn

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

[PE2-bgp-default-evpn] quit

[PE2-bgp-default] quit

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

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

# 配置PE 1。

[PE1] segment-routing ipv6

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

# 配置PE 2。

[PE2] segment-routing ipv6

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

(6)     在PE设备上配置SRv6 Locator,由IGP通告该Locator

# 配置PE 1。

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

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

[PE1-segment-routing-ipv6] quit

[PE1] isis 1

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

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

[PE1-isis-1-ipv6] quit

[PE1-isis-1] quit

# 配置PE 2。

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

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

[PE2-segment-routing-ipv6] quit

[PE2] isis 1

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

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

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

(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 locator aaa evpn

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

[PE1-bgp-default-vpn1] quit

[PE1-bgp-default] 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 locator bbb evpn

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

[PE2-bgp-default-vpn1] quit

[PE2-bgp-default] 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::101/128                                Protocol  : SRv6

NextHop    : ::1                                         Preference: 4

Interface  : InLoop0                                     Cost      : 0

 

SRv6 Routing table status : <Inactive>

Summary count : 0

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

# 配置PE 1。

[PE1] bgp 100

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 3::3 advertise encap-type srv6

[PE1-bgp-default-evpn] quit

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

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

[PE1-bgp-default-ipv4-vpn1] segment-routing ipv6 best-effort evpn

[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 l2vpn evpn

[PE2-bgp-default-evpn] peer 1::1 advertise encap-type srv6

[PE2-bgp-default-evpn] quit

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

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

[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 best-effort evpn

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

[PE2-bgp-default-vpn1] quit

[PE2-bgp-default] quit

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

以PE 1为例:

[PE1] display bgp l2vpn evpn [5][0][24][10.2.1.0]/80

 

 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 [5][0][24][10.2.1.0]/80:

 From            : 3::3 (3.3.3.3)

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

 Original nexthop: 3::3

 Out interface   : Ten-GigabitEthernet3/1/2

 Route age       : 00h14m23s

 OutLabel        : NULL

 Ext-Community   : <RT: 111:1>

 RxPathID        : 0x0

 TxPathID        : 0x0

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

4. 验证配置

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

以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        XGE3/1/1

10.1.1.0/32        Direct  0   0           10.1.1.1        XGE3/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        XGE3/1/1

10.2.1.0/24        BGP     255 0           6:5::           XGE3/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通。

1.20.2  Option B跨域VPN配置举例

1. 组网需求

图1-7所示,AS 100内部署EVPN L3VPN网络,AS 200内部署EVPN L3VPN over SRv6网络,需要通过Option B跨域VPN方式,实现不同网络的同一VPN用户可以互访。

2. 组网图

图1-7 Option B跨域VPN配置组网图

设备

接口

IP地址

设备

接口

IP地址

CE 1

XGE3/1/1

10.1.1.2/24

CE 2

XGE3/1/1

20.1.1.2/24

PE 1

Loop0

1.1.1.1/32

PE 2

Loop0

1::1/128

 

XGE3/1/1

10.1.1.1/24

 

XGE3/1/1

20.1.1.1/24

 

XGE3/1/2

11.1.1.1/24

 

XGE3/1/2

100::1/96

ASBR 1

Loop0

2.2.2.2/32

ASBR 2

Loop0

2::2/128

 

XGE3/1/1

11.1.1.2/24

 

XGE3/1/1

100::2/96

 

XGE3/1/2

12.1.1.1/24

 

XGE3/1/2

12.1.1.2/24

 

3. 配置步骤

(1)     配置CE 1

# 与PE建立EBGP对等体,引入VPN路由。

<CE1> system-view

[CE1] bgp 101

[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

(2)     配置PE 1

# 在PE 1上运行IS-IS。

<PE1> system-view

[PE1] isis 1

[PE1-isis-1] cost-style wide

[PE1-isis-1] network-entity 10.1111.1111.1111.00

[PE1-isis-1] quit

# 配置LSR ID,使能MPLS和LDP。

[PE1] mpls lsr-id 1.1.1.1

[PE1] mpls ldp

[PE1-ldp] quit

# 配置接口Ten-GigabitEthernet3/1/2,在接口上运行IS-IS,并使能MPLS和LDP。

[PE1] interface ten-gigabitethernet 3/1/2

[PE1-Ten-GigabitEthernet3/1/2] ip address 11.1.1.1 255.0.0.0

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

[PE1-Ten-GigabitEthernet3/1/2] mpls enable

[PE1-Ten-GigabitEthernet3/1/2] mpls ldp enable

[PE1-Ten-GigabitEthernet3/1/2] quit

# 创建Loopback0接口,在接口上运行IS-IS。

[PE1] interface loopback 0

[PE1-LoopBack0] ip address 1.1.1.1 32

[PE1-LoopBack0] isis enable 1

[PE1-LoopBack0] quit

# 创建一个VPN实例,名为vpn1,配置RD和Route Target属性。

[PE1] ip vpn-instance vpn1

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

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

[PE1-vpn-instance-vpn1] quit

# 将连接CE 1的接口绑定到创建的VPN实例。

[PE1] interface ten-gigabitethernet 3/1/1

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

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

[PE1-Ten-GigabitEthernet3/1/1] quit

# 在PE 1上运行BGP。

[PE1] bgp 100

[PE1-bgp-default] router-id 1.1.1.1

# 配置与对等体2.2.2.2交换EVPN路由。

[PE1-bgp-default] peer 2.2.2.2 as-number 100

[PE1-bgp-default] peer 2.2.2.2 connect-interface loopback 0

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 2.2.2.2 enable

[PE1-bgp-default-evpn] quit

# 与CE建立EBGP对等体,引入VPN路由。

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

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

[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

(3)     配置ASBR 1

# 在ASBR 1上运行IS-IS。

<ASBR1> system-view

[ASBR1] isis 1

[ASBR1-isis-1] cost-style wide

[ASBR1-isis-1] network-entity 10.2222.2222.2222.00

[ASBR1-isis-1] quit

# 配置LSR ID,使能MPLS和LDP。

[ASBR1] mpls lsr-id 2.2.2.2

[ASBR1] mpls ldp

[ASBR1-ldp] quit

# 配置接口Ten-GigabitEthernet3/1/1,在接口上运行IS-IS,并使能MPLS和LDP。

[ASBR1] interface ten-gigabitethernet 3/1/1

[ASBR1-Ten-GigabitEthernet3/1/1] ip address 11.1.1.2 255.0.0.0

[ASBR1-Ten-GigabitEthernet3/1/1] isis enable 1

[ASBR1-Ten-GigabitEthernet3/1/1] mpls enable

[ASBR1-Ten-GigabitEthernet3/1/1] mpls ldp enable

[ASBR1-Ten-GigabitEthernet3/1/1] quit

# 配置接口Ten-GigabitEthernet3/1/2,使能MPLS。

[ASBR1] interface ten-gigabitethernet 3/1/2

[ASBR1-Ten-GigabitEthernet3/1/2] ip address 12.1.1.1 255.0.0.0

[ASBR1-Ten-GigabitEthernet3/1/2] mpls enable

[ASBR1-Ten-GigabitEthernet3/1/2] quit

# 创建Loopback0接口,并运行IS-IS。

[ASBR1] interface loopback 0

[ASBR1-LoopBack0] ip address 2.2.2.2 32

[ASBR1-LoopBack0] isis enable 1

[ASBR1-LoopBack0] quit

# 在ASBR 1上运行BGP。

[ASBR1] bgp 100

[ASBR1-bgp-default] router-id 2.2.2.2

[ASBR1-bgp-default] peer 1.1.1.1 as-number 100

[ASBR1-bgp-default] peer 1.1.1.1 connect-interface loopback 0

[ASBR1-bgp-default] peer 12.1.1.2 as-number 200

[ASBR1-bgp-default] peer 12.1.1.2 connect-interface ten-gigabitethernet 3/1/2

# 不对接收的EVPN路由进行Route target过滤。

[ASBR1-bgp-default] address-family l2vpn evpn

[ASBR1-bgp-default-evpn] undo policy vpn-target

# 配置与IBGP对等体1.1.1.1和EBGP对等体12.1.1.2交换EVPN路由。

[ASBR1-bgp-default-evpn] peer 12.1.1.2 enable

[ASBR1-bgp-default-evpn] peer 1.1.1.1 enable

[ASBR1-bgp-default-evpn] quit

[ASBR1-bgp-default] quit

(4)     配置ASBR 2

# 在ASBR 2上运行IPv6 IS-IS。

<ASBR2> system-view

[ASBR2] isis 1

[ASBR2-isis-1] cost-style wide

[ASBR2-isis-1] network-entity 10.3333.3333.3333.00

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

[ASBR2-isis-1-ipv6] quit

[ASBR2-isis-1] quit

# 配置接口Ten-GigabitEthernet3/1/1,在接口上运行IPv6 IS-IS。

[ASBR2] interface ten-gigabitethernet 3/1/1

[ASBR2-Ten-GigabitEthernet3/1/1] ipv6 address 100::2 96

[ASBR2-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[ASBR2-Ten-GigabitEthernet3/1/1] quit

# 配置接口Ten-GigabitEthernet3/1/2,使能MPLS。

[ASBR2] interface ten-gigabitethernet 3/1/2

[ASBR2-Ten-GigabitEthernet3/1/2] ip address 12.1.1.2 255.0.0.0

[ASBR2-Ten-GigabitEthernet3/1/2] mpls enable

[ASBR2-Ten-GigabitEthernet3/1/2] quit

# 创建Loopback0接口,并运行IPv6 IS-IS。

[ASBR2] interface loopback 0

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

[ASBR2-LoopBack0] isis ipv6 enable 1

[ASBR2-LoopBack0] quit

# 在ASBR 2上运行BGP。

[ASBR2] bgp 200

[ASBR2-bgp-default] router-id 3.3.3.3

[ASBR2-bgp-default] peer 12.1.1.1 as-number 100

[ASBR2-bgp-default] peer 12.1.1.1 connect-interface ten-gigabitethernet 3/1/2

[ASBR2-bgp-default] peer 1::1 as-number 200

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

# 不对接收的EVPN路由进行Route target过滤。

[ASBR2-bgp-default] address-family l2vpn evpn

[ASBR2-bgp-default-evpn] undo policy vpn-target

# 配置与IBGP对等体1::1和EBGP对等体12.1.1.1交换EVPN路由。

[ASBR2-bgp-default-evpn] peer 12.1.1.1 enable

[ASBR2-bgp-default-evpn] peer 1::1 enable

[ASBR2-bgp-default-evpn] quit

[ASBR2-bgp-default] quit

# 配置EVPN L3VPN over SRv6 BE。

[ASBR2] segment-routing ipv6

[ASBR2-segment-routing-ipv6] encapsulation source-address 2::2

[ASBR2-segment-routing-ipv6] locator abc ipv6-prefix 43:1:: 64 static 32

[ASBR2-segment-routing-ipv6-locator-abc] quit

[ASBR2-segment-routing-ipv6] quit

[ASBR2] bgp 200

[ASBR2-bgp-default] address-family l2vpn evpn

[ASBR2-bgp-default-evpn] peer 1::1 advertise encap-type srv6

[ASBR2-bgp-default-evpn] segment-routing ipv6 best-effort evpn

[ASBR2-bgp-default-evpn] segment-routing ipv6 locator abc evpn

# 开启SRv6网络和MPLS网络互通功能。

[ASBR2-bgp-default-evpn] srv6-mpls-interworking enable

[ASBR2-bgp-default-evpn] quit

[ASBR2-bgp-default] quit

# 配置IS-IS引用Locator段。

[ASBR2] isis 1

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

[ASBR2-isis-1-ipv6] segment-routing ipv6 locator abc

[ASBR2-isis-1-ipv6] quit

[ASBR2-isis-1] quit

(5)     配置PE 2

# 在PE 2上运行IPv6 IS-IS。

<PE2> system-view

[PE2] isis 1

[PE2-isis-1] cost-style wide

[PE2-isis-1] network-entity 10.4444.4444.4444.00

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

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

# 配置接口Ten-GigabitEthernet3/1/2,在接口上运行IPv6 IS-IS。

[PE2] interface ten-gigabitethernet 3/1/2

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

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

[PE2-Ten-GigabitEthernet3/1/2] quit

# 创建Loopback0接口,在接口上运行IPv6 IS-IS。

[PE2] interface loopback 0

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

[PE2-LoopBack0] isis ipv6 enable 1

[PE2-LoopBack0] quit

# 创建一个VPN实例,名为vpn1,配置RD和Route Target属性。

[PE2] ip vpn-instance vpn1

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

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

[PE2-vpn-instance-vpn1] quit

# 将连接CE 1的接口绑定到创建的VPN实例。

[PE2] interface ten-gigabitethernet 3/1/1

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

[PE2-Ten-GigabitEthernet3/1/1] ip address 20.1.1.1 24

[PE2-Ten-GigabitEthernet3/1/1] quit

# 在PE 2上运行BGP。

[PE2] bgp 200

[PE2-bgp-default] router-id 4.4.4.4

# 配置与IBGP对等体2::2交换EVPN路由。

[PE2-bgp-default] peer 2::2 as-number 200

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

[PE2-bgp-default] address-family l2vpn evpn

[PE2-bgp-default-evpn] peer 2::2 enable

[PE2-bgp-default-evpn] quit

# 与CE建立EBGP对等体,引入VPN路由。

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

[PE2-bgp-default-vpn1] peer 20.1.1.2 as-number 201

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

[PE2-bgp-default-ipv4-vpn1] peer 20.1.1.2 enable

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

[PE2-bgp-default-vpn1] quit

# 配置L3VPN over SRv6 BE。

[PE2] segment-routing ipv6

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

[PE2-segment-routing-ipv6] locator abc ipv6-prefix 42:1:: 64 static 32

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

[PE2-segment-routing-ipv6] quit

[PE2] bgp 200

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

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

[PE2-bgp-default-ipv4-vpn1] segment-routing ipv6 best-effort evpn

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

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

[PE2-bgp-default-vpn1] quit

[PE2-bgp-default] address-family l2vpn evpn

[PE2-bgp-default-evpn] peer 2::2 advertise encap-type srv6

[PE2-bgp-default-evpn] quit

[PE2-bgp-default] quit

# 配置IS-IS引用Locator段。

[PE2] isis 1

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

[PE2-isis-1-ipv6] segment-routing ipv6 locator abc

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

(6)     配置CE 2

# 与PE建立EBGP对等体,引入VPN路由。

<CE2> system-view

[CE2] bgp 201

[CE2-bgp-default] peer 20.1.1.1 as-number 200

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

[CE2-bgp-default-ipv4] peer 20.1.1.1 enable

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

[CE2-bgp-default-ipv4] quit

[CE2-bgp-default] quit

4. 验证配置

# 在ASBR 2上执行display mpls lsp命令,可以看到MPLS标签和SRv6 SID建立了映射关系,即LSP的出标签为SRv6 SID。

[ASBR2] display mpls lsp srv6-mpls-interworking

FEC            : 3::3/43:1::1:0:2

Protocol       : BGP

In Label       : 600127

Out SRv6 SID   : 43:1::1:0:2

Path ID        : 0x16000000.1

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

1.20.3  IPv4 EVPN L3VPN over G-SRv6配置举例(COC32类型的Locator)

1. 组网需求

图1-9所示,核心网为IPv6网络,私网为IPv4网络,在IPv6网络中PE设备之间部署SRv6 TE Policy隧道,通过SRv6 TE Policy隧道实现端到端的私网业务数据传输。

·     核心网中设备较多,导致SRv6 TE Policy最优候选路径的SID列表中存在较多的SRv6 SID,为了减少报文SRH扩展头长度,采用G-SRv6压缩头方案。

·     核心网络内部的SRv6节点上采用COC32类型的Locator,并从COC32类型的Locator中分配带COC标记的SID。

·     如图1-8所示,自治系统内需要合理规划Locator的公共前缀,否则报文转发将出现问题。规定所有设备上COC32类型的Locator的公共前缀统一为A:1:1:A::,长度为64位。另外,Locator的IPv6地址前缀长度为80位,COC32类型的Locator段中静态段长度为8位,Args预留段长度为16位,因此计算出COC32类型的Locator段中动态段长度为8位,MBZ长度为16位。

图1-8 自治系统内COC32类型的Locator的规划

 

2. 组网图

图1-9 IPv4 EVPN L3VPN over G-SRv6配置组网图

设备

接口

IP地址

设备

接口

IP地址

CE 1

XGE3/1/1

10.1.1.1/30

CE 2

XGE3/1/2

20.1.1.1/30

 

Loop0

11.11.11.11/32

 

Loop0

22.22.22.22/32

PE 1

Loop0

1::1/128

PE 2

Loop0

5::5/128

 

XGE3/1/1

10.1.1.2/30

 

XGE3/1/2

20.1.1.2/30

 

XGE3/1/2

12:1:1::1/126

 

XGE3/1/1

45:1:1::2/126

P 1

Loop0

2::2/128

P 2

Loop0

3::3/128

 

XGE3/1/1

23:1:1::1/126

 

XGE3/1/1

23:1:1::2/126

 

XGE3/1/2

12:1:1::2/126

 

XGE3/1/2

34:1:1::1/126

P 3

Loop0

4::4/128

 

 

 

 

XGE3/1/1

45:1:1::1/126

 

 

 

 

XGE3/1/2

34:1:1::2/126

 

 

 

 

3. 配置步骤

(1)     配置CE 1

# 配置CE 1的互联互通的接口地址和业务地址。

<CE1> system-view

[CE1] sysname CE1

[CE1] interface ten-gigabitethernet 3/1/1

[CE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.1 30

[CE1-Ten-GigabitEthernet3/1/1] quit

[CE1] interface loopback 0

[CE1-LoopBack0] ip address 11.11.11.11 32

[CE1-LoopBack0] quit

# 在PE与CE之间建立EBGP对等体,引入直连路由。

[CE1] bgp 10

[CE1-bgp-default] router-id 11.11.11.11

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

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

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

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

[CE1-bgp-default-ipv4] quit

[CE1-bgp-default] quit

(2)     配置CE 2

# 配置CE 2的互联互通的接口地址和业务地址。

<CE2> system-view

[CE2] sysname CE2

[CE2] interface ten-gigabitethernet 3/1/2

[CE2-Ten-GigabitEthernet3/1/2] ip address 20.1.1.1 30

[CE2-Ten-GigabitEthernet3/1/2] quit

[CE2] interface loopback 0

[CE2-LoopBack0] ip address 22.22.22.22 32

[CE2-LoopBack0] quit

# 在PE与CE之间建立EBGP对等体,引入直连路由。

[CE2] bgp 20

[CE2-bgp-default] router-id 22.22.22.22

[CE2-bgp-default] peer 20.1.1.2 as-number 100

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

[CE2-bgp-default-ipv4] peer 20.1.1.2 enable

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

[CE2-bgp-default-ipv4] quit

[CE2-bgp-default] quit

(3)     配置PE 1

# 配置PE 1上的VPN实例,将CE接入PE。

<PE1> system-view

[PE1] sysname PE1

[PE1] ip vpn-instance aaa

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

[PE1-vpn-instance-aaa] vpn-target 200:1 both

[PE1-vpn-instance-aaa] quit

# 配置PE 1上的互联互通接口地址。

[PE1] interface loopback 0

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

[PE1-LoopBack0] quit

[PE1] interface ten-gigabitethernet 3/1/1

[PE1-Ten-GigabitEthernet3/1/1] ip binding vpn-instance aaa

[PE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.2 30

[PE1-Ten-GigabitEthernet3/1/1] quit

[PE1] interface ten-gigabitethernet 3/1/2

[PE1-Ten-GigabitEthernet3/1/2] ipv6 address 12:1:1::1 126

[PE1-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[PE1] isis 1

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

[PE1-isis-1] cost-style wide

[PE1-isis-1] network-entity 00.0000.0000.0001.00

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

[PE1-isis-1-ipv6] quit

[PE1-isis-1] quit

[PE1] interface ten-gigabitethernet 3/1/2

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

[PE1-Ten-GigabitEthernet3/1/2] quit

[PE1] interface loopback 0

[PE1-LoopBack0] isis ipv6 enable 1

[PE1-LoopBack0] quit

# 在PE设备上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[PE1] segment-routing-ipv6

[PE1-segment-routing-ipv6] srv6 compress enable

[PE1-segment-routing-ipv6] locator a ipv6-prefix A:1:1:A:1:: 80 common-prefix 64 coc32 static 8 args 16

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

[PE1-segment-routing-ipv6] quit

[PE1] isis 1

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

[PE1-isis-1-ipv6] segment-routing ipv6 locator a auto-sid-coc32

[PE1-isis-1-ipv6] srv6 compress enable

[PE1-isis-1-ipv6] quit

[PE1-isis-1] quit

# 在PE设备上配置EVPN L3VPN over SRv6封装的IPv6报文头的源地址。

[PE1] segment-routing ipv6

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

# 在PE 1上配置SBFD报文的源地址。

[PE1] sbfd source-ipv6 1::1

# 在PE设备上配置静态SID列表,其中,包含带COC标记的SRv6 SID,并配置SRv6 TE Policy引用该静态SID列表,开启SBFD检测SRv6 TE Policy功能,保证SRv6 TE Policy隧道可以正常转发业务。

静态SID列表中:

¡     首跳为P 1到P 2之间链路的End.X(COC32) SID,SRH封装中本SRv6 SID仍为128bit,不会被压缩,但下一个SID被压缩;

¡     第二跳为P 2的End(COC32) SID,SRH封装中本SRv6 SID将被压缩为32bit;

¡     第三跳为P 3到PE 2之间链路的End.X(COC32) SID,SRH封装中本SRv6 SID将被压缩为32bit;

¡     第四跳为PE 2的End SID,SRH封装中本SRv6 SID将被压缩为32bit,但下一个SID不再被压缩;

[PE1] segment-routing ipv6

[PE1-segment-routing-ipv6] traffic-engineering

[PE1-srv6-te] srv6-policy locator a

[PE1-srv6-te] segment-list a

[PE1-srv6-te-sl-a] index 10 coc32 ipv6 A:1:1:A:2:20:: 64

[PE1-srv6-te-sl-a] index 20 coc32 ipv6 A:1:1:A:3:10:: 64

[PE1-srv6-te-sl-a] index 30 coc32 ipv6 A:1:1:A:4:20:: 64

[PE1-srv6-te-sl-a] index 40 ipv6 A:1:1:A:5:10::

[PE1-srv6-te-sl-a] quit

[PE1-srv6-te] policy a

[PE1-srv6-te-policy-a] color 10 end-point ipv6 5::5

[PE1-srv6-te-policy-a] sbfd enable remote 1000001

[PE1-srv6-te-policy-a] candidate-paths

[PE1-srv6-te-policy-a-path] preference 200

[PE1-srv6-te-policy-a-path-pref-200] explicit segment-list a

[PE1-srv6-te-policy-a-path-pref-200] quit

[PE1-srv6-te-policy-a-path] quit

[PE1-srv6-te-policy-a] quit

[PE1-srv6-te] quit

[PE1-segment-routing-ipv6] quit

# 在PE与CE之间建立EBGP对等体,引入VPN路由。

[PE1] bgp 100

[PE1-bgp-default] router-id 1.1.1.1

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

[PE1-bgp-default-aaa] peer 10.1.1.1 as-number 10

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

[PE1-bgp-default-ipv4-aaa] peer 10.1.1.1 enable

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

[PE1-bgp-default-aaa] quit

# 在PE 1和PE 2之间建立MP-IBGP对等体。

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

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

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 5::5 enable

[PE1-bgp-default-evpn] quit

[PE1-bgp-default] quit

# 在PE 1设备上配置MP-IBGP对等体之间交换SRv6封装的EVPN路由,同时允许将私网路由迭代SRv6 TE Policy隧道。

[PE1] bgp 100

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 5::5 advertise encap-type srv6

[PE1-bgp-default-evpn] quit

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

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

[PE1-bgp-default-ipv4-aaa] segment-routing ipv6 locator a evpn

[PE1-bgp-default-ipv4-aaa] segment-routing ipv6 traffic-engineering evpn

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

[PE1-bgp-default-aaa] quit

[PE1-bgp-default] quit

# 在PE 1上配置路由策略及隧道策略,将VPN业务流量通过路由策略引流到指定的SRv6 TE Policy,并保证SRv6 TE Policy为优选隧道。

[PE1] route-policy a permit node 10

[PE1-route-policy-a-10] apply extcommunity color 00:10

[PE1-route-policy-a-10] quit

[PE1] bgp 100

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 5::5 route-policy a import

[PE1-bgp-default-evpn] quit

[PE1-bgp-default] quit

[PE1] tunnel-policy a

[PE1-tunnel-policy-a] select-seq srv6-policy load-balance-number 1

[PE1-tunnel-policy-a] quit

[PE1] ip vpn-instance vpn1

[PE1-vpn-instance-vpn1] tnl-policy a

[PE1-vpn-instance-vpn1] quit

(4)     配置P 1

# 配置P1上的互联互通接口地址。

[P1] interface loopback 0

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

[P1-LoopBack0] quit

[P1] interface ten-gigabitethernet 3/1/1

[P1-Ten-GigabitEthernet3/1/1] ipv6 address 23:1:1::1 126

[P1-Ten-GigabitEthernet3/1/1] quit

[P1] interface ten-gigabitethernet 3/1/2

[P1-Ten-GigabitEthernet3/1/2] ipv6 address 12:1:1::2 126

[P1-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[P1] isis 1

[P1-isis-1] is-level level-2

[P1-isis-1] cost-style wide

[P1-isis-1] network-entity 00.0000.0000.0002.00

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

[P1-isis-1-ipv6] quit

[P1-isis-1] quit

[P1] interface ten-gigabitethernet 3/1/1

[P1-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[P1-Ten-GigabitEthernet3/1/1] quit

[P1] interface ten-gigabitethernet 3/1/2

[P1-Ten-GigabitEthernet3/1/2] isis ipv6 enable 1

[P1-Ten-GigabitEthernet3/1/2] quit

[P1] interface loopback 0

[P1-LoopBack0] isis ipv6 enable 1

[P1-LoopBack0] quit

# 在P 1上配置SRv6 Locator,由IGP1通告该Locator,同时开启SRv6压缩功能。

[P1] segment-routing-ipv6

[P1-segment-routing-ipv6] srv6 compress enable

[P1-segment-routing-ipv6] locator b ipv6-prefix A:1:1:A:2:: 80 common-prefix 64 coc32 static 8 args 16

[P1-segment-routing-ipv6-locator-b] opcode 32 end-x-coc32 interface Ten-GigabitEthernet3/1/1 nexthop 23:1:1::2 no-flavor

[P1-segment-routing-ipv6-locator-b] quit

[P1-segment-routing-ipv6] quit

[P1] isis 1

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

[P1-isis-1-ipv6] segment-routing ipv6 locator b auto-sid-coc32

[P1-isis-1-ipv6] srv6 compress enable

[P1-isis-1-ipv6] quit

[P1-isis-1] quit

(5)     配置P 2

# 配置P 2上的互联互通接口地址。

[P2] interface loopback 0

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

[P2-LoopBack0] quit

[P2] interface ten-gigabitethernet 3/1/1

[P2-Ten-GigabitEthernet3/1/1] ipv6 address 23:1:1::2 126

[P2-Ten-GigabitEthernet3/1/1] quit

[P2] interface ten-gigabitethernet 3/1/2

[P2-Ten-GigabitEthernet3/1/2] ipv6 address 34:1:1::1 126

[P2-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[P2] isis 1

[P2-isis-1] is-level level-2

[P2-isis-1] cost-style wide

[P2-isis-1] network-entity 00.0000.0000.0003.00

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

[P2-isis-1-ipv6] quit

[P2-isis-1] quit

[P2] interface ten-gigabitethernet 3/1/1

[P2-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[P2-Ten-GigabitEthernet3/1/1] quit

[P2] interface ten-gigabitethernet 3/1/2

[P2-Ten-GigabitEthernet3/1/2] isis ipv6 enable 1

[P2-Ten-GigabitEthernet3/1/2] quit

[P2] interface loopback 0

[P2-LoopBack0] isis ipv6 enable 1

[P2-LoopBack0] quit

# 在P 2上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[P2] segment-routing-ipv6

[P2-segment-routing-ipv6] srv6 compress enable

[P2-segment-routing-ipv6] locator c ipv6-prefix A:1:1:A:3:: 80 common-prefix 64 coc32 static 8 args 16

[P2-segment-routing-ipv6-locator-c] opcode 16 end-coc32 no-flavor

[P2-segment-routing-ipv6-locator-c] quit

[P2-segment-routing-ipv6] quit

[P2] isis 1

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

[P2-isis-1-ipv6] segment-routing ipv6 locator c auto-sid-coc32

[P2-isis-1-ipv6] srv6 compress enable

[P2-isis-1-ipv6] quit

[P2-isis-1] quit

(6)     配置P 3

# 配置P 3上的互联互通接口地址。

[P3] interface loopback 0

[P3-LoopBack0] ipv6 address 4::4 128

[P3-LoopBack0] quit

[P3] interface ten-gigabitethernet 3/1/1

[P3-Ten-GigabitEthernet3/1/1] ipv6 address 45:1:1::1 126

[P3-Ten-GigabitEthernet3/1/1] quit

[P3] interface ten-gigabitethernet 3/1/2

[P3-Ten-GigabitEthernet3/1/2] ipv6 address 34:1:1::2 126

[P3-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[P3] isis 1

[P3-isis-1] is-level level-2

[P3-isis-1] cost-style wide

[P3-isis-1] network-entity 00.0000.0000.0004.00

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

[P3-isis-1-ipv6] quit

[P3-isis-1] quit

[P3] interface ten-gigabitethernet 3/1/1

[P3-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[P3-Ten-GigabitEthernet3/1/1] quit

[P3] interface ten-gigabitethernet 3/1/2

[P3-Ten-GigabitEthernet3/1/2] isis ipv6 enable 1

[P3-Ten-GigabitEthernet3/1/2] quit

[P3] interface loopback 0

[P3-LoopBack0] isis ipv6 enable 1

[P3-LoopBack0] quit

# 在P 3上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[P3] segment-routing-ipv6

[P3-segment-routing-ipv6] srv6 compress enable

[P3-segment-routing-ipv6] locator d ipv6-prefix A:1:1:A:4:: 80 common-prefix 64 coc32 static 8 args 16

[P3-segment-routing-ipv6-locator-d] opcode 32 end-x-coc32 interface Ten-GigabitEthernet3/1/1 nexthop 45:1:1::2 no-flavor

[P3-segment-routing-ipv6-locator-d] quit

[P3-segment-routing-ipv6] quit

[P3] isis 1

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

[P3-isis-1-ipv6] segment-routing ipv6 locator d auto-sid-coc32

[P3-isis-1-ipv6] srv6 compress enable

[P3-isis-1-ipv6] quit

[P3-isis-1] quit

(7)     配置PE 2

# 配置PE 2上的VPN实例,将CE接入PE。

<PE2> system-view

[PE2] sysname PE2

[PE2] ip vpn-instance aaa

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

[PE2-vpn-instance-aaa] vpn-target 200:1 both

[PE2-vpn-instance-aaa] quit

# 配置PE 2上的互联互通接口地址。

[PE2] interface loopback 0

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

[PE2-LoopBack0] quit

[PE2] interface ten-gigabitethernet 3/1/2

[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance aaa

[PE2-Ten-GigabitEthernet3/1/2] ip address 20.1.1.2 30

[PE2-Ten-GigabitEthernet3/1/2] quit

[PE2] interface ten-gigabitethernet 3/1/1

[PE2-Ten-GigabitEthernet3/1/1] ipv6 address 45:1:1::2 126

[PE2-Ten-GigabitEthernet3/1/1] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[PE2] isis 1

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

[PE2-isis-1] cost-style wide

[PE2-isis-1] network-entity 00.0000.0000.0005.00

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

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

[PE2] interface ten-gigabitethernet 3/1/1

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

[PE2-Ten-GigabitEthernet3/1/1] quit

[PE2] interface loopback 0

[PE2-LoopBack0] isis ipv6 enable 1

[PE2-LoopBack0] quit

# 在PE设备上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[PE2] segment-routing-ipv6

[PE2-segment-routing-ipv6] srv6 compress enable

[PE2-segment-routing-ipv6] locator e ipv6-prefix A:1:1:A:5:: 80 common-prefix 64 coc32 static 8 args 16

[PE2-segment-routing-ipv6-locator-e] opcode 16 end no-flavor

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

[PE2-segment-routing-ipv6] quit

[PE2] isis 1

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

[PE2-isis-1-ipv6] segment-routing ipv6 locator e auto-sid-coc32

[PE2-isis-1-ipv6] srv6 compress enable

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

# 在PE设备上配置EVPN L3VPN over SRv6封装的IPv6报文头的源地址。

[PE2] segment-routing ipv6

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

# 在PE与CE之间建立EBGP对等体,引入VPN路由。

[PE2] bgp 100

[PE2-bgp-default] router-id 5.5.5.5

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

[PE2-bgp-default-aaa] peer 20.1.1.1 as-number 20

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

[PE2-bgp-default-ipv4-aaa] peer 20.1.1.1 enable

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

[PE2-bgp-default-aaa] quit

# 在PE 1和PE 2之间建立MP-IBGP对等体。

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

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

[PE2-bgp-default] address-family l2vpn evpn

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

[PE2-bgp-default-evpn] quit

[PE2-bgp-default] quit

# 在PE 2设备上配置MP-IBGP对等体之间交换SRv6封装的EVPN路由,同时允许将私网路由迭代SRv6 BE隧道。

[PE2] bgp 100

[PE2-bgp-default] address-family l2vpn evpn

[PE2-bgp-default-evpn] peer 1::1 advertise encap-type srv6

[PE2-bgp-default-evpn] quit

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

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

[PE2-bgp-default-ipv4-aaa] segment-routing ipv6 locator e evpn

[PE2-bgp-default-ipv4-aaa] segment-routing ipv6 best-effort evpn

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

[PE2-bgp-default-aaa] quit

[PE2-bgp-default] quit

# 在PE 2设备上配置SBFD会话的本地标识符,保证与PE 1上的远端标识符一致。

[PE2] sbfd local-discriminator 1000001

4. 验证配置

# 在PE 1执行display segment-routing ipv6 te policy命令查看SRv6 TE Policy的详细信息,可以看到SRv6 TE Policy的Status字段为Up,SID列表的状态为Up。

[PE1]display segment-routing ipv6 te policy

 

Name/ID: a/0

 Color: 10

 End-point: 5::5

 Name from BGP:

 Name from PCE:

 BSID:

  Mode: Dynamic             Type: Type_2              Request state: Succeeded

  Current BSID: A:1:1:A:1:104:: Explicit BSID: -          Dynamic BSID: A:1:1:A:1:104::

 Reference counts: 5

 Flags: A/BS/NC

 Status: Up

 AdminStatus: Up

 Up time: 2023-08-04 16:21:25

 Down time: 2023-08-04 16:13:02

 Hot backup: Disabled

 Statistics: Disabled

  Statistics by service class: Disabled

 Path verification: Not configured

 Drop-upon-invalid: Disabled

 BFD trigger path-down: Disabled

 SBFD: Enabled

  Encapsulation mode: -

  Remote: 1000001

  SBFD template name: -

  SBFD backup template name: -

  OAM SID: -

  Reverse path type: None

 BFD Echo: Disabled

 BFD no-bypass: Disabled

 Forward no-bypass: Disabled

 Forwarding index: 2150629377

 Association ID: 0

 Service-class: -

 Rate-limit: -

 PCE delegation: Disabled

 PCE delegate report-only: Disabled

 Reoptimization: Disabled

 Encapsulation mode: -

 Flapping suppression Remaining interval: -

 Candidate paths state: Configured

 Candidate paths statistics:

  CLI paths: 1          BGP paths: 0          PCEP paths: 0          ODN paths: 0

 Candidate paths:

  Preference : 200

   Network slice ID: -

   CPathName:

   CPathPolicyName:

   ProtoOrigin: CLI        Discriminator: 200

   Instance ID: 0          Node address: 0.0.0.0

   Originator:  0, ::

   Optimal: Y              Flags: V/A

   Dynamic: Not configured

      PCEP: Not configured

   Explicit SID list:

    ID: 1                     Name: a

    Weight: 1                 Forwarding index: 2149580802

    State: Up                 State(SBFD): Up

    Verification State: -

    Path MTU: 1500            Path MTU Reserved: 0

    SID list flags: None

    Local BSID: -

    Reverse BSID: -

# 在PE 1设备上执行display bgp l2vpn evpn命令查看对端PE 2发送的路由详细信息,可以看到PE 2发送的路由携带PrefixSID属性数据。

[PE1] display bgp l2vpn evpn [5][0][32][22.22.22.22] 80

 

 BGP local router ID: 1.1.1.1

 Local AS number: 100

 

 

 Route distinguisher: 100:1(aaa)

 Total number of routes: 1

 Paths:   1 available, 1 best

 

 BGP routing table information of [5][0][32][22.22.22.22]/80:

 From            : 5::5 (5.5.5.5)

 Rely nexthop    : FE80::1AF8:23FF:FE50:207

 Original nexthop: 5::5

 Out interface   : Ten-GigabitEthernet3/1/2

 Route age       : 00h00m39s

 OutLabel        : 3

 Ext-Community   : <RT: 200:1>, <CO-Flag:Color(00:10)>

 RxPathID        : 0x0

 TxPathID        : 0x0

 PrefixSID       : End.DT4 SID <A:1:1:A:5:104::>

  SRv6 Service TLV (37 bytes):

   Type: SRV6 L3 Service TLV (5)

   Length: 34 bytes, Reserved: 0x0

   SRv6 Service Information Sub-TLV (33 bytes):

    Type: 1 Length: 30, Rsvdl: 0x0

    SID Flags: 0x0  Endpoint behavior: 0x13 Rsvd2: 0x0

    SRv6 SID Sub-Sub-TLV:

     Type: 1 Len: 6

     BL: 64 NL: 16 FL: 16 AL: 16 TL: 0 TO: 0

 AS-path         : 20

 Origin          : incomplete

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

 State           : valid, internal, best

 Source type     : local

 IP precedence   : N/A

 QoS local ID    : N/A

 Traffic index   : N/A

 EVPN route type : IP prefix advertisement route

 ESI             : 0000.0000.0000.0000.0000

 Ethernet tag ID : 0

 IP prefix       : 22.22.22.22/32

 Gateway address : 0.0.0.0

 MPLS label      : 3

 Tunnel policy   : NULL

 Rely tunnel IDs : N/A

 Re-orignination : Disable

# 在PE 1上执行display ip routing-table vpn-instance命令,可以看到去往对端CE 2的私网业务路由22.22.22.22,并且路由出接口为SRv6 TE Policy的隧道a。

以PE 1为例:

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

 

Destinations : 8        Routes : 8

 

Destination/Mask   Proto   Pre Cost        NextHop         Interface

10.1.1.0/30        Direct  0   0           10.1.1.2        XGE3/1/1

10.1.1.2/32        Direct  0   0           127.0.0.1       XGE3/1/1

10.1.1.3/32        Direct  0   0           10.1.1.2        XGE3/1/1

11.11.11.11/32     BGP     255 0           10.1.1.1        XGE3/1/1

20.1.1.0/30        BGP     255 0           5::5            a

22.22.22.22/32     BGP     255 0           5::5            a

127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

# 在CE 1上带源地址11.11.11.11 ping CE 2的目的地址22.22.22.22,可以ping通,并且通过在PE 1等设备转发接口上抓包可以发现SRH扩展报文头中静态SID列表中的第二跳、第三跳、第四跳的SID均被压缩为32bit,满足G-SRv6压缩头的需求。

 

1.20.4  IPv4 EVPN L3VPN over G-SRv6配置举例(COC-Both类型的Locator)

1. 组网需求

图1-11所示,核心网为IPv6网络,私网为IPv4网络,在IPv6网络中PE设备之间部署SRv6 TE Policy隧道,通过SRv6 TE Policy隧道实现端到端的私网业务数据传输。

·     核心网中设备较多,导致SRv6 TE Policy最优候选路径的SID列表中存在较多的SRv6 SID,为了减少报文SRH扩展头长度,采用G-SRv6压缩头方案。

·     核心网络内部的SRv6节点上采用COC-Both类型的Locator,并从COC-Both类型的Locator中动态分配不同类型的SRv6 SID。通过在各个SRv6节点上执行display segment-routing ipv6 local-sid命令来显示本地的SRv6 SID,并将这些SRv6 SID按顺序合理加入到SRv6 TE Policy的SID列表中。

·     如图1-10所示,自治系统内需要合理规划Locator的公共前缀,否则报文转发将出现问题。规定所有设备上COC-Both类型的Locator的公共前缀统一为A:2:2:A::,长度为64位。另外,Locator的IPv6地址前缀长度为80位,COC-Both类型的Locator段中压缩SID的静态段(C-SID Static)长度为8位,非压缩SID的静态段(NC-SID Static)长度为8位,Args预留段长度为16位,因此计算出压缩SID的动态段(C-SID Dynamic)长度为8位,非压缩SID的静态段(NC-SID Static)长度为8位。

·     在压缩SID(C-SID)范围内可以动态分配或静态指定带COC标记的SID,例如End(COC32)类型的SID和End.X(COC32)类型的SID,也可以动态分配或静态指定不带COC标记的SID,例如End(COCNONE)类型的SID和End.X(COCNONE)类型的SID。而非压缩SID(NC-SID)的范围内只能分配普通类型的SID,例如End类型的SID和End.X类型的SID。

图1-10 自治系统内COC-Both类型的Locator的规划

 

2. 组网图

图1-11 IPv4 EVPN L3VPN over G-SRv6配置组网图

设备

接口

IP地址

设备

接口

IP地址

CE 1

XGE3/1/1

10.1.1.1/30

CE 2

XGE3/1/2

20.1.1.1/30

 

Loop0

11.11.11.11/32

 

Loop0

22.22.22.22/32

PE 1

Loop0

1::1/128

PE 2

Loop0

5::5/128

 

XGE3/1/1

10.1.1.2/30

 

XGE3/1/2

20.1.1.2/30

 

XGE3/1/2

12:1:1::1/126

 

XGE3/1/1

45:1:1::2/126

P 1

Loop0

2::2/128

P 2

Loop0

3::3/128

 

XGE3/1/1

23:1:1::1/126

 

XGE3/1/1

23:1:1::2/126

 

XGE3/1/2

12:1:1::2/126

 

XGE3/1/2

34:1:1::1/126

P 3

Loop0

4::4/128

 

 

 

 

XGE3/1/1

45:1:1::1/126

 

 

 

 

XGE3/1/2

34:1:1::2/126

 

 

 

 

3. 配置步骤

(1)     配置CE 1

# 配置CE 1的互联互通的接口地址和业务地址。

<CE1> system-view

[CE1] sysname CE1

[CE1] interface ten-gigabitethernet 3/1/1

[CE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.1 30

[CE1-Ten-GigabitEthernet3/1/1] quit

[CE1] interface loopback 0

[CE1-LoopBack0] ip address 11.11.11.11 32

[CE1-LoopBack0] quit

# 在PE与CE之间建立EBGP对等体,引入直连路由。

[CE1] bgp 10

[CE1-bgp-default] router-id 11.11.11.11

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

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

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

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

[CE1-bgp-default-ipv4] quit

[CE1-bgp-default] quit

(2)     配置CE 2

# 配置CE 2的互联互通的接口地址和业务地址。

<CE2> system-view

[CE2] sysname CE2

[CE2] interface ten-gigabitethernet 3/1/2

[CE2-Ten-GigabitEthernet3/1/2] ip address 20.1.1.1 30

[CE2-Ten-GigabitEthernet3/1/2] quit

[CE2] interface loopback 0

[CE2-LoopBack0] ip address 22.22.22.22 32

[CE2-LoopBack0] quit

# 在PE与CE之间建立EBGP对等体,引入直连路由。

[CE2] bgp 20

[CE2-bgp-default] router-id 22.22.22.22

[CE2-bgp-default] peer 20.1.1.2 as-number 100

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

[CE2-bgp-default-ipv4] peer 20.1.1.2 enable

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

[CE2-bgp-default-ipv4] quit

[CE2-bgp-default] quit

(3)     配置PE 1

# 配置PE 1上的VPN实例,将CE接入PE。

<PE1> system-view

[PE1] sysname PE1

[PE1] ip vpn-instance aaa

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

[PE1-vpn-instance-aaa] vpn-target 200:1 both

[PE1-vpn-instance-aaa] quit

# 配置PE 1上的互联互通接口地址。

[PE1] interface loopback 0

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

[PE1-LoopBack0] quit

[PE1] interface ten-gigabitethernet 3/1/1

[PE1-Ten-GigabitEthernet3/1/1] ip binding vpn-instance aaa

[PE1-Ten-GigabitEthernet3/1/1] ip address 10.1.1.2 30

[PE1-Ten-GigabitEthernet3/1/1] quit

[PE1] interface ten-gigabitethernet 3/1/2

[PE1-Ten-GigabitEthernet3/1/2] ipv6 address 12:1:1::1 126

[PE1-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[PE1] isis 1

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

[PE1-isis-1] cost-style wide

[PE1-isis-1] network-entity 00.0000.0000.0001.00

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

[PE1-isis-1-ipv6] quit

[PE1-isis-1] quit

[PE1] interface ten-gigabitethernet 3/1/2

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

[PE1-Ten-GigabitEthernet3/1/2] quit

[PE1] interface loopback 0

[PE1-LoopBack0] isis ipv6 enable 1

[PE1-LoopBack0] quit

# 在PE设备上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[PE1] segment-routing-ipv6

[PE1-segment-routing-ipv6] srv6 compress enable

[PE1-segment-routing-ipv6] locator ax ipv6-prefix A:2:2:A:1:: 80 common-prefix 64 coc-both non-compress-static 8 static 8 args 16

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

[PE1-segment-routing-ipv6] quit

[PE1] isis 1

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

[PE1-isis-1-ipv6] segment-routing ipv6 locator ax auto-sid-coc-both coc32

[PE1-isis-1-ipv6] srv6 compress enable

[PE1-isis-1-ipv6] quit

[PE1-isis-1] quit

# 在PE设备上配置EVPN L3VPN over SRv6封装的IPv6报文头的源地址。

[PE1] segment-routing ipv6

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

# 在PE 1上配置SBFD报文的源地址。

[PE1] sbfd source-ipv6 1::1

# 在PE设备上配置静态SID列表,其中,包含带COC标记的SRv6 SID,并配置SRv6 TE Policy引用该静态SID列表,开启SBFD检测SRv6 TE Policy功能,保证SRv6 TE Policy隧道可以正常转发业务。

静态SID列表中:

¡     首跳为P 1到P 2之间链路的End.X(COC32) SID,SRH封装中本SRv6 SID仍为128bit,不会被压缩,但下一个SID被压缩;可以在P 1设备配置完成后,执行display segment-routing ipv6 local-sid命令来获取动态分配的End.X(COC32) SID的信息。

¡     第二跳为P 2的End(COC32) SID,SRH封装中本SRv6 SID将被压缩为32bit;可以在P 2设备配置完成后,执行display segment-routing ipv6 local-sid命令来获取动态分配的End(COC32) SID的信息。

¡     第三跳为P 3到PE 2之间链路的End.X(COC32) SID,SRH封装中本SRv6 SID将被压缩为32bit;可以在P 3设备配置完成后,执行display segment-routing ipv6 local-sid命令来获取动态分配的End.X(COC32) SID的信息。

¡     第四跳为PE 2的End(COCNONE) SID,SRH封装中本SRv6 SID将被压缩为32bit,但下一个SID不再被压缩;可以在PE 2设备配置完成后,执行display segment-routing ipv6 local-sid命令来获取动态分配的End(COCNONE) SID的信息。

[PE1] segment-routing ipv6

[PE1-segment-routing-ipv6] traffic-engineering

[PE1-srv6-te] srv6-policy locator ax

[PE1-srv6-te] segment-list b

[PE1-srv6-te-sl-b] index 10 coc32 ipv6 A:2:2:A:2:10A:: 64

[PE1-srv6-te-sl-b] index 20 coc32 ipv6 A:2:2:A:3:101:: 64

[PE1-srv6-te-sl-b] index 30 coc32 ipv6 A:2:2:A:4:104:: 64

[PE1-srv6-te-sl-b] index 40 ipv6 A:2:2:A:5:103::

[PE1-srv6-te-sl-b] quit

[PE1-srv6-te] policy a

[PE1-srv6-te-policy-a] color 10 end-point ipv6 5::5

[PE1-srv6-te-policy-a] sbfd enable remote 1000001

[PE1-srv6-te-policy-a] candidate-paths

[PE1-srv6-te-policy-a-path] preference 200

[PE1-srv6-te-policy-a-path-pref-200] explicit segment-list b

[PE1-srv6-te-policy-a-path-pref-200] quit

[PE1-srv6-te-policy-a-path] quit

[PE1-srv6-te-policy-a] quit

[PE1-srv6-te] quit

[PE1-segment-routing-ipv6] quit

# 在PE与CE之间建立EBGP对等体,引入VPN路由。

[PE1] bgp 100

[PE1-bgp-default] router-id 1.1.1.1

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

[PE1-bgp-default-aaa] peer 10.1.1.1 as-number 10

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

[PE1-bgp-default-ipv4-aaa] peer 10.1.1.1 enable

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

[PE1-bgp-default-aaa] quit

# 在PE 1和PE 2之间建立MP-IBGP对等体。

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

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

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 5::5 enable

[PE1-bgp-default-evpn] quit

[PE1-bgp-default] quit

# 在PE 1设备上配置MP-IBGP对等体之间交换SRv6封装的EVPN路由,同时允许将私网路由迭代SRv6 TE Policy隧道。

[PE1] bgp 100

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 5::5 advertise encap-type srv6

[PE1-bgp-default-evpn] quit

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

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

[PE1-bgp-default-ipv4-aaa] segment-routing ipv6 locator ax evpn

[PE1-bgp-default-ipv4-aaa] segment-routing ipv6 traffic-engineering evpn

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

[PE1-bgp-default-aaa] quit

[PE1-bgp-default] quit

# 在PE 1上配置路由策略及隧道策略,将VPN业务流量通过路由策略引流到指定的SRv6 TE Policy,并保证SRv6 TE Policy为优选隧道。

[PE1] route-policy a permit node 10

[PE1-route-policy-a-10] apply extcommunity color 00:10

[PE1-route-policy-a-10] quit

[PE1] bgp 100

[PE1-bgp-default] address-family l2vpn evpn

[PE1-bgp-default-evpn] peer 5::5 route-policy a import

[PE1-bgp-default-evpn] quit

[PE1-bgp-default] quit

[PE1] tunnel-policy a

[PE1-tunnel-policy-a] select-seq srv6-policy load-balance-number 1

[PE1-tunnel-policy-a] quit

[PE1] ip vpn-instance vpn1

[PE1-vpn-instance-vpn1] tnl-policy a

[PE1-vpn-instance-vpn1] quit

(4)     配置P 1

# 配置P1上的互联互通接口地址。

[P1] interface loopback 0

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

[P1-LoopBack0] quit

[P1] interface ten-gigabitethernet 3/1/1

[P1-Ten-GigabitEthernet3/1/1] ipv6 address 23:1:1::1 126

[P1-Ten-GigabitEthernet3/1/1] quit

[P1] interface ten-gigabitethernet 3/1/2

[P1-Ten-GigabitEthernet3/1/2] ipv6 address 12:1:1::2 126

[P1-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[P1] isis 1

[P1-isis-1] is-level level-2

[P1-isis-1] cost-style wide

[P1-isis-1] network-entity 00.0000.0000.0002.00

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

[P1-isis-1-ipv6] quit

[P1-isis-1] quit

[P1] interface ten-gigabitethernet 3/1/1

[P1-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[P1-Ten-GigabitEthernet3/1/1] quit

[P1] interface ten-gigabitethernet 3/1/2

[P1-Ten-GigabitEthernet3/1/2] isis ipv6 enable 1

[P1-Ten-GigabitEthernet3/1/2] quit

[P1] interface loopback 0

[P1-LoopBack0] isis ipv6 enable 1

[P1-LoopBack0] quit

# 在P 1上配置SRv6 Locator,由IGP1通告该Locator,同时开启SRv6压缩功能。

[P1] segment-routing-ipv6

[P1-segment-routing-ipv6] srv6 compress enable

[P1-segment-routing-ipv6] locator bx ipv6-prefix A:2:2:A:2:: 80 common-prefix 64 coc-both non-compress-static 8 static 8 args 16

[P1-segment-routing-ipv6-locator-bx] quit

[P1-segment-routing-ipv6] quit

[P1] isis 1

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

[P1-isis-1-ipv6] segment-routing ipv6 locator bx auto-sid-coc-both coc32-all

[P1-isis-1-ipv6] srv6 compress enable

[P1-isis-1-ipv6] quit

[P1-isis-1] quit

(5)     配置P 2

# 配置P 2上的互联互通接口地址。

[P2] interface loopback 0

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

[P2-LoopBack0] quit

[P2] interface ten-gigabitethernet 3/1/1

[P2-Ten-GigabitEthernet3/1/1] ipv6 address 23:1:1::2 126

[P2-Ten-GigabitEthernet3/1/1] quit

[P2] interface ten-gigabitethernet 3/1/2

[P2-Ten-GigabitEthernet3/1/2] ipv6 address 34:1:1::1 126

[P2-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[P2] isis 1

[P2-isis-1] is-level level-2

[P2-isis-1] cost-style wide

[P2-isis-1] network-entity 00.0000.0000.0003.00

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

[P2-isis-1-ipv6] quit

[P2-isis-1] quit

[P2] interface ten-gigabitethernet 3/1/1

[P2-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[P2-Ten-GigabitEthernet3/1/1] quit

[P2] interface ten-gigabitethernet 3/1/2

[P2-Ten-GigabitEthernet3/1/2] isis ipv6 enable 1

[P2-Ten-GigabitEthernet3/1/2] quit

[P2] interface loopback 0

[P2-LoopBack0] isis ipv6 enable 1

[P2-LoopBack0] quit

# 在P 2上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[P2] segment-routing-ipv6

[P2-segment-routing-ipv6] srv6 compress enable

[P2-segment-routing-ipv6] locator cx ipv6-prefix A:2:2:A:3:: 80 common-prefix 64 coc-both non-compress-static 8 static 8 args 16

[P2-segment-routing-ipv6-locator-cx] quit

[P2-segment-routing-ipv6] quit

[P2] isis 1

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

[P2-isis-1-ipv6] segment-routing ipv6 locator cx auto-sid-coc-both all

[P2-isis-1-ipv6] srv6 compress enable

[P2-isis-1-ipv6] quit

[P2-isis-1] quit

(6)     配置P 3

# 配置P 3上的互联互通接口地址。

[P3] interface loopback 0

[P3-LoopBack0] ipv6 address 4::4 128

[P3-LoopBack0] quit

[P3] interface ten-gigabitethernet 3/1/1

[P3-Ten-GigabitEthernet3/1/1] ipv6 address 45:1:1::1 126

[P3-Ten-GigabitEthernet3/1/1] quit

[P3] interface ten-gigabitethernet 3/1/2

[P3-Ten-GigabitEthernet3/1/2] ipv6 address 34:1:1::2 126

[P3-Ten-GigabitEthernet3/1/2] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[P3] isis 1

[P3-isis-1] is-level level-2

[P3-isis-1] cost-style wide

[P3-isis-1] network-entity 00.0000.0000.0004.00

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

[P3-isis-1-ipv6] quit

[P3-isis-1] quit

[P3] interface ten-gigabitethernet 3/1/1

[P3-Ten-GigabitEthernet3/1/1] isis ipv6 enable 1

[P3-Ten-GigabitEthernet3/1/1] quit

[P3] interface ten-gigabitethernet 3/1/2

[P3-Ten-GigabitEthernet3/1/2] isis ipv6 enable 1

[P3-Ten-GigabitEthernet3/1/2] quit

[P3] interface loopback 0

[P3-LoopBack0] isis ipv6 enable 1

[P3-LoopBack0] quit

# 在P 3上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[P3] segment-routing-ipv6

[P3-segment-routing-ipv6] srv6 compress enable

[P3-segment-routing-ipv6] locator dx ipv6-prefix A:2:2:A:4:: 80 common-prefix 64 coc-both non-compress-static 8 static 8 args 16

[P3-segment-routing-ipv6-locator-dx] quit

[P3-segment-routing-ipv6] quit

[P3] isis 1

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

[P3-isis-1-ipv6] segment-routing ipv6 locator dx auto-sid-coc-both coc32

[P3-isis-1-ipv6] srv6 compress enable

[P3-isis-1-ipv6] quit

[P3-isis-1] quit

(7)     配置PE 2

# 配置PE 2上的VPN实例,将CE接入PE。

<PE2> system-view

[PE2] sysname PE2

[PE2] ip vpn-instance aaa

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

[PE2-vpn-instance-aaa] vpn-target 200:1 both

[PE2-vpn-instance-aaa] quit

# 配置PE 2上的互联互通接口地址。

[PE2] interface loopback 0

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

[PE2-LoopBack0] quit

[PE2] interface ten-gigabitethernet 3/1/2

[PE2-Ten-GigabitEthernet3/1/2] ip binding vpn-instance aaa

[PE2-Ten-GigabitEthernet3/1/2] ip address 20.1.1.2 30

[PE2-Ten-GigabitEthernet3/1/2] quit

[PE2] interface ten-gigabitethernet 3/1/1

[PE2-Ten-GigabitEthernet3/1/1] ipv6 address 45:1:1::2 126

[PE2-Ten-GigabitEthernet3/1/1] quit

# 配置IPv6 IS-IS,实现骨干网的互通。

[PE2] isis 1

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

[PE2-isis-1] cost-style wide

[PE2-isis-1] network-entity 00.0000.0000.0005.00

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

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

[PE2] interface ten-gigabitethernet 3/1/1

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

[PE2-Ten-GigabitEthernet3/1/1] quit

[PE2] interface loopback 0

[PE2-LoopBack0] isis ipv6 enable 1

[PE2-LoopBack0] quit

# 在PE设备上配置SRv6 Locator,由IGP通告该Locator,同时开启SRv6压缩功能。

[PE2] segment-routing-ipv6

[PE2-segment-routing-ipv6] srv6 compress enable

[PE2-segment-routing-ipv6] locator ex ipv6-prefix A:2:2:A:5:: 80 common-prefix 64 coc-both non-compress-static 8 static 8 args 16

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

[PE2-segment-routing-ipv6] quit

[PE2] isis 1

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

[PE2-isis-1-ipv6] segment-routing ipv6 locator ex auto-sid-coc-both all

[PE2-isis-1-ipv6] srv6 compress enable

[PE2-isis-1-ipv6] quit

[PE2-isis-1] quit

# 在PE设备上配置E L3VPN over SRv6封装的IPv6报文头的源地址。

[PE2] segment-routing ipv6

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

# 在PE与CE之间建立EBGP对等体,引入VPN路由。

[PE2] bgp 100

[PE2-bgp-default] router-id 5.5.5.5

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

[PE2-bgp-default-aaa] peer 20.1.1.1 as-number 20

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

[PE2-bgp-default-ipv4-aaa] peer 20.1.1.1 enable

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

[PE2-bgp-default-aaa] quit

# 在PE 1和PE 2之间建立MP-IBGP对等体。

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

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

[PE2-bgp-default] address-family l2vpn evpn

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

[PE2-bgp-default-evpn] quit

[PE2-bgp-default] quit

# 在PE 2设备上配置MP-IBGP对等体之间交换SRv6封装的EVPN路由,同时允许将私网路由迭代SRv6 BE隧道。

[PE2] bgp 100

[PE2-bgp-default] address-family l2vpn evpn

[PE2-bgp-default-evpn] peer 1::1 advertise encap-type srv6

[PE2-bgp-default-evpn] quit

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

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

[PE2-bgp-default-ipv4-aaa] segment-routing ipv6 locator ex evpn

[PE2-bgp-default-ipv4-aaa] segment-routing ipv6 best-effort evpn

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

[PE2-bgp-default-aaa] quit

[PE2-bgp-default] quit

# 在PE 2设备上配置SBFD会话的本地标识符,保证与PE 1上的远端标识符一致。

[PE2] sbfd local-discriminator 1000001

4. 验证配置

# 在PE 1执行display segment-routing ipv6 te policy命令查看SRv6 TE Policy的详细信息,可以看到SRv6 TE Policy的Status字段为Up,SID列表的状态为Up。

[PE1]display segment-routing ipv6 te policy

 

Name/ID: a/0

 Color: 10

 End-point: 5::5

 Name from BGP:

 Name from PCE:

 BSID:

  Mode: Dynamic             Type: Type_2              Request state: Succeeded

  Current BSID: A:2:2:A:1:0:101:0 Explicit BSID: -          Dynamic BSID: A:2:2:A:1:0:101:0

 Reference counts: 5

 Flags: A/BS/NC

 Status: Up

 AdminStatus: Up

 Up time: 2023-08-06 16:31:34

 Down time: 2023-08-06 16:29:20

 Hot backup: Disabled

 Statistics: Disabled

  Statistics by service class: Disabled

 Path verification: Not configured

 Drop-upon-invalid: Disabled

 BFD trigger path-down: Disabled

 SBFD: Enabled

  Encapsulation mode: -

  Remote: 1000001

  SBFD template name: -

  SBFD backup template name: -

  OAM SID: -

  Reverse path type: None

 BFD Echo: Disabled

 BFD no-bypass: Disabled

 Forward no-bypass: Disabled

 Forwarding index: 2150629378

 Association ID: 0

 Service-class: -

 Rate-limit: -

 PCE delegation: Disabled

 PCE delegate report-only: Disabled

 Reoptimization: Disabled

 Encapsulation mode: -

 Flapping suppression Remaining interval: -

 Candidate paths state: Configured

 Candidate paths statistics:

  CLI paths: 1          BGP paths: 0          PCEP paths: 0          ODN paths: 0

 Candidate paths:

  Preference : 100

   Network slice ID: -

   CPathName:

   CPathPolicyName:

   ProtoOrigin: CLI        Discriminator: 100

   Instance ID: 0          Node address: 0.0.0.0

   Originator:  0, ::

   Optimal: Y              Flags: V/A

   Dynamic: Not configured

      PCEP: Not configured

   Explicit SID list:

    ID: 2                     Name: b

    Weight: 1                 Forwarding index: 2149580805

    State: Up                 State(SBFD): Up

    Verification State: -

    Path MTU: 1500            Path MTU Reserved: 0

    SID list flags: None

    Local BSID: -

Reverse BSID: -

# 在PE 1设备上执行display bgp l2vpn evpn命令查看对端PE 2发送的路由详细信息,可以看到PE 2发送的路由携带PrefixSID属性数据。

[PE1] display bgp l2vpn evpn [5][0][32][22.22.22.22] 80

 

 BGP local router ID: 1.1.1.1

 Local AS number: 100

 

 

 Route distinguisher: 100:1(aaa)

 Total number of routes: 1

 Paths:   1 available, 1 best

 

 BGP routing table information of [5][0][32][22.22.22.22]/80:

 From            : 5::5 (5.5.5.5)

 Rely nexthop    : FE80::1AF8:23FF:FE50:207

 Original nexthop: 5::5

 Out interface   : Ten-GigabitEthernet3/1/2

 Route age       : 00h00m39s

 OutLabel        : 3

 Ext-Community   : <RT: 200:1>, <CO-Flag:Color(00:10)>

 RxPathID        : 0x0

 TxPathID        : 0x0

 PrefixSID       : End.DT4 SID <<A:2:2:A:5:0:107:0>

  SRv6 Service TLV (37 bytes):

   Type: SRV6 L3 Service TLV (5)

   Length: 34 bytes, Reserved: 0x0

   SRv6 Service Information Sub-TLV (33 bytes):

    Type: 1 Length: 30, Rsvdl: 0x0

    SID Flags: 0x0  Endpoint behavior: 0x13 Rsvd2: 0x0

    SRv6 SID Sub-Sub-TLV:

     Type: 1 Len: 6

     BL: 64 NL: 16 FL: 16 AL: 16 TL: 0 TO: 0

 AS-path         : 20

 Origin          : incomplete

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

 State           : valid, internal, best

 Source type     : local

 IP precedence   : N/A

 QoS local ID    : N/A

 Traffic index   : N/A

 EVPN route type : IP prefix advertisement route

 ESI             : 0000.0000.0000.0000.0000

 Ethernet tag ID : 0

 IP prefix       : 22.22.22.22/32

 Gateway address : 0.0.0.0

 MPLS label      : 3

 Tunnel policy   : NULL

 Rely tunnel IDs : N/A

 Re-orignination : Disable

# 在PE 1上执行display ip routing-table vpn-instance命令,可以看到去往对端CE 2的私网业务路由22.22.22.22,并且路由出接口为SRv6 TE Policy的隧道a。

以PE 1为例:

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

 

Destinations : 8        Routes : 8

 

Destination/Mask   Proto   Pre Cost        NextHop         Interface

10.1.1.0/30        Direct  0   0           10.1.1.2        XGE3/1/1

10.1.1.2/32        Direct  0   0           127.0.0.1       XGE3/1/1

10.1.1.3/32        Direct  0   0           10.1.1.2        XGE3/1/1

11.11.11.11/32     BGP     255 0           10.1.1.1        XGE3/1/1

20.1.1.0/30        BGP     255 0           5::5            a

22.22.22.22/32     BGP     255 0           5::5            a

127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0

255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0

# 在CE 1上带源地址11.11.11.11 ping CE 2的目的地址22.22.22.22,可以ping通,并且通过在PE 1等设备转发接口上抓包可以发现SRH扩展报文头中静态SID列表中的第二跳、第三跳、第四跳的SID均被压缩为32bit,满足G-SRv6压缩头的需求。

 

 

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

新华三官网
联系我们