09-EVPN VPLS over SRv6配置
本章节下载: 09-EVPN VPLS over SRv6配置 (646.19 KB)
目 录
1.8 配置基于End.DX2 SID和End.DX2L SID转发单播流量
1.13 配置EVPN VPLS over SRv6封装的IPv6报文头的源地址
1.22 EVPN VPLS over SRv6典型配置举例
1.22.1 EVPN VPLS over SRv6单归属配置举例
1.22.2 EVPN VPLS over SRv6多归属配置举例(聚合链路接入)
EVPN VPLS over SRv6是指通过SRv6隧道承载EVPN VPLS业务,通过IPv6网络透明传输用户二层数据,实现用户网络穿越IPv6网络建立点到多点连接。EVPN VPLS的详细介绍,请参见“EVPN配置指导”中的“EVPN VPLS”。
如图1-1所示,PE之间通过EVPN路由发布End.DT2M SID、End.DT2U SID和End.DX2 SID,建立SRv6隧道。该SRv6隧道作为PW封装并转发站点网络之间的二层数据报文。在骨干网上,根据IGP计算的最优路径转发SRv6隧道封装后的报文,从而实现通过IPv6骨干网透明传输用户二层数据。
本端PE向远端PE发布EVPN路由时,在EVPN路由中携带本端为VSI分配的End.DT2M SID和End.DT2U SID、为AC分配的End.DX2 SID,从而建立本端PE到远端PE的SRv6隧道。其中:
· End.DT2M SID用来传递EVPN VPLS的BUM(Broadcast、Unknown-unicast、Multicast,广播、未知单播和组播)流量。通过在IMET路由中携带End.DT2M SID,可以为BUM流量建立SRv6隧道。
· End.DT2U SID和End.DX2 SID用来传递EVPN VPLS已知单播流量。通过在MAC/IP发布路由中携带End.DT2U SID或End.DX2 SID,可以为已知单播流量建立SRv6隧道。
两端PE均发布End.DT2M SID和End.DT2U SID(或End.DX2 SID),并在两个方向上均建立单跳SRv6隧道后,两条SRv6隧道组成一条PW,用来承载用户二层数据。
EVPN VPLS over SRv6支持SRv6 BE、SRv6 TE和SRv6 TE/SRv6 BE混合三种路由迭代方式。采用不同的路由迭代方式时,报文转发过程有所不同。
又称为基于SID的转发方式。该方式根据封装的End.DT2U SID、End.DX2 SID或End.DT2M SID查找IPv6路由表进行转发。
建立SRv6隧道后,二层已知单播报文从CE 1到CE 2的转发过程为:
(1) CE 1发送二层报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,在AC关联的VSI中查找MAC地址表,找到对应的SRv6隧道,并获取该隧道的End.DT2U SID或End.DX2 SID,即PE 2分配的End.DT2U SID或End.DX2 SID。
(3) PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DT2U SID或End.DX2 SID,源IPv6地址为配置的EVPN VPLS over SRv6封装IPv6报文头的源地址。
(4) PE 1根据End.DT2U SID或End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给P。
(5) P根据End.DT2U SID或End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2根据End.DT2U SID或End.DX2 SID查找Local SID表,执行End.DT2U SID或End.DX2 SID对应的转发动作:
¡ End.DT2U SID:解封装报文去掉IPv6报文头,并在End.DT2U SID所属的VSI内查找MAC地址表,根据查表结果将报文转发给CE 2。
¡ End.DX2 SID:解封装报文去掉IPv6报文头,并将报文转发给End.DX2 SID关联的AC。
建立SRv6隧道后,二层广播、组播和未知单播报文的转发过程为:
(7) CE 1发送二层广播、组播和未知单播报文给PE 1。
(8) PE 1从连接CE 1的AC上接收到二层报文后,在AC关联的VSI中查找所有远端PE分配的End.DT2M SID。
(9) PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DT2M SID,源IPv6地址为配置的EVPN VPLS over SRv6封装IPv6报文头的源地址。
如果PE 1接收到多个远端PE分配的End.DT2M SID,则为二层报文分别封装每个End.DT2M SID,将该报文转发给所有的远端PE。
(10) PE 1根据End.DT2M SID查找IPv6路由表,通过最优IGP路由将报文转发给P。
(11) P根据End.DT2M SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(12) PE 2根据End.DT2M SID查找Local SID表,执行End.DT2M SID对应的转发动作,即解封装报文去掉IPv6报文头,并在End.DT2M SID所属的VSI内广播转发该报文。
又称为基于SRv6 TE Policy的转发方式。该方式根据报文属性查找匹配的SRv6 TE Policy,为报文添加携带End.DT2M SID(或End.DT2U SID、End.DX2 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的路径作为承载SRv6 PW的公网隧道来转发私网报文。
隧道策略的详细介绍,请参见“MPLS配置指导”中的“隧道策略”;SRv6 TE Policy的详细介绍,请参见“Segment Routing配置指导”中的“SRv6 TE Policy”。
该方式优先通过SRv6 TE方式选择转发路径;如果SRv6 TE方式未找到可用的SRv6 TE Policy,则通过SRv6 BE方式选择转发路径。
如图1-2所示,当一个站点通过不同的以太网链路连接到多台PE时,这些链路就构成了一个ES(Ethernet Segment,以太网段),并以一个相同的ESI(ES Identifier)标识其属于同一个ES。连接的多台PE组成冗余备份组,可以避免PE单点故障对网络造成影响,从而提高网络的可靠性。目前仅支持双归属。
多归属站点组网支持的冗余备份模式包括:
· 多活冗余模式:冗余备份组中的成员PE均可以转发流量,流量在成员PE之间形成负载分担。
· 单活冗余模式:冗余备份组中只有一台成员PE转发流量,成员PE之间形成主备关系。冗余备份组通过一定的算法从成员中选举出一台PE作为DF(Designated Forwarder,指定转发者)。该PE作为主PE负责转发流量;另一台PE作为备PE,处于备份状态。DF选举方法的详细介绍,请参见“EVPN配置指导”中的“EVPN VPLS”。
冗余备份组中的两台成员PE均向PE 3发布End.DT2U SID、End.DX2 SID和End.DT2M SID,并向PE 3通告多归属站点的冗余备份模式以及在冗余备份组中的状态(主PE或备PE)。不同冗余备份模式下,PE 3的处理有所不同:
· 多活冗余模式下:PE 3将PE 1和PE 2发布的路由作为等价路由,在二者之间进行负载分担。
· 单活冗余模式下:PE 3将主PE发布的路由作为最优路由,仅通过该路由转发报文。
如图1-3所示,EVPN VPLS over SRv6多归属站点组网中,CE 1双归属接入PE 1和PE 2,其中PE 1为DF。当PE 1侧的AC故障时,PE 1会删除对应的MAC地址表项,并向PE 2及远端PE通告本地不可达信息撤销MAC地址。此时,已经从远端PE发送到PE 1的数据报文由于没有出接口,会被丢弃。
EVPN VPLS over SRv6通过FRR功能解决该问题。在PE 1上启用FRR功能,使PE 1侧的AC故障时,不删除对应的MAC地址表项,而是将匹配该MAC地址表项的报文通过PE 1与PE 2间的Bypass SRv6 PW转发至PE 2,再由PE 2转发至CE 1,从而减少AC故障导致的丢包。
图1-3 FRR功能原理图
如果PE 1和PE 2之间通过End.DT2U SID或End.DX2 SID建立Bypass SRv6 PW,则当PE 1和PE 2侧的AC链路均故障时,PE 1和PE 2会将从对端接收到的报文再次通过Bypass SRv6 PW转发给对端,造成短暂的环路。通过在PE 1和PE 2之间使用End.DT2UL SID或End.DX2L SID建立Bypass SRv6 PW,可以解决上述问题。End.DT2UL SID和End.DX2L SID用来标识报文来自Bypass SRv6 PW,携带该SID的报文不会再转发到该Bypass SRv6 PW,从而避免产生环路。
开启FRR功能后,PE会优选使用End.DT2UL SID或End.DX2L SID建立Bypass SRv6 PW;如果不存在End.DT2UL SID和End.DX2L SID,则会使用End.DT2U SID或End.DX2 SID建立Bypass SRv6 PW。
在EVPN VPLS over SRv6组网中,属于同一个EVPN实例的所有AC均可以互相访问。EVPN承载接入用户的网络中,为了提高用户的安全性,减少用户之间的相互影响,通常需要控制AC侧用户之间的相互访问。EVPN E-Tree功能通过将AC分为Root和Leaf角色,实现了同一EVPN实例内AC之间单播流量和泛洪流量(广播、组播和未知单播流量)的隔离:
· Leaf AC连接的用户只能和Root AC连接的用户相互访问。
· 不同Leaf AC连接的用户之间相互隔离。
· Root AC连接的用户既可以和其它Root AC连接的用户相互通信,也可以和Leaf AC连接的用户相互通信。
图1-4 EVPN E-Tree示意图
对于同一PE连接的本地AC之间的流量,EVPN E-Tree通过如下方式实现流量隔离:
· PE从Leaf AC接收到报文后,仅将其转发到Root AC,不会转发到其他的Leaf AC。
· PE从Root AC接收到报文后,将其转发给同一VSI内的所有本地AC。
不同PE连接的AC之间互访时,EVPN E-Tree通过为MAC地址添加Leaf标记,实现已知单播流量之间的隔离:
(1) PE从Leaf AC接收到报文后,学习报文的源MAC地址,并为该MAC地址添加Leaf标记。
(2) PE通过EVPN的MAC/IP发布路由将MAC地址发布给远端PE,EVPN路由中携带E-Tree扩展团体属性,在该属性中携带Leaf标记。
(3) 远端PE将携带Leaf标记的MAC地址添加到MAC地址表中。
(4) 远端PE从本地AC接收到报文后,根据目的MAC地址查找MAC地址表。如果查找到的表项携带Leaf标记,则表示目的MAC地址连接的AC为Leaf AC;否则,为Root AC。
(5) 远端PE根据该报文所属AC的角色及目的MAC地址连接AC的角色,决定如何处理该报文:
¡ 如果报文来自Root AC,则转发该报文。
¡ 如果报文来自Leaf AC,则目的MAC地址连接Leaf AC时,丢弃该报文;目的MAC地址连接Root AC时,转发该报文。
开启EVPN E-Tree功能后,PE将通过SRv6 SID中的Args字段标识Leaf AC。PE通过EVPN的以太网自动发现路由将Leaf AC的Args标识通知给远端PE。目前,使用Args值1标识Leaf AC。
不同PE连接的AC之间互访时,EVPN E-Tree通过如下方式实现泛洪流量的隔离:
(1) PE从Leaf AC接收到报文后,根据远端PE发布的End.DT2M SID和Args值1重新计算End.DT2M SID,为报文封装计算后的End.DT2M SID,并将该报文发送给远端PE;PE从Root AC接收到报文后,直接根据远端PE发布的End.DT2M SID(该SID的Args值缺省为0)封装并发送报文。
(2) 远端PE接收到报文后,如果发现End.DT2M SID的Args值为1,则表示该报文来自Leaf AC,仅将其发送给本地的Root AC,不会发送给Leaf AC;否则,表示该报文来自Root AC,可以发送给本地的Root AC和Leaf AC。
在向SRv6网络演进的过程中,可能会存在基于MPLS的传统VPLS网络与EVPN VPLS over SRv6网络共存的情况。LDP PW或静态PW接入SRv6 PW功能,通过将VPLS网络中的LDP PW或静态PW看作SRv6网络的AC(该PW称为UPW),实现报文在SRv6 PW与UPW之间相互转发,从而实现VPLS网络与EVPN VPLS over SRv6网络的互通。
本功能不仅支持一条LDP PW或静态PW接入一条SRv6 PW,还支持将两条LDP PW或静态PW多归属接入两条SRv6 PW。如图1-5所示,在VPLS网络中,PE 1与PE 2、PE 3分别建立主备LDP PW或静态PW,该PW称为UPW;在EVPN VPLS over SRv6网络中,PE 4与PE 2、PE 3分别建立SRv6 PW。UPW作为SRv6网络中的AC,PE 2或PE 3从UPW接收到报文后,会解除MPLS封装,查找MAC地址表获取到对应的SRv6 PW,为其添加SRv6封装,并将其转发给PE 4;PE 2或PE 3从SRv6 PW接收报文的处理方法与此类似。
图1-5 LDP PW或静态PW接入SRv6 PW组网示意图
本特性的支持情况与设备型号有关,请以设备实际情况为准。
型号 |
说明 |
MSR610 |
不支持 |
MSR810、MSR810-W、MSR810-W-DB、MSR810-LM、MSR810-W-LM、MSR810-10-PoE、MSR810-LM-HK、MSR810-W-LM-HK、MSR810-LM-CNDE-SJK、MSR810-CNDE-SJK、MSR810-EI、MSR810-LM-EA、MSR810-LM-EI |
支持 |
MSR810-LMS、MSR810-LUS |
不支持 |
MSR810-SI、MSR810-LM-SI |
不支持 |
MSR810-LMS-EA、MSR810-LME |
支持 |
MSR1004S-5G、MSR1004S-5G-CN |
支持 |
MSR1104S-W、MSR1104S-W-CAT6、MSR1104S-5G-CN、MSR1104S-W-5G-CN |
支持 |
MSR2600-6-X1、MSR2600-15-X1、MSR2600-15-X1-T |
支持 |
MSR2600-10-X1 |
支持 |
MSR 2630 |
支持 |
MSR3600-28、MSR3600-51 |
支持 |
MSR3600-28-SI、MSR3600-51-SI |
不支持 |
MSR3600-28-X1、MSR3600-28-X1-DP、MSR3600-51-X1、MSR3600-51-X1-DP |
支持 |
MSR3600-28-G-DP、MSR3600-51-G-DP |
支持 |
MSR3610-I-DP、MSR3610-IE-DP、MSR3610-IE-ES、MSR3610-IE-EAD、MSR-EAD-AK770、MSR3610-I-IG、MSR3610-IE-IG |
支持 |
MSR-iMC |
支持 |
MSR3610-X1、MSR3610-X1-DP、MSR3610-X1-DC、MSR3610-X1-DP-DC、MSR3620-X1、MSR3640-X1 |
支持 |
MSR3610、MSR3620、MSR3620-DP、MSR3640、MSR3660 |
支持 |
MSR3610-G、MSR3620-G |
支持 |
MSR3640-G |
支持 |
MSR3640-X1-HI |
支持 |
型号 |
说明 |
MSR810-W-WiNet、MSR810-LM-WiNet |
支持 |
MSR830-4LM-WiNet |
支持 |
MSR830-5BEI-WiNet、MSR830-6EI-WiNet、MSR830-10BEI-WiNet |
支持 |
MSR830-6BHI-WiNet、MSR830-10BHI-WiNet |
支持 |
MSR2600-6-WiNet |
支持 |
MSR2600-10-X1-WiNet |
支持 |
MSR2630-WiNet |
支持 |
MSR3600-28-WiNet |
支持 |
MSR3610-X1-WiNet |
支持 |
MSR3620-X1-WiNet |
支持 |
MSR3610-WiNet、MSR3620-10-WiNet、MSR3620-DP-WiNet、MSR3620-WiNet、MSR3660-WiNet |
支持 |
型号 |
说明 |
MSR2630-XS |
支持 |
MSR860-6EI-XS |
支持 |
MSR860-6HI-XS |
支持 |
MSR3600-28-XS |
支持 |
MSR3610-XS |
支持 |
MSR3620-XS |
支持 |
MSR3610-I-XS |
支持 |
MSR3610-IE-XS |
支持 |
MSR3620-X1-XS |
支持 |
MSR3640-XS |
支持 |
MSR3660-XS |
支持 |
型号 |
说明 |
MSR810-LM-GL |
支持 |
MSR810-W-LM-GL |
支持 |
MSR830-6EI-GL |
支持 |
MSR830-10EI-GL |
支持 |
MSR830-6HI-GL |
支持 |
MSR830-10HI-GL |
支持 |
MSR1004S-5G-GL |
支持 |
MSR2600-6-X1-GL |
支持 |
MSR3600-28-SI-GL |
不支持 |
EVPN VPLS over SRv6配置任务如下:
(1) 创建并配置EVPN实例
a. 创建VSI
b. 配置EVPN实例
(2) 配置从指定Locator段申请SRv6 SID
a. 配置SRv6 SID
(3) 配置报文转发方式
¡ (可选)配置基于End.DX2 SID和End.DX2L SID转发单播流量
¡ 配置路由迭代方式
路由迭代方式为SRv6 TE方式或SRv6 TE和SRv6 BE混合方式时,必须执行本配置。
(4) 配置AC与VSI关联
(6) 配置SRv6报文
¡ 配置EVPN VPLS over SRv6封装的IPv6报文头的源地址
¡ (可选)配置SRH的Next Header字段的值
(7) (可选)配置多归属站点
(8) (可选)配置ARP泛洪抑制
(9) (可选)配置EVPN E-Tree功能
(10) (可选)配置LDP PW或静态PW接入SRv6 PW
(11) (可选)维护EVPN VPLS over SRv6网络
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(1) 进入系统视图。
system-view
(2) 开启L2VPN功能。
l2vpn enable
缺省情况下,L2VPN功能处于关闭状态。
(3) 创建VSI,并进入VSI视图。
vsi vsi-name
(4) 开启VSI。
undo shutdown
缺省情况下,VSI处于开启状态。
创建EVPN实例后,可以为其配置RD和RT属性。PE在发布EVPN路由时,携带对应EVPN实例视图下配置的RD和RT。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(3) 创建EVPN实例,并进入EVPN实例视图。
evpn encapsulation srv6
(4) 配置EVPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未指定EVPN实例的RD。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(5) 配置EVPN实例的Route Target属性。
vpn-target { vpn-target&<1-8> } [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未指定EVPN实例的Route Target属性。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
参数 |
使用说明 |
export-extcommunity |
不同VSI实例下EVPN实例的Export target不能相同;不同视图(系统视图、VSI视图、VPN实例视图、公网实例视图、交叉连接组视图)下EVPN实例的Export target也不能相同 |
import-extcommunity |
VPN实例、公网实例、各视图下EVPN实例的Import target建议不要与交叉连接组EVPN实例的Export target相同,反之亦然 |
(6) (可选)指定引用的隧道策略。
tunnel-policy tunnel-policy-name
缺省情况下,未引用隧道策略。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(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.DT2U SID。
opcode { opcode | hex hex-opcode } end-dt2u vsi vsi-name
¡ 配置End.DT2UL SID。
opcode { opcode | hex hex-opcode } end-dt2ul vsi vsi-name
¡ 配置End.DX2 SID。
opcode { opcode | hex hex-opcode } end-dx2 vsi vsi-name interface interface-type interface-number
¡ 配置End.DX2L SID。
opcode { opcode | hex hex-opcode } end-dx2l vsi vsi-name interface interface-type interface-number
¡ 配置End.DT2M SID。
opcode { opcode | hex hex-opcode } end-dt2m vsi vsi-name
执行本配置后,设备将从引用的Locator段中为VSI申请SRv6 SID。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 配置VSI引用的Locator段。
segment-routing ipv6 locator locator-name [ dt2u-locator dt2u-locator-name ] [ dt2ul-locator dt2ul-locator-name ] [ dx2-locator dx2-locator-name ] [ dx2l-locator dx2l-locator-name ] [ auto-sid-disable ]
缺省情况下,未指定VSI引用的Locator段。
缺省情况下,PE接收到携带End.DT2U SID或End.DT2UL SID的报文后,会在End.DT2U SID或End.DT2UL SID所属的VSI内查找MAC地址表转发该报文。
执行本配置后,PE将为与VSI关联的每个AC分配一个End.DX2 SID或End.DX2L SID,并通过MAC/IP发布路由将该SID通告给远端PE。PE接收到携带本地分配的End.DX2 SID或End.DX2L SID的SRv6报文后,无需查找MAC地址表,直接将解除SRv6封装的报文发送给与该SID关联的AC,从而提高了转发效率。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 配置基于End.DX2 SID和End.DX2L SID转发单播流量。
unicast-forwarding dx2-based
缺省情况下,基于End.DT2U SID和End.DT2UL SID转发单播流量。
EVPN VPLS over SRv6网络中,PE为用户侧流量封装End.DT2M SID、End.DT2U SID、End.DT2UL SID、End.DX2 SID或End.DX2L SID后,可以根据如下路由迭代方式为封装后的报文查找转发路径:
· SRv6 BE方式:该方式根据封装的SID查找IPv6路由表进行转发。
· SRv6 TE方式:该方式根据路由的Color属性或下一跳地址查找匹配的SRv6 TE Policy,为报文添加携带End.DT2M SID(或End.DT2U SID、End.DT2UL SID、End.DX2 SID、End.DX2L SID)、SRv6 TE Policy SID列表的SRH头后,通过SRv6 TE Policy转发该报文。
SRv6 TE和SRv6 BE混合方式:优先通过SRv6 TE方式选择转发路径;如果SRv6 TE方式未找到可用的SRv6 TE Policy,则通过SRv6 BE方式选择转发路径。
采用SRv6 TE或SRv6 TE/SRv6 BE混合方式时,需要配置SRv6 TE Policy引流,详细配置方法请参见“1.10 配置SRv6 TE Policy引流”。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation srv6
(4) 配置路由迭代方式。
segment-routing ipv6 { best-effort | traffic-engineering [ best-effort ] }
缺省情况下,BGP路由不会根据自身携带的SRv6 SID进行迭代。
采用SRv6 TE方式或SRv6 TE和SRv6 BE混合方式进行路由迭代时,还需配置本功能才能将报文引流到SRv6 TE Policy上。
若同时配置了基于Color和基于隧道策略两种引流方式,则优先采用基于Color引流。
查找是否存在Color和Endpoint地址与EVPN路由的Color扩展团体属性和下一跳地址完全相同的SRv6-TE policy。若存在,则将该EVPN路由迭代到SRv6 TE Policy。当设备收到匹配该EVPN路由的报文时,会通过SRv6 TE Policy转发该报文。
EVPN路由的Color有如下两种配置方式:
· 路由策略方式:如果EVPN路由不携带Color扩展团体属性,可以通过路由策略为EVPN路由添加Color扩展团体属性;如果EVPN路由携带Color扩展团体属性,也可以通过路由策略修改Color扩展团体属性。
· 缺省Color方式:如果EVPN路由不携带Color扩展团体属性,且未通过路由策略方式配置该路由的Color扩展团体属性,则该路由使用配置的缺省Color值。
若本地引用的EVPN入方向路由策略中,配置的apply extcommunity color命令指定了additive参数且收到的EVPN路由本身携带Color扩展团体属性,则采用多个Color扩展团体属性中数值最大的Color扩展团体属性进行基于Color的引流。
(1) 进入系统视图。
system-view
(2) 进入路由策略视图。
route-policy route-policy-name { deny | permit } node node-number
本命令的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(3) 配置BGP路由的Color扩展团体属性。
apply extcommunity color color [ additive ]
缺省情况下,未配置BGP路由属性。
本命令的详细介绍,请参见“三层技术-IP路由配置指导”中的“路由策略”。
(4) 退回系统视图。
quit
(5) 进入VSI视图。
vsi vsi-name
(6) 进入EVPN实例视图。
evpn encapsulation srv6
(7) 配置EVPN的入方向路由策略。
import route-policy route-policy
缺省情况下,EVPN实例下未配置EVPN的入方向路由策略,即不对接收的路由进行过滤。
(8) 配置EVPN的出方向路由策略。
export route-policy route-policy
缺省情况下,在EVPN实例下未配置EVPN的出方向路由策略,即不对发布的路由进行过滤。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 配置EVPN路由的缺省Color值。
default color color-value
缺省情况下,未配置EVPN路由的缺省Color值。
根据路由下一跳地址在隧道策略中查找匹配的SRv6-TE policy。通过首选隧道策略或负载分担隧道策略,可以实现用指定SRv6 TE Policy的路径作为承载SRv6 PW的公网隧道来转发私网报文。隧道策略的详细介绍请参见“MPLS配置指导”中的“隧道策略”。
(1) 进入系统视图。
system-view
(2) 创建隧道策略,并进入隧道策略视图。
tunnel-policy tunnel-policy-name [ default ]
(3) 配置隧道策略。请至少选择其中一项进行配置。
¡ 配置指定的SRv6 TE Policy隧道为首选隧道。
preferred-path srv6-policy name srv6-policy-name
缺省情况下,未配置首选隧道。
¡ 配置SRv6 TE Policy隧道的负载分担策略。
select-seq srv6-policy load-balance-number number
缺省情况下,未配置负载分担策略。
本命令的详细描述,请参见“MPLS命令参考”中的“隧道策略”。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 指定引用的隧道策略。
tunnel-policy tunnel-policy-name
缺省情况下,未引用隧道策略。
将三层接口与VSI关联后,从三层接口接收到的报文,将通过查找关联VSI的MAC地址表进行转发。
本配置中各命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(1) 进入系统视图。
system-view
(2) 进入三层接口视图。
interface interface-type interface-number
(3) 将三层接口与VSI关联。
xconnect vsi vsi-name [ track track-entry-number&<1-3> ]
缺省情况下,三层接口未关联VSI。
BGP相关命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(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路由信息。
(7) 配置向对等体/对等体组发布SRv6封装的EVPN路由。
peer { group-name | ipv6-address [ prefix-length ] } advertise encap-type srv6
缺省情况下,向对等体/对等体组发布VXLAN封装的EVPN路由。
在EVPN VPLS over SRv6组网环境中,必须指定封装的IPv6报文头的源地址。否则,无法通过EVPN VPLS over SRv6转发数据流量。
配置源地址时,不能为环回地址、链路本地地址、组播地址和未指定地址。指定的源地址必须为本机地址,且已经由路由协议发布,建议指定本设备的Loopback接口地址。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 配置EVPN VPLS over SRv6封装的IPv6报文头的源地址。
encapsulation source-address ipv6-address [ ip-ttl ttl-value ]
缺省情况下,未指定EVPN VPLS over SRv6封装的IPv6报文头的源地址。
在EVPN VPLS over SRv6组网中,设备需要对SRv6报文的SRH的Next Header字段进行校验,如果和本设备可以识别的值不同,则不会按照SRv6报文处理,只会按照普通IPv6报文处理,可能导致报文被丢弃。为了避免以上问题,可以修改SRH的Next Header字段的值,以便与不同版本兼容,使设备正常处理SRv6报文。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 配置SRH的Next Header字段的值。
evpn next-header-field { 59 | 143 }
缺省情况下,SRH的Next Header字段的值为143。
建议为同一冗余备份组中各PE连接多归属站点的AC接口配置相同的冗余备份模式。
主接口及其子接口上均可以配置ESI:
· 若主接口及其子接口上都配置了ESI,或仅在子接口上配置了ESI,则子接口的ESI以该子接口上的配置为准,子接口的冗余备份模式也以该子接口上的配置为准。
· 若仅在主接口上配置了ESI,则子接口继承主接口的ESI和冗余备份模式。即使 子接口上配置了冗余备份模式,该配置也不会生效。
ESI是ES的唯一标识,ESI相同的接口对应的链路属于同一个ES,报文可以在这些链路之间进行负载分担。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
(3) 配置接口ESI。
esi esi-id
缺省情况下,未配置接口的ESI。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
多归属站点的冗余备份模式包括单活冗余模式和多活冗余模式。
冗余备份组中的各PE分别与远端PE建立PW,若需两条PW间形成主备关系,则使用单活冗余模式;若需PW间形成等价负载分担,则使用多活冗余模式。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
¡ 进入二层以太网接口视图。
interface interface-type interface-number
¡ 进入二层聚合接口视图。
interface bridge-aggregation interface-number
¡ 进入三层接口视图。
interface interface-type interface-number
¡ 进入三层聚合接口视图。
interface route-aggregation interface-number
(3) 配置接口的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活冗余模式。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
本功能是指多归属站点AC故障时,将需要通过故障AC转发的流量临时通过冗余备份组成员PE间的Bypass SRv6 PW转发,减少AC故障导致的丢包。
如果全局视图下开启EVPN实例FRR功能的同时,在指定EVPN实例下执行了evpn frr local命令,则当前EVPN实例的FRR功能状态以EVPN实例下的配置为准。
如果在指定EVPN实例下开启了EVPN的FRR功能,则执行undo evpn multihoming vpls-frr local命令不会关闭该EVPN实例下的FRR功能。
本功能配置在冗余备份组成员PE上。
(1) 进入系统视图。
system-view
(2) 开启全局EVPN VPLS over SRv6的FRR功能。
evpn multihoming vpls-frr local
缺省情况下,EVPN VPLS over SRv6的FRR功能处于关闭状态。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(1) 进入系统视图。
system-view
(2) 进入VSI实例视图。
vsi vsi-name
(3) 进入VSI实例下的EVPN实例视图。
evpn encapsulation srv6
(4) 开启或关闭指定EVPN实例的FRR功能。
evpn frr local { disable | enable }
缺省情况下,EVPN实例的FRR功能状态与EVPN VPLS全局FRR功能状态保持一致。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
为了避免广播发送的ARP请求报文占用核心网络带宽,PE会根据接收到的ARP请求和ARP应答报文、BGP EVPN路由在本地建立ARP泛洪抑制表项。当PE再收到本地站点内虚拟机请求其它虚拟机MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的表项,则通过SRv6 PW将ARP请求泛洪到其他站点。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
开启ARP泛洪抑制时,如果同时执行flooding disable命令关闭了VSI的泛洪功能,则建议通过mac-address timer命令配置动态MAC地址的老化时间大于25分钟(ARP泛洪抑制表项的老化时间),以免MAC地址在ARP泛洪抑制表项老化之前老化,产生黑洞MAC地址。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 开启ARP泛洪抑制功能。
arp suppression enable
缺省情况下,ARP泛洪抑制功能处于关闭状态。
EVPN E-Tree功能用来实现AC之间流量的隔离,以便更好地控制AC之间的访问,提高安全性。
e-tree enable命令用于开启本地AC与远端AC的EVPN E-Tree功能,若仅需要控制本地AC之间的访问,则无需配置本命令。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 开启本地AC与远端AC的EVPN E-Tree功能。
e-tree enable
缺省情况下,本地AC与远端AC的EVPN E-Tree功能处于关闭状态。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(5) 退回系统视图。
quit
quit
(6) 三层接口作为AC时,配置AC为Leaf角色。
a. 进入三层接口视图。
interface interface-type interface-number
b. 配置AC为Leaf角色。
xconnect vsi vsi-name leaf
未指定leaf参数时,AC为Root角色。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
本功能用来实现VPLS网络与EVPN VPLS over SRv6网络的互通。
建议为同一冗余备份组中各PE连接多归属站点的UPW配置相同的冗余备份模式。
除本节列出的配置步骤外,LDP PW或静态PW接入SRv6 PW组网中,还需要完成以下任务:
· 在VPLS网络中的PE设备上完成VPLS相关配置。
· 在SRv6网络中的PE设备上完成EVPN VPLS over SRv6相关配置。
LDP PW接入SRv6 PW场景中,LDP PW的数据封装类型必须与AC的接入模式一致,即同为Ethernet或同为VLAN。若二者不同,则需要在LDP PW引用的PW class下执行pw-type命令修改LDP PW的数据封装类型,或通过xconnect vsi命令中的access-mode参数修改AC的接入模式。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 退回VSI视图。
quit
(5) 指定VSI使用LDP信令建立PW,并进入VSI LDP信令视图。
pwsignaling ldp
缺省情况下,未指定VSI使用的PW信令协议。
(6) 配置VPLS的LDP PW,指定该LDP PW不采用水平分割方式,并进入VSI LDP PW视图。
peer ip-address [ pw-id pw-id ] no-split-horizon [ hub | ignore-standby-state | pw-class class-name | tunnel-policy tunnel-policy-name ] *
本命令配置的LDP PW称为UPW,作为SRv6网络的AC。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(7) (可选)配置UPW的ESI。
esi esi-id
缺省情况下,未配置PW的ESI。
多归属站点组网中,需要在VPLS网络与EVPN VPLS over SRv6网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(8) (可选)配置UPW的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活模式。
多归属站点组网中,可以在VPLS网络与EVPN VPLS over SRv6网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(9) 配置VPLS的备份PW,并进入VSI LDP备份PW视图。
backup-peer ip-address [ pw-id pw-id ] [ pw-class class-name | tunnel-policy tunnel-policy-name ] *
在多归属站点组网中,多归属接入的PE上需要执行本命令。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 退回VSI视图。
quit
(5) 指定VSI采用静态配置方式建立PW,并进入VSI静态配置视图。
pwsignaling static
缺省情况下,未指定VSI使用的PW信令协议。
(6) 配置VPLS的静态PW,指定该静态PW不采用水平分割方式,并进入VSI静态PW视图。
peer ip-address [ pw-id pw-id ] in-label label-value out-label label-value no-split-horizon [ hub | pw-class class-name | tunnel-policy tunnel-policy-name ] *
本命令配置的静态PW称为UPW,作为SRv6网络的AC。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
(7) (可选)配置UPW的ESI。
esi esi-id
缺省情况下,未配置PW的ESI。
多归属站点组网中,需要在VPLS网络与EVPN VPLS over SRv6网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(8) (可选)配置UPW的冗余备份模式。
evpn redundancy-mode { all-active | single-active }
缺省情况下,冗余备份模式为多活模式。
多归属站点组网中,可以在VPLS网络与EVPN VPLS over SRv6网络的边缘设备上执行本命令。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(9) 配置VPLS的备份PW,并进入VSI静态备份PW视图。
backup-peer ip-address [ pw-id pw-id ] in-label label-value out-label label-value [ pw-class class-name | tunnel-policy tunnel-policy-name ] *
在多归属站点组网中,多归属接入的PE上需要执行本命令。
本命令的详细介绍,请参见“MPLS命令参考”中的“VPLS”。
在VSI实例下的EVPN实例视图执行本配置后,会开启EVPN实例下所有SRv6 PW的统计功能,通过display l2vpn statistics srv6-pw inbound命令可以查看所有SRv6 PW的入方向报文统计信息,通过display l2vpn peer srv6 verbose命令可以查看每条SRv6 PW的出方向报文统计信息,通过reset l2vpn statistics srv6-pw命令可以清除统计信息。
(1) 进入系统视图。
system-view
(2) 进入VSI视图。
vsi vsi-name
(3) 进入EVPN实例视图。
evpn encapsulation srv6
(4) 开启SRv6 PW的报文统计功能。
statistics enable
缺省情况下,SRv6 PW的报文统计功能处于关闭状态。
EVPN VPLS over SRv6组网中,本端PE设备与远端PE设备间通过SRv6 PW传输数据报文。当PE间出现丢包或断流现象时,可通过本命令检测本端PE到远端PE间SRv6 PW的单向连通性。具体检测过程为:
(1) 本端PE设备构造MPLS Echo请求报文,通过在指定VSI下查找到达指定目的MAC地址的转发信息,找到对应的SRv6隧道,并获取该隧道的End.DT2U SID,依次封装UDP头、IPv6报文头后将请求报文发送给远端PE。
(2) 远端PE设备收到MPLS Echo请求报文后,回复MPLS Echo应答报文。
(3) 本端PE设备根据是否收到MPLS Echo应答报文、收到MPLS Echo应答报文的时间,判断该SRv6 PW连通性,并输出相应的统计信息。
可在任意视图下执行本命令,检测EVPN VPLS over SRv6组网中SRv6 PW的单向连通性。
ping evpn vpls srv6 vsi vsi-name mac mac-address [ -a source-ipv6 | -c count | -h hop-limit | -m interval | -r reply-mode | -s packet-size | -t time-out | -tc tc ] *
EVPN VPLS over SRv6组网中,本端PE设备与远端PE设备间通过SRv6 PW传输数据报文。当PE间出现丢包或断流现象时,可通过本命令查看本端PE到指定主机连接的远端PE间单向SRv6 PW所经过的路径,并根据应答信息对错误点进行定位。具体检测过程为:
(1) 本端PE设备构造MPLS Echo请求报文,通过在指定VSI下查找到达指定目的MAC地址的信息,找到对应的SRv6隧道,并获取该隧道的End.DT2U SID,依次封装UDP头、IPv6报文头后将请求报文发送给远端PE。此时IPv6报文头部的Hop limit字段的取值设置为1。
(2) 下一个节点收到报文后,Hop limit字段的值变成0,会向首节点(即本端PE)发送ICMPv6超时报文。
(3) 本端PE收到ICMPv6超时报文后,将Hop limit字段的取值加1(此时设置为2)继续发送ICMPv6回显请求报文。
(4) 下游节点收到报文后,依次将Hop limit减1,直到Hop limit为0,该节点会向首节点(即本端PE)发送ICMPv6超时报文;若为目的节点则向首节点发送MPLS Echo应答报文。
(5) 本端PE依次重复上述过程,直至未在time-out时间内收到应答报文或收到远端PE发送的应答报文。
(6) 本端PE设备根据是否收到应答报文、收到应答报文的时间,判断该SRv6 PW连通性,并输出相应的统计信息。
可在任意视图下执行本命令,查看本端PE到指定主机连接的远端PE间PW所经过的路径,并根据应答信息对错误点进行定位。
tracert evpn vpls srv6 vsi vsi-name mac mac-address [ -a source-ip | -h hop-limit | -r reply-mode | -t time-out | -tc tc ] *
在完成上述配置后,在任意视图下执行display命令可以显示配置后EVPN VPLS over SRv6的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令来清除EVPN VPLS over SRv6的相关信息。
display bgp group、display bgp peer、display bgp update-group命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP”。
操作 |
命令 |
显示EVPN VPLS组网中EVPN VSI的转发信息 |
(独立运行模式) display l2vpn forwarding evpn [ vsi ] [ name vsi-name ] [ verbose ] (IRF模式) display l2vpn forwarding evpn [ vsi ] [ name vsi-name ] [ slot slot-number [ cpu cpu-number ] ] [ verbose ]
display l2vpn forwarding evpn [ vsi ] [ name vsi-name ] [ chassis chassis-number slot slot-number [ cpu cpu-number ] ] [ verbose ] |
显示BGP对等体组的信息 |
display bgp [ instance instance-name ] group l2vpn evpn [ group-name group-name ] |
显示BGP EVPN路由信息 |
display bgp [ instance instance-name ] l2vpn evpn [ peer { ipv6-address } { advertised-routes | received-routes } [ statistics ] | [ route-distinguisher route-distinguisher ] [ route-type { auto-discovery | es | imet | mac-ip } ] [ { evpn-route route-length | evpn-prefix } [ advertise-info ] ] | [ ipv4-address | ipv6-address | mac-address ] ] | [ statistics ] ] |
显示BGP对等体或对等体组的状态和统计信息 |
display bgp [ instance instance-name ] peer l2vpn evpn [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ] |
显示BGP打包组的相关信息 |
display bgp [ instance instance-name ] update-group l2vpn evpn [ ipv6-address ] |
显示EVPN通过BGP自动发现的邻居信息 |
display evpn auto-discovery { mac-ip [ srv6 ] [ peer ip-address] [ vsi vsi-name ] | macip-prefix [ nexthop next-hop ] [ count ] } |
显示EVPN的ES信息 |
display evpn es { local [ count | [ vsi vsi-name ] [ esi esi-id ] [ verbose ] ] | remote [ vsi vsi-name ] [ esi esi-id ] [ nexthop next-hop ] [ verbose ] } |
显示EVPN的ARP泛洪抑制信息 |
display evpn route arp suppression [ srv6 ] [ local | remote ] [ vsi vsi-name ] [ count ] |
显示EVPN的MAC地址信息 |
display evpn route mac [ srv6 ] [ local | remote ] [ vsi vsi-name ] [ count ] |
显示SRv6的转发信息 |
display l2vpn forwarding srv6 [ vsi vsi-name ] [ verbose ] |
显示L2VPN的MAC地址表信息 |
display l2vpn mac-address [ vsi vsi-name ] [ dynamic ] [ count ] |
显示L2VPN的SRv6相关信息 |
display l2vpn peer srv6 [ vsi vsi-name ] [ state-machine | verbose ] |
显示SRv6 PW入方向的报文统计信息 |
display l2vpn statistics srv6-pw inbound [ vsi vsi-name ] |
显示VSI的信息 |
display l2vpn vsi [ evpn-srv6 | name vsi-name ] [ count | verbose ] |
清除SRv6 PW的报文统计信息 |
reset l2vpn statistics srv6-pw [ vsi vsi-name [ peer ipv6-address ] ] |
用户网络有两个站点,分别为CE 1和CE 2。CE 1和CE 2通过以太网接口分别接入PE 1和PE 2并希望通过IPv6骨干网运行EVPN VPLS over SRv6功能实现二层互通。
图1-6 EVPN VPLS over SRv6单归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
GE1/0/1 |
10::1/64 |
P |
Loop0 |
3::3/128 |
PE 1 |
Loop0 |
1::1/128 |
|
GE1/0/1 |
20::2/64 |
|
GE1/0/1 |
- |
|
GE1/0/2 |
30::1/64 |
|
GE1/0/2 |
20::1/64 |
PE 2 |
Loop0 |
2::2/128 |
CE 2 |
GE1/0/1 |
10::2/64 |
|
GE1/0/1 |
- |
|
|
|
|
GE1/0/2 |
30::2/64 |
(1) 配置CE 1
<CE1> system-view
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] ipv6 address 10::1 64
[CE1-GigabitEthernet1/0/1] quit
(2) 配置PE 1
# 在PE 1上运行OSPFv3,通过OSPFv3发布SID。
<PE1> system-view
[PE1] ospfv3
[PE1-ospfv3-1] router-id 1.1.1.1
[PE1-ospfv3-1] segment-routing ipv6 locator aaa
[PE1-ospfv3-1] area 0.0.0.0
[PE1-ospfv3-1-area-0.0.0.0] quit
[PE1-ospfv3-1] quit
# 配置Loopback0接口。
[PE1] interface loopback 0
[PE1-LoopBack0] ipv6 address 1::1 128
[PE1-LoopBack0] ospfv3 1 area 0
[PE1-LoopBack0] quit
# 开启L2VPN功能。
[PE1] l2vpn enable
# 配置连接P的接口GigabitEthernet1/0/2。
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] ipv6 address 20::1 64
[PE1-GigabitEthernet1/0/2] ospfv3 1 area 0
[PE1-GigabitEthernet1/0/2] undo shutdown
[PE1-GigabitEthernet1/0/2] quit
# 在PE 1和PE 2之间建立IBGP连接,并配置在二者之间通过BGP EVPN发布路由信息。
[PE1] bgp 100
[PE1-bgp-default] router-id 1.1.1.1
[PE1-bgp-default] peer 2::2 as-number 100
[PE1-bgp-default] peer 2::2 connect-interface loopback 0
[PE1-bgp-default] address-family l2vpn evpn
[PE1-bgp-default-evpn] peer 2::2 enable
[PE1-bgp-default-evpn] peer 2::2 advertise encap-type srv6
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用SRv6封装,配置EVPN实例的RD与RT,配置根据路由携带的SID属性进行迭代,并指定EVPN实例引用的Locator段。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation srv6
[PE1-vsi-vpna-evpn-srv6] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE1-vsi-vpna-evpn-srv6] segment-routing ipv6 locator aaa
[PE1-vsi-vpna-evpn-srv6] quit
# 将接口GigabitEthernet1/0/1与VSI关联。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] xconnect vsi vpna
[PE1-GigabitEthernet1/0/1] quit
# 配置Locator段,用于申请End.DT2U SID和End.DT2M SID。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] encapsulation source-address 1::1
[PE1-segment-routing-ipv6] locator aaa ipv6-prefix 100:: 64 static 32
[PE1-segment-routing-ipv6-locator-aaa] quit
[PE1-segment-routing-ipv6] quit
(3) 配置PE 2
# 在PE 2上运行OSPFv3,通过OSPFv3发布SID。
<PE2> system-view
[PE2] ospfv3
[PE2-ospfv3-1] router-id 2.2.2.2
[PE2-ospfv3-1] segment-routing ipv6 locator aaa
[PE2-ospfv3-1] area 0.0.0.0
[PE2-ospfv3-1-area-0.0.0.0] quit
[PE2-ospfv3-1] quit
# 配置Loopback0接口。
[PE2] interface loopback 0
[PE2-LoopBack0] ipv6 address 2::2 128
[PE2-LoopBack0] ospfv3 1 area 0
[PE2-LoopBack0] quit
# 开启L2VPN功能。
[PE2] l2vpn enable
# 配置连接P的接口GigabitEthernet1/0/2。
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] ipv6 address 30::2 64
[PE2-GigabitEthernet1/0/2] ospfv3 1 area 0.0.0.0
[PE2-GigabitEthernet1/0/2] undo shutdown
[PE2-GigabitEthernet1/0/2] quit
# 在PE 1和PE 2之间建立IBGP连接,并配置在二者之间通过BGP EVPN发布路由信息。
[PE2] bgp 100
[PE2-bgp-default] router-id 2.2.2.2
[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] peer 1::1 advertise encap-type srv6
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用SRV6封装,配置EVPN实例的RD与RT,配置根据路由携带的SID属性进行迭代,并指定EVPN实例引用的Locator段。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation srv6
[PE2-vsi-vpna-evpn-srv6] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE2-vsi-vpna-evpn-srv6] segment-routing ipv6 locator aaa
[PE2-vsi-vpna-evpn-srv6] quit
# 将接口GigabitEthernet1/0/1与VSI关联。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] xconnect vsi vpna
[PE2-GigabitEthernet1/0/1] quit
# 配置Locator段,用于申请End.DT2U SID和End.DT2M SID。
[PE2] segment-routing ipv6
[PE2-segment-routing-ipv6] encapsulation source-address 2::2
[PE2-segment-routing-ipv6] locator aaa ipv6-prefix 200:: 64 static 32
[PE2-segment-routing-ipv6-locator-aaa] quit
[PE2-segment-routing-ipv6] quit
(4) 配置P
# 在P上运行OSPFv3。
<P> system-view
[P] ospfv3
[P-ospfv3-1] router-id 3.3.3.3
[P-ospfv3-1] area 0.0.0.0
[P-ospfv3-1-area-0.0.0.0] quit
[P-ospfv3-1] quit
# 配置接口的IPv6地址,并在接口上运行OSPFv3。
[P] interface loopback 0
[P-LoopBack0] ipv6 address 3::3 128
[P-LoopBack0] ospfv3 1 area 0
[P-LoopBack0] quit
[P] interface gigabitethernet 1/0/1
[P-GigabitEthernet1/0/1] ipv6 address 20::2 64
[P-GigabitEthernet1/0/1] ospfv3 1 area 0
[P-GigabitEthernet1/0/1] quit
[P] interface gigabitethernet 1/0/2
[P-GigabitEthernet1/0/2] ipv6 address 30::1 64
[P-GigabitEthernet1/0/2] ospfv3 1 area 0
[P-GigabitEthernet1/0/2] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ipv6 address 10::2 64
[CE2-GigabitEthernet1/0/1] quit
# 在PE 1上查看L2VPN的SRv6相关信息,可以看到PE 1和PE 2之间建立了SRv6隧道。
[PE1] display l2vpn peer srv6
Total number of SRv6 Tunnels: 1
1 up, 0 blocked, 0 down
VSI Name: vpna
Peer : 2::2
Flag : Main
State : Up
# 在PE 1上查看SRv6转发信息。
[PE1] display l2vpn forwarding srv6
Total number of VSIs: 1
Total number of SRv6 tunnels: 1, 1 up, 0 blocked, 0 down
VSI Name : vpna
Link ID : 0x9000000 Type: BE State: Up
In SID : 100::1:0:1
Out SID : 200::1:0:0
# CE 1与CE 2之间能够ping通。
用户网络有两个站点,分别为CE 1和CE 2。CE 1通过聚合链路多归属于PE 1和PE 2,CE 2为PE 3下的单归属设备。CE 1和CE 2希望通过骨干网的EVPN VPLS over SRv6功能二层互通。
图1-7 EVPN VPLS over SRv6多归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
PE 1 |
Loop0 |
1::1/128 |
CE 1 |
RAGG1 |
100::1/64 |
|
GE1/0/1 |
- |
CE 2 |
GE1/0/1 |
100::2/64 |
|
GE1/0/2 |
10::1/64 |
PE 3 |
Loop0 |
3::3/128 |
|
GE1/0/3 |
20::1/64 |
|
GE1/0/1 |
- |
PE 2 |
Loop0 |
2::2/128 |
|
GE1/0/2 |
10::3/64 |
|
GE1/0/1 |
- |
|
GE1/0/3 |
30::3/64 |
|
GE1/0/2 |
30::2/64 |
|
|
|
|
GE1/0/3 |
20::2/64 |
|
|
|
(1) 配置CE 1
# 创建三层聚合接口1,采用静态聚合模式,并为其配置IP地址和子网掩码。
<CE1> system-view
[CE1] interface route-aggregation 1
[CE1-Route-Aggregation1] ipv6 address 100::1 64
[CE1-Route-Aggregation1] quit
# 将接口GigabitEthernet1/0/1和GigabitEthernet1/0/2加入到聚合组1中。
[CE1] interface gigabitethernet 1/0/1
[CE1-GigabitEthernet1/0/1] port link-aggregation group 1
[CE1-GigabitEthernet1/0/1] quit
[CE1] interface gigabitethernet 1/0/2
[CE1-GigabitEthernet1/0/2] port link-aggregation group 1
[CE1-GigabitEthernet1/0/2] quit
(2) 配置PE 1
# 在PE 1上运行OSPFv3。
<PE1> system-view
[PE1] ospfv3
[PE1-ospfv3-1] router-id 1.1.1.1
[PE1-ospfv3-1] segment-routing ipv6 locator aaa
[PE1-ospfv3-1] area 0
[PE1-ospfv3-1-area-0.0.0.0] quit
[PE1-ospfv3-1] quit
# 配置Loopback0接口。
[PE1] interface loopback 0
[PE1-LoopBack0] ipv6 address 1::1 128
[PE1-LoopBack0] ospfv3 1 area 0
[PE1-LoopBack0] quit
# 开启L2VPN功能。
[PE1] l2vpn enable
# 配置连接PE 3的接口GigabitEthernet1/0/2。
[PE1] interface gigabitethernet 1/0/2
[PE1-GigabitEthernet1/0/2] ipv6 address 10::1/64
[PE1-GigabitEthernet1/0/2] ospfv3 1 area 0
[PE1-GigabitEthernet1/0/2] undo shutdown
[PE1-GigabitEthernet1/0/2] quit
# 配置连接PE 2的接口GigabitEthernet1/0/3。
[PE1] interface gigabitethernet 1/0/3
[PE1-GigabitEthernet1/0/3] ipv6 address 20::1/64
[PE1-GigabitEthernet1/0/3] ospfv3 1 area 0
[PE1-GigabitEthernet1/0/3] undo shutdown
[PE1-GigabitEthernet1/0/3] quit
# 在PE 1,PE 2和PE 3之间建立IBGP连接,并配置通过BGP EVPN发布路由信息。
[PE1] bgp 100
[PE1-bgp-default] router-id 1.1.1.1
[PE1-bgp-default] peer 2::2 as-number 100
[PE1-bgp-default] peer 2::2 connect-interface loopback 0
[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 2::2 enable
[PE1-bgp-default-evpn] peer 3::3 enable
[PE1-bgp-default-evpn] peer 2::2 advertise encap-type srv6
[PE1-bgp-default-evpn] peer 3::3 advertise encap-type srv6
[PE1-bgp-default-evpn] quit
[PE1-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用SRv6封装,配置EVPN实例的RD与RT,配置根据路由携带的SID属性进行迭代,并指定EVPN实例引用的Locator段。
[PE1] vsi vpna
[PE1-vsi-vpna] evpn encapsulation srv6
[PE1-vsi-vpna-evpn-srv6] route-distinguisher 1:1
[PE1-vsi-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE1-vsi-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE1-vsi-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE1-vsi-vpna-evpn-srv6] segment-routing ipv6 locator aaa
[PE1-vsi-vpna-evpn-srv6] quit
# 在接入站点的接口Route-Aggregation1下配置ESI值和接口的冗余备份模式,并将其与VSI关联。
[PE1] interface route-aggregation 1
[PE1-Route-Aggregation1] esi 1.1.1.1.1
[PE1-Route-Aggregation1] evpn redundancy-mode all-active
[PE1-Route-Aggregation1] xconnect vsi vpna
[PE1-Route-Aggregation1] quit
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] port link-aggregation group 1
[PE1-GigabitEthernet1/0/1] quit
# 配置Locator段,用于申请End.DT2U SID和End.DT2M SID。
[PE1] segment-routing ipv6
[PE1-segment-routing-ipv6] encapsulation source-address 1::1
[PE1-segment-routing-ipv6] locator aaa ipv6-prefix 111:: 64 static 32
[PE1-segment-routing-ipv6-locator-aaa] quit
[PE1-segment-routing-ipv6] quit
(3) 配置PE 2
# 在PE 2上运行OSPFv3。
<PE2> system-view
[PE2] ospfv3
[PE2-ospfv3-1] router-id 2.2.2.2
[PE2-ospfv3-1] segment-routing ipv6 locator aaa
[PE2-ospfv3-1] area 0.0.0.0
[PE2-ospfv3-1-area-0.0.0.0] quit
[PE2-ospfv3-1] quit
# 配置Loopback0接口。
[PE2] interface loopback 0
[PE2-LoopBack0] ipv6 address 2::2 128
[PE2-LoopBack0] ospfv3 1 area 0
[PE2-LoopBack0] quit
# 开启L2VPN功能。
[PE2] l2vpn enable
# 配置连接PE 1的接口GigabitEthernet1/0/3。
[PE2] interface gigabitethernet 1/0/3
[PE2-GigabitEthernet1/0/3] ipv6 address 20::2 64
[PE2-GigabitEthernet1/0/3] ospfv3 1 area 0
[PE2-GigabitEthernet1/0/3] undo shutdown
[PE2-GigabitEthernet1/0/3] quit
# 配置连接PE 3的接口GigabitEthernet1/0/2。
[PE2] interface gigabitethernet 1/0/2
[PE2-GigabitEthernet1/0/2] ipv6 address 30::2 64
[PE2-GigabitEthernet1/0/2] ospfv3 1 area 0
[PE2-GigabitEthernet1/0/2] undo shutdown
[PE2-GigabitEthernet1/0/2] quit
# 在PE 1,PE 2和PE 3之间建立IBGP连接,并配置通过BGP EVPN发布路由信息。
[PE2] bgp 100
[PE2-bgp-default] router-id 2.2.2.2
[PE2-bgp-default] peer 1::1 as-number 100
[PE2-bgp-default] peer 1::1 connect-interface loopback 0
[PE2-bgp-default] peer 3::3 as-number 100
[PE2-bgp-default] peer 3::3 connect-interface loopback 0
[PE2-bgp-default] address-family l2vpn evpn
[PE2-bgp-default-evpn] peer 1::1 enable
[PE2-bgp-default-evpn] peer 3::3 enable
[PE2-bgp-default-evpn] peer 1::1 advertise encap-type srv6
[PE2-bgp-default-evpn] peer 3::3 advertise encap-type srv6
[PE2-bgp-default-evpn] quit
[PE2-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用SRV6封装,配置EVPN实例的RD与RT,配置根据路由携带的SID属性进行迭代,并指定EVPN实例引用的Locator段。
[PE2] vsi vpna
[PE2-vsi-vpna] evpn encapsulation srv6
[PE2-vsi-vpna-evpn-srv6] route-distinguisher 1:1
[PE2-vsi-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE2-vsi-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE2-vsi-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE2-vsi-vpna-evpn-srv6] segment-routing ipv6 locator aaa
[PE2-vsi-vpna-evpn-srv6] quit
# 在接入站点的接口Route-Aggregation1下配置ESI值和接口的冗余备份模式,并将其与VSI关联。
[PE2] interface route-aggregation 1
[PE2-Route-Aggregation1] esi 1.1.1.1.1
[PE2-Route-Aggregation1] evpn redundancy-mode all-active
[PE2-Route-Aggregation1] xconnect vsi vpna
[PE2-Route-Aggregation1] quit
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] port link-aggregation group 1
[PE2-GigabitEthernet1/0/1] quit
# 配置Locator段,用于申请End.DT2U SID和End.DT2M SID。
[PE2] segment-routing ipv6
[PE2-segment-routing-ipv6] encapsulation source-address 2::2
[PE2-segment-routing-ipv6] locator aaa ipv6-prefix 222:: 64 static 32
[PE2-segment-routing-ipv6-locator-aaa] quit
[PE2-segment-routing-ipv6] quit
(4) 配置PE 3
# 在PE 3上运行OSPFv3。
<PE3> system-view
[PE3] ospfv3
[PE3-ospfv3-1] router-id 3.3.3.3
[PE3-ospfv3-1] segment-routing ipv6 locator aaa
[PE3-ospfv3-1] area 0
[PE3-ospfv3-1-area-0.0.0.0] quit
[PE3-ospfv3-1] quit
# 配置LoopBack0接口。
[PE3] interface loopback 0
[PE3-LoopBack0] ipv6 address 3::3 128
[PE3-LoopBack0] ospfv3 1 area 0
[PE3-LoopBack0] quit
# 开启L2VPN功能。
[PE3] l2vpn enable
# 配置连接PE 1的接口GigabitEthernet1/0/2。
[PE3] interface gigabitethernet 1/0/2
[PE3-GigabitEthernet1/0/2] ipv6 address 10::3 64
[PE3-GigabitEthernet1/0/2] ospfv3 1 area 0
[PE3-GigabitEthernet1/0/2] undo shutdown
[PE3-GigabitEthernet1/0/2] quit
# 配置连接PE 2的接口GigabitEthernet1/0/3。
[PE3] interface gigabitethernet 1/0/3
[PE3-GigabitEthernet1/0/3] ipv6 address 30::3 64
[PE3-GigabitEthernet1/0/3] ospfv3 1 area 0
[PE3-GigabitEthernet1/0/3] undo shutdown
[PE3-GigabitEthernet1/0/3] quit
# 在PE 1,PE 2和PE 3之间建立IBGP连接,并配置通过BGP EVPN发布路由信息。
[PE3] bgp 100
[PE3-bgp-default] router-id 3.3.3.3
[PE3-bgp-default] peer 1::1 as-number 100
[PE3-bgp-default] peer 1::1 connect-interface loopback 0
[PE3-bgp-default] peer 2::2 as-number 100
[PE3-bgp-default] peer 2::2 connect-interface loopback 0
[PE3-bgp-default] address-family l2vpn evpn
[PE3-bgp-default-evpn] peer 1::1 enable
[PE3-bgp-default-evpn] peer 2::2 enable
[PE3-bgp-default-evpn] peer 1::1 advertise encap-type srv6
[PE3-bgp-default-evpn] peer 2::2 advertise encap-type srv6
[PE3-bgp-default-evpn] quit
[PE3-bgp-default] quit
# 创建VSI和EVPN实例,并指定EVPN采用SRv6封装,配置EVPN实例的RD与RT,配置根据路由携带的SID属性进行迭代,并指定EVPN实例引用的Locator段。
[PE3] vsi vpna
[PE3-vsi-vpna] evpn encapsulation srv6
[PE3-vsi-vpna-evpn-srv6] route-distinguisher 1:1
[PE3-vsi-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE3-vsi-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE3-vsi-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE3-vsi-vpna-evpn-srv6] segment-routing ipv6 locator aaa
[PE3-vsi-vpna-evpn-srv6] quit
# 将接口GigabitEthernet1/0/1与VSI关联。
[PE3] interface gigabitethernet 1/0/1
[PE3-GigabitEthernet1/0/1] xconnect vsi vpna
[PE3-GigabitEthernet1/0/1] quit
# 配置Locator段,用于申请End.DT2U SID和End.DT2M SID。
[PE3] segment-routing ipv6
[PE3-segment-routing-ipv6] encapsulation source-address 3::3
[PE3-segment-routing-ipv6] locator aaa ipv6-prefix 333:: 64 static 32
[PE3-segment-routing-ipv6-locator-aaa] quit
[PE3-segment-routing-ipv6] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface gigabitethernet 1/0/1
[CE2-GigabitEthernet1/0/1] ipv6 address 100::2 64
[CE2-GigabitEthernet1/0/1] quit
# 在PE 3上查看L2VPN的SRv6相关信息,可以看到PE 3分别与PE 1、PE 2建立了SRv6隧道,这两条隧道为等价隧道,流量在二者之间进行负载分担。
[PE3] display l2vpn peer srv6
Total number of SRv6 Tunnels: 2
2 up, 0 blocked, 0 down
VSI Name: vpna
Peer : 1::1
Flag : Main
State : Up
Peer : 2::2
Flag : Main
State : Up
# 在PE 3上查看SRv6转发信息。
[PE3] display l2vpn forwarding srv6
Total number of VSIs: 1
Total number of SRv6 tunnels: 2, 2 up, 0 blocked, 0 down
VSI Name : vpna
Link ID : 0x9000000 Type: BE State: Up
In SID : 333::1:0:4
Out SID : 111::1:0:4
Link ID : 0x9000001 Type: BE State: Up
In SID : 333::1:0:4
Out SID : 222::1:0:3
# CE 1与CE 2之间能够ping通。当CE 1和PE 1或CE 1和PE 2之间的链路出现故障时,CE 1与CE 2之间仍然能够ping通。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!