02-EVPN VPWS over SRv6配置
本章节下载: 02-EVPN VPWS over SRv6配置 (318.67 KB)
目 录
1.2 EVPN VPWS over SRv6与硬件适配关系
1.11 配置EVPN VPWS over SRv6封装的IPv6报文头的源地址
1.12.2 显示EVPN VPWS over SRv6的运行状态
1.12.3 显示EVPN VPWS over SRv6的转发信息
1.12.4 清除EVPN VPWS over SRv6的统计信息
1.13 EVPN VPWS over SRv6典型配置举例
1.13.1 EVPN VPWS over SRv6单归属配置举例
EVPN VPWS over SRv6是指通过SRv6隧道承载EVPN VPWS业务,通过IPv6网络透明传输用户二层数据,实现用户网络穿越IPv6网络建立点到点连接。EVPN VPWS的详细介绍,请参见“EVPN配置指导”中的“EVPN VPWS”。
如图1-1所示,PE之间通过EVPN路由发布End.DX2 SID,建立SRv6隧道。该SRv6隧道作为PW,封装并转发站点网络之间的二层数据报文。在骨干网上,根据IGP计算的最优路径转发SRv6隧道封装后的报文,从而实现通过IPv6骨干网透明传输用户二层数据。
PE间通过BGP EVPN路由建立PW的过程为:
(1) 本端PE向远端PE发布EVPN的以太网自动发现路由时,在该路由中携带本端的Service ID、本端为交叉连接分配的End.DX2 SID。
(2) 远端PE接收到EVPN路由后,如果路由中携带的Service ID与本地配置的远端Service ID相同,则建立本端PE到远端PE的单跳SRv6隧道,该隧道的SID标识为路由中的End.DX2 SID。
(3) 两端PE均发布End.DX2 SID,并在两个方向上均建立单跳SRv6隧道后,两条SRv6隧道组成一条PW,用来承载用户二层数据。该PW称为SRv6 PW。
EVPN VPWS over SRv6支持SRv6 BE路由迭代方式。
又称为基于SID的转发方式。该方式根据封装的End.DX2 SID查找IPv6路由表进行转发。二层报文从CE 1到CE 2的转发过程为:
(1) CE 1发送二层报文给PE 1。
(2) PE 1从连接CE 1的AC上接收到二层报文后,查找与该AC关联的SRv6 PW(即SRv6隧道),找到对应的End.DX2 SID,即PE 2为PE 1分配的End.DX2 SID。
(3) PE 1为报文封装外层IPv6报文头,目的IPv6地址为End.DX2 SID,源IPv6地址为配置的EVPN VPWS over SRv6封装IPv6报文头的源地址。
(4) PE 1根据End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给P。
(5) P根据End.DX2 SID查找IPv6路由表,通过最优IGP路由将报文转发给PE 2。
(6) PE 2根据End.DX2 SID查找Local SID表,执行End.DX2 SID对应的转发动作,即解封装报文去掉外层IPv6报文头,并根据End.DX2 SID匹配与其关联的AC,并通过该AC将报文转发给CE 2。
仅S5580X-HI系列交换机支持本功能。
EVPN VPWS over SRv6配置任务如下:
(1) 开启L2VPN功能
(2) 配置交叉连接
(3) 配置SRv6 SID
(4) 配置交叉连接引用Locator段
(5) 配置报文转发方式
¡ 配置路由迭代方式
(6) 配置AC与交叉连接相关联
(8) 配置EVPN VPWS over SRv6封装的IPv6报文头的源地址
(1) 进入系统视图。
system-view
(2) 开启L2VPN功能。
l2vpn enable
缺省情况下,L2VPN功能处于关闭状态。
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
(1) 进入系统视图。
system-view
(2) 创建一个交叉连接组,并进入交叉连接组视图。
xconnect-group group-name
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
(3) (可选)配置交叉连接组的描述信息。
description text
缺省情况下,未配置交叉连接组的描述信息。
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
(4) (可选)开启交叉连接组。
undo shutdown
缺省情况下,交叉连接组处于开启状态。
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
(5) 创建交叉连接组EVPN实例,并进入交叉连接组EVPN实例视图。
evpn encapsulation srv6
(6) 配置交叉连接组EVPN实例的RD。
route-distinguisher route-distinguisher
缺省情况下,未指定EVPN实例的RD。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(7) 配置交叉连接组EVPN实例的Route Target属性。
vpn-target { vpn-target&<1-8> } [ both | export-extcommunity | import-extcommunity ]
缺省情况下,未指定交叉连接组EVPN实例的Route Target属性。
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
参数 |
使用说明 |
export-extcommunity |
不能为不同交叉连接组EVPN实例配置相同的Export target;交叉连接组EVPN实例和VSI视图下EVPN实例的Export target也不能相同 |
import-extcommunity |
建议为交叉连接组EVPN实例配置的Import target不要与VPN实例视图、VPN实例EVPN视图、公网实例视图、公网实例EVPN视图和VSI视图下EVPN实例的Export target匹配,反之亦然 |
(8) 退回交叉连接组视图。
quit
(9) 创建交叉连接,并进入交叉连接视图。
connection connection-name
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
本配置中各命令的详细介绍,请参见“Segment Routing命令参考”中的“SRv6”。
配置SRv6 SID时,指定的Locator段的IPv6地址必须是接口的主IPv6地址。
(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 ] * ]
配置交叉连接引用Locator段后,该交叉连接将从引用的Locator段中申请End.DX2类型SRv6 SID。
(1) 进入系统视图。
system-view
(2) 进入交叉连接组视图。
xconnect-group group-name
(3) 进入交叉连接视图。
connection connection-name
(4) 配置交叉连接引用的Locator段。
segment-routing ipv6 locator locator-name [ auto-sid-disable ]
缺省情况下,未指定交叉连接引用的Locator段。
(5) 创建SRv6 PW,并进入SRv6 PW视图。
evpn local-service-id local-service-id remote-service-id remote-service-id [ tunnel-policy tunnel-policy-name ]
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
EVPN VPWS over SRv6网络中,PE为用户侧流量封装End.DX2 SID后,可以根据如下路由迭代方式为封装后的报文查找转发路径:
· SRv6 BE方式:又称为基于SID的转发方式。该方式根据封装的End.DX2 SID查找IPv6路由表进行转发。
(1) 进入系统视图。
system-view
(2) 进入交叉连接组视图。
xconnect-group group-name
(3) 进入交叉连接组EVPN实例视图。
evpn encapsulation srv6
(4) 配置路由迭代方式。
segment-routing ipv6 best-effort
缺省情况下,根据EVPN路由的下一跳地址查找IPv6路由表进行转发。
(1) 进入系统视图。
system-view
(2) 进入交叉连接组视图。
xconnect-group group-name
(3) 进入交叉连接视图。
connection connection-name
(4) 将以太网服务实例与交叉连接关联。
ac interface interface-type interface-number service-instance instance-id [ access-mode vlan ]
缺省情况下,以太网服务实例未与交叉连接关联。
本命令的详细介绍,请参见“MPLS命令参考”中的“MPLS L2VPN”。
(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
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(4) 指定与IPv6对等体/对等体组创建BGP会话时建立TCP连接使用的源接口。
peer { group-name | ipv6-address [ prefix-length ] } connect-interface interface-type interface-number
缺省情况下,BGP使用到达BGP对等体的最佳路由的出接口作为与对等体/对等体组创建BGP会话时建立TCP连接的源接口。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(5) 创建BGP EVPN地址族,并进入BGP EVPN地址族视图。
address-family l2vpn evpn
本命令的详细介绍,请参见“EVPN命令参考”中的“EVPN”。
(6) 使能本地路由器与指定IPv6对等体交换EVPN路由信息的能力。
peer { group-name | ipv6-address [ prefix-length ] } enable
缺省情况下,本地路由器不能与对等体交换EVPN路由信息。
本命令的详细介绍,请参见“三层技术-IP路由命令参考”中的“BGP”。
(7) 配置向对等体/对等体组发布SRv6封装的EVPN路由。
peer { group-name | ipv6-address [ prefix-length ] } advertise encap-type srv6
缺省情况下,向对等体/对等体组发布VXLAN封装的EVPN路由。
在EVPN VPWS over SRv6组网环境中,必须指定封装的IPv6报文头的源地址。否则,无法通过EVPN VPWS over SRv6转发数据流量。
配置源地址时,不能为环回地址、链路本地地址、组播地址和未指定地址。指定的源地址必须为本机地址,且已经由路由协议发布,建议指定本设备的Loopback接口地址。
(1) 进入系统视图。
system-view
(2) 进入SRv6视图。
segment-routing ipv6
(3) 配置EVPN VPWS over SRv6封装的IPv6报文头的源地址。
encapsulation source-address ipv6-address [ ip-ttl ttl-value ]
缺省情况下,未指定EVPN VPWS over SRv6封装的IPv6报文头的源地址。
可在任意视图下执行以下命令:
· 显示BGP EVPN对等体组的信息。
display bgp [ instance instance-name ] group l2vpn evpn [ group-name group-name ]
本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP基础命令”。
· 显示BGP EVPN对等体或对等体组的状态和统计信息。
display bgp [ instance instance-name ] peer l2vpn evpn [ ipv4-address mask-length | { ipv4-address | group-name group-name } log-info | [ ipv4-address ] verbose ]
本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP基础命令”。
· 显示BGP EVPN地址族的打包组相关信息。
display bgp [ instance instance-name ] update-group l2vpn evpn [ ipv4-address ]
本命令的详细介绍请参见“三层技术-IP路由命令参考”中的“BGP基础命令”。
· 显示BGP EVPN路由信息。
display bgp [ instance instance-name ] l2vpn evpn [ peer { ipv4-address | ipv6-address } { advertised-routes | received-routes } [ statistics ] | [ route-distinguisher route-distinguisher | route-type { es | imet } ] * [ { evpn-route route-length | evpn-prefix } [ advertise-info ] | ipv4-address | ipv6-address | mac-address ] | statistics ]
本命令的详细介绍请参见“EVPN命令参考”中的“EVPN”。
· 显示EVPN通过BGP自动发现的邻居信息。
display evpn auto-discovery { mac-ip [ srv6 ] [ peer ip-address] [ vsi vsi-name ] | macip-prefix [ nexthop next-hop ] [ count ] }
本命令的详细介绍请参见“EVPN命令参考”中的“EVPN”。
· 显示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命令参考”中的“EVPN”。
· 显示交叉连接的EVPN相关信息。
display evpn route xconnect-group [ name group-name [ connection connection-name ] ] [ count ]
本命令的详细介绍请参见“EVPN命令参考”中的“EVPN”。
· 显示交叉连接组的信息。
¡ display l2vpn xconnect-group [ evpn-srv6 | name group-name ] [ count | verbose ]
¡ display l2vpn xconnect-group name group-name connection connection-name [ verbose ]
· 显示L2VPN的SRv6相关信息。
display l2vpn peer srv6 [ xconnect-group group-name ] [ state-machine | verbose ]
可在任意视图下执行以下命令,显示SRv6的转发信息。
display l2vpn forwarding srv6 [ xconnect-group group-name ] [ slot slot-number ] [ verbose ]
请在用户视图下执行以下命令,清除SRv6 PW的报文统计信息。
reset l2vpn statistics srv6-pw [ vsi vsi-name [ peer ipv6-address ] ]
用户网络有两个站点,分别为CE 1和CE 2。CE 1的VLAN 10和CE 2的VLAN10希望通过骨干网建立的SRv6隧道实现互通。
图1-2 EVPN VPWS over SRv6单归属配置组网图
设备 |
接口 |
IP地址 |
设备 |
接口 |
IP地址 |
CE 1 |
Vlan10 |
10::1/64 |
P |
Loop0 |
3::3/128 |
PE 1 |
Loop0 |
1::1/128 |
|
Vlan20 |
20::3/64 |
|
GE1/0/1 |
- |
|
Vlan30 |
30::3/64 |
|
Vlan20 |
20::1/64 |
PE 2 |
Loop0 |
2::2/128 |
CE 2 |
Vlan10 |
10::2/64 |
|
GE1/0/1 |
- |
|
|
|
|
Vlan30 |
30::2/64 |
请先在各台设备上创建VLAN,并将相应端口加入VLAN。
(1) 配置CE 1
<CE1> system-view
[CE1] interface vlan-interface 10
[CE1-Vlan-interface10] ipv6 address 100::1 64
[CE1-Vlan-interface10] 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的接口Vlan-interface20。
[PE1] interface vlan-interface 20
[PE1-Vlan-interface20] ipv6 address 20::1 64
[PE1-Vlan-interface20] ospfv3 1 area 0
[PE1-Vlan-interface20] undo shutdown
[PE1-Vlan-interface20] 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
# 在接入CE 1的接口GigabitEthernet1/0/1上创建以太网服务实例。
[PE1] interface gigabitethernet 1/0/1
[PE1-GigabitEthernet1/0/1] service-instance 1000
[PE1-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 10
[PE1-GigabitEthernet1/0/1-srv1000] quit
[PE1-GigabitEthernet1/0/1] quit
# 创建交叉连接组vpna和交叉连接组EVPN实例,指定EVPN采用SRv6封装,配置交叉连接组EVPN实例的RD与RT,并配置根据路由携带的SID属性进行迭代。
[PE1] xconnect-group vpna
[PE1-xcg-vpna] evpn encapsulation srv6
[PE1-xcg-vpna-evpn-srv6] route-distinguisher 1:1
[PE1-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE1-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE1-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE1-xcg-vpna-evpn-srv6] quit
# 创建交叉连接pw1,将接口GigabitEthernet1/0/1的以太网服务实例1000与此交叉连接关联,并在交叉连接内创建SRv6隧道,以实现AC和SRv6隧道关联。
[PE1-xcg-vpna] connection pw1
[PE1-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1 service-instance 1000
[PE1-xcg-vpna-pw1-GigabitEthernet1/0/1-srv1000] quit
[PE1-xcg-vpna-pw1] evpn local-service-id 1 remote-service-id 2
[PE1-xcg-vpna-pw1-1-2] quit
[PE1-xcg-vpna-pw1] segment-routing ipv6 locator aaa
[PE1-xcg-vpna-pw1] quit
[PE1-xcg-vpna] quit
# 配置Locator段,用于申请End.DX2 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
# 配置Loopback。
[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的接口Vlan-interface30。
[PE2] interface vlan-interface 30
[PE2-Vlan-interface30] ipv6 address 30::2 64
[PE2-Vlan-interface30] ospfv3 1 area 0.0.0.0
[PE2-Vlan-interface30] undo shutdown
[PE2-Vlan-interface30] 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
# 在接入CE 2的接口GigabitEthernet1/0/1上创建以太网服务实例。
[PE2] interface gigabitethernet 1/0/1
[PE2-GigabitEthernet1/0/1] service-instance 1000
[PE2-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 10
[PE2-GigabitEthernet1/0/1-srv1000] quit
[PE2-GigabitEthernet1/0/1] quit
# 创建交叉连接组vpna和交叉连接组EVPN实例,指定EVPN采用SRv6封装,配置交叉连接组EVPN实例的RD与RT,并配置根据路由携带的SID属性进行迭代。
[PE2] xconnect-group vpna
[PE2-xcg-vpna] evpn encapsulation srv6
[PE2-xcg-vpna-evpn-srv6] route-distinguisher 1:1
[PE2-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity
[PE2-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity
[PE2-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort
[PE2-xcg-vpna-evpn-srv6] quit
# 创建交叉连接pw1,将接口GigabitEthernet1/0/1的以太网服务实例1000与此交叉连接关联,并在交叉连接内创建SRv6隧道,以实现AC和SRv6隧道关联。
[PE2-xcg-vpna] connection pw1
[PE2-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1 service-instance 1000
[PE2-xcg-vpna-pw1-GigabitEthernet1/0/1-srv1000] quit
[PE2-xcg-vpna-pw1] evpn local-service-id 2 remote-service-id 1
[PE2-xcg-vpna-pw1-2-1] quit
[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa
[PE2-xcg-vpna-pw1] quit
[PE2-xcg-vpna] quit
# 配置Locator段,用于申请End.DX2 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 vlan-interface 20
[P-Vlan-interface20] ipv6 address 20::3 64
[P-Vlan-interface20] ospfv3 1 area 0
[P-Vlan-interface20] quit
[P] interface vlan-interface 30
[P-Vlan-interface30] ipv6 address 30::3 64
[P-Vlan-interface30] ospfv3 1 area 0
[P-Vlan-interface30] quit
(5) 配置CE 2
<CE2> system-view
[CE2] interface vlan-interface 10
[CE2-Vlan-interface10] ipv6 address 100::2 64
[CE2-Vlan-interface10] 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
Xconnect-group Name: vpna
Peer : 2::2
Flag : Main
State : Up
Remote SrvID : 2
# 在PE 1上查看SRv6转发信息,可以看到SRv6隧道的入SID和出SID等信息。
[PE1] display l2vpn forwarding srv6
Total number of cross-connections: 1
Total number of SRv6 tunnels: 1, 1 up, 0 blocked, 0 down
Xconnect-group Name : vpna
Connection Name : pw1
Link ID : 0x8000000 Type: BE State: Up
In SID : 100::1:0:2
Out SID : 200::1:0:2
# CE 1与CE 2之间能够ping通。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!