23-Segment Routing Configuration Guide

HomeSupportConfigure & DeployConfiguration GuidesH3C MSR610[810][830][1000S][2600][3600] Routers Configuration Guides(V7)-R6749-6W10023-Segment Routing Configuration Guide
08-EVPN VPWS over SRv6 configuration
Title Size Download
08-EVPN VPWS over SRv6 configuration 625.74 KB

Contents

Configuring EVPN VPWS over SRv6· 1

About EVPN VPWS over SRv6· 1

Basic principle· 1

BGP EVPN route advertisement 1

Traffic forwarding· 1

EVPN VPWS over SRv6 multihoming· 3

EVPN VPWS over SRv6 FRR· 3

LDP or static PW ACs for SRv6 PWs· 5

EVPN VPWS over SRv6 tasks at a glance· 5

Enabling L2VPN· 6

Configuring a cross-connect group and its EVPN instance· 6

Configuring SRv6 SIDs· 7

Applying a locator to a cross-connect 8

Configuring the route recursion mode· 8

Configuring SRv6 TE policy traffic steering· 9

Restrictions and guidelines for SRv6 TE policy traffic steering· 9

Configuring color-based traffic steering· 9

Configuring tunnel policy-based traffic steering· 11

Mapping an AC to a cross-connect 11

Mapping a Layer 3 interface to a cross-connect 11

Mapping an Ethernet service instance to a cross-connect 12

Configuring PEs to exchange BGP EVPN routes· 12

Specifying a source address for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets· 13

Configuring the Next Header field value in the SRH of SRv6 packets· 14

Configuring EVPN VPWS over SRv6 multihoming· 14

Restrictions and guidelines for EVPN VPWS over SRv6 multihoming· 14

Assigning an ESI to an interface· 14

Setting the redundancy mode on an interface· 15

Configuring FRR for EVPN VPWS over SRv6· 16

Configuring local FRR· 16

Configuring remote FRR· 16

Configuring LDP or static PWs as ACs for SRv6 PWs· 17

About LDP or static PW AC configuration for SRv6 PWs· 17

Restrictions and guidelines for LDP or static PW AC configuration for SRv6 PWs· 17

Prerequisites for LDP or static PW AC configuration for SRv6 PWs· 17

Configuring LDP PWs as ACs for SRv6 PWs· 17

Configuring static PWs as ACs for SRv6 PWs· 18

Configuring SRv6 PW packet statistics· 20

Test the connectivity of an SRv6 PW·· 20

Using ping to test the connectivity of an SRv6 PW·· 20

Using tracert to test the connectivity of an SRv6 PW·· 21

Display and maintenance commands for EVPN VPWS over SRv6· 21

EVPN VPWS over SRv6 configuration examples (on routers) 23

Example: Setting up an SRv6 tunnel between single-homed EVPN VPWS sites· 23

Example: Configuring EVPN VPWS over SRv6 multihoming (static link aggregation dual-homed) 27

Example: Configuring EVPN VPWS over SRv6 multihoming (S-Trunk dual-homed) 34

Example: Configuring LDP PWs as ACs for SRv6 PWs· 41

EVPN VPWS over SRv6 configuration examples (on switches) 50

Example: Setting up an SRv6 tunnel between single-homed EVPN VPWS sites· 50

Example: Configuring EVPN VPWS over SRv6 multihoming· 55

Example: Configuring LDP PWs as ACs for SRv6 PWs· 62

 


Configuring EVPN VPWS over SRv6

About EVPN VPWS over SRv6

EVPN VPWS over SRv6 uses SRv6 tunnels to carry EVPN VPWS services. This technology establishes point-to-point connections between customer sites over the IPv6 backbone network and transparently forwards Layer 2 customer traffic over the IPv6 backbone network. For more information about EVPN VPWS configuration, see EVPN Configuration Guide.

Basic principle

As shown in Figure 1, PEs set up an SRv6 tunnel by advertising End.DX2 SIDs to each other through BGP EVPN routes. On a PE, this SRv6 tunnel is used as a PW to encapsulate and forward Layer 2 data packets received from the local site and destined for a remote site. The devices on the IPv6 backbone transport network forward the SRv6-encapsulated packets according to the optimal routes calculated by an IGP. As a result, Layer 2 data packets of one customer site can be transparently forwarded to another site over the IPv6 backbone transport network.

Figure 1 EVPN VPWS over SRv6 network diagram

 

BGP EVPN route advertisement

A pair of PEs use BGP EVPN routes to establish PWs as follows:

1.     A PE adds the local service ID and End.DX2 SID of a local cross-connect to Ethernet auto-discovery routes and advertises the routes to the remote PE.

2.     After receiving the routes, the remote PE checks the service ID carried in the routes. If the service ID is the same as the remote service ID configured locally for a cross-connect, the PE establishes an SRv6 tunnel to the other PE. The SID flag of the SRv6 tunnel is the End.DX2 SID in the routes.

The two PEs both advertise End.DX2 SIDs to each other and establish two SRv6 tunnels at two directions. The two SRv6 tunnels form a PW to carry Layer 2 customer traffic. The PW is called an SRv6 PW.

Traffic forwarding

EVPN VPWS over SRv6 supports the following route recursion modes:

·     SRv6-BE mode.

·     SRv6-TE mode.

·     SRv6-TE and SRv6-BE hybrid mode.

The packet forwarding process differs by the route recursion mode in use.

SRv6-BE mode

This mode is also called SID-based forwarding mode. In this mode, a PE forwards an SRv6 packet by searching the IPv6 routing table based on the End.DX2 SID encapsulated in the packet. A layer 2 packet is forwarded from CE 1 to CE 2 as follows:

1.     CE 1 sends the Layer 2 packet to PE 1.

2.     After PE 1 receives the packet on the AC connected to CE 1, it searches for the SRv6 PW (SRv6 tunnel) associated with the AC and finds the End.DX2 SID to reach PE 2.

3.     PE 1 encapsulates the outer IPv6 header and SRH header for the packet. The End.DX2 SID is encapsulated in the outer IPv6 header as the destination IPv6 address. The source IPv6 address is the source address specified for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets.

4.     PE 1 searches the IPv6 routing table based on the End.DX2 SID for the optimal IGP route and forwards the packet to P through the optimal IGP route.

5.     P searches the IPv6 routing table based on the End.DX2 SID for the optimal IGP route and forwards the packet to PE 2 through the optimal IGP route.

6.     PE 2 searches the local SID forwarding table for the End.DX2 SID and performs the following operations:

a.     Removes the outer IPv6 header.

b.     Matches the packet to an AC based on the End.DX2 SID.

c.     Forwards the packet to CE 2 through the AC.

SRv6-TE mode

This mode is also called SRv6 TE policy-based forwarding mode. In this mode, when a PE forwards a customer packet, it first searches for a matching SRv6 TE policy based on the packet attributes. Then, the PE adds an SRH to the packet. The SRH includes the destination End.DX2 SID and the SID list of the SRv6 TE policy. Finally, the PE forwards the encapsulated packet based on the SRv6 TE policy.

The following modes are available to steer traffic to an SRv6 TE policy:

·     Color—The device searches for an SRv6 TE policy that has the same color and endpoint address as the color and nexthop address of a BGP EVPN route. If a matching SRv6 TE policy exists, the device recurses the BGP EVPN route to that SRv6 TE policy. When the device receives packets that match the BGP EVPN route, it forwards the packets through the SRv6 TE policy.

·     Tunnel policy—The device searches the tunnel policies for a matching SRv6 TE policy based on the next hop of a matching route. Configure a preferred tunnel or load sharing tunnel policy that uses the SRv6 TE policy. In this way, the SRv6 TE policy will be used as the public tunnel to carry the SRv6 PW that forwards the packets of private network packets.

For more information about tunnel policies, see MPLS Configuration Guide. For more information about SRv6 TE policies, see "Configuring SRv6 TE policies."

SRv6-TE and SRv6-BE hybrid mode

In this mode, the PE preferentially uses the SRv6-TE mode to forward a packet. If no SRv6 TE policy is available for the packet, the PE forwards the packet in SRv6-BE mode.

EVPN VPWS over SRv6 multihoming

About EVPN VPWS over SRv6 multihoming

As shown in Figure 2, EVPN VPWS over SRv6 supports deploying multiple PEs at a site for redundancy and high availability. On the redundant PEs, Ethernet links connected to the site form an Ethernet segment (ES) that is uniquely identified by an ES identifier (ESI). EVPN VPWS over SRv6 supports only dualhoming.

Figure 2 EVPN VPWS over SRv6 multihoming

 

Redundancy mode

The device supports single-active redundancy mode and all-active redundancy mode of EVPN VPWS over SRv6 multihoming.

·     All-active mode—This mode allows all redundant PWs to a multihomed site to load share traffic.

·     Single-active mode—This mode allows one of the redundant PWs to forward traffic. When the main PW becomes unavailable because of device failure or link failure, traffic is switched to the secondary PW for forwarding. A designated forwarder (DF) is elected from the redundant PEs to determine the main PW. For more information about DF election, see EVPN VPWS configuration in EVPN Configuration Guide.

Route advertisement

The redundant PEs at a multihomed site both advertise End.DX2 SIDs to remote PEs. In addition, they advertise the redundancy mode of the multihomed site and their roles (primary or secondary) to remote PEs. A remote PE handles BGP EVPN routes advertised by the redundant PEs based on the redundancy mode.

·     In all-active mode, the remote PE treats the routes advertised by the redundant PEs as ECMP routes that can load share traffic.

·     In single-active mode, the remote PE treats the routes advertised by the primary PE as the optimal routes and only uses the optimal routes to forward traffic.

EVPN VPWS over SRv6 FRR

About FRR

EVPN VPWS over SRv6 Fast reroute (FRR) helps reduce the traffic loss caused by AC or PW failure on an EVPN VPWS over SRv6 network. FRR includes local FRR and remote FRR.

Local FRR

Local FRR enables two PEs at a multihomed EVPN VPWS over SRv6 network site to set up a bypass SRv6 PW between them.

As shown in Figure 3, CE 2 is dualhomed to PE 2 and PE 3. When the AC on PE 2 fails, PE 2 advertises the local unreachable event to PE 1 and PE 3 for PE 1 to switch traffic to the PW to PE 3. In this situation, PE 3 drops the packets that PE 1 sends before it is notified of the local unreachable event. To resolve this issue, enable local FRR on PE 2 and PE 3. When receiving packets from PE 1 after PE 2's AC fails, PE 2 forwards the packets to PE 3 over the bypass SRv6 PW to prevent traffic loss.

Figure 3 Local FRR

A loop might exist if PE 2 and PE 3 establish a bypass SRv6 PW between them through End.DX2 SIDs. When the AC on PE 2 or PE 3 fails, PE 2 or PE 3 forwards the packets received from its peer back to its peer through the bypass SRv6 PW. To resolve this issue, use End.DX2L SIDs to establish a bypass SRv6 PW between PE 2 and PE 3. The packets from a bypass SRv6 PW carry an End.DX2L SID. A PE does not forward the packets back to the bypass SRv6 PW.

PEs preferentially use End.DX2L SIDs to establish a bypass SRv6 PW. If no End.DX2L SIDs are available, the PEs use End.DX2 SIDs to establish a bypass SRv6 PW.

Remote FRR

Remote FRR enables two PEs on an EVPN VPWS over SRv6 network to set up a primary SRv6 PW and a backup SRv6 PW between them to ensure high availability. This feature is applicable to both multihoming and singlehoming scenarios.

As shown in Figure 4, PE 1 is connected to PE 2 and PE 3. For high availability, you can enable remote FRR on PE 1 for it to set up PWs to both PE 2 and PE 3. PE 1 uses the primary SRv6 PW to forward traffic as long as it is available. When the primary SRv6 PW fails, PE 1 switches traffic destined for CE 2 to the backup SRv6 PW. When PE 3 receives the traffic from the backup SRv6 PW, it forwards the traffic to CE 2. When CE 2 receives the traffic, it updates the MAC address table and switches the traffic destined for CE 1 to the link connected to PE 3. The switchover reduces packet loss.

Figure 4 Remote FRR

 

 

LDP or static PW ACs for SRv6 PWs

This feature ensures that a traditional MPLS L2VPN network (or VPWS network) and an EVPN VPWS over SRv6 network can communicate with each other. The LDP or static PWs in the MPLS L2VPN network are configured as ACs to the SRv6 PWs in the EVPN VPWS over SRv6 network. These ACs are referred to as UPWs in the EVPN VPWS over SRv6 network. Packets can be forwarded between SRv6 PWs and UPWs, so the MPLS L2VPN and EVPN VPWS over SRv6 networks can communicate with each other.

With this feature, an LDP or static PW can be single-homed to an SRv6 PW or two LDP or static PWs can be dual-homed to two SRv6 PWs.

As shown in Figure 5, in the MPLS L2VPN network, PE 1 is connected to PE 2 and PE 3 through LDP or static PWs. One of the PWs is the primary PW and the other PW is the backup PW. The PWs are UPWs. In the EVPN VPWS over SRv6 network, PE 4 is connected to PE 2 and PE 3 through SRv6 PWs. The UPWs in the MPLS L2VPN network act as ACs for the SRv6 network. When PE 2 or PE 3 receives packets from an UPW, it decapsulates MPLS encapsulation from the packets and searches for the SRv6 PW associated with the UPW. Then, the PE adds SRv6 encapsulation to the packets and forwards the packets to PE 4. When PE 2 or PE 3 receives packets from an SRv6 PW, it uses the same procedure to process the packets.

Figure 5 LDP or static PW ACs for SRv6 PWs

 

EVPN VPWS over SRv6 tasks at a glance

To configure EVPN VPWS over SRv6, perform the following tasks:

1.     Enabling L2VPN

2.     Configuring a cross-connect group and its EVPN instance

3.     Configuring SRv6 SIDs

4.     Applying a locator to a cross-connect

5.     Configuring packet forwarding methods

¡     Configuring the route recursion mode

¡     Configuring SRv6 TE policy traffic steering

This task is required if the route recursion mode is SRv6-TE mode or SRv6-TE and SRv6-BE hybrid mode.

6.     Mapping an AC to a cross-connect

7.     Configuring PEs to exchange BGP EVPN routes

8.     Specifying a source address for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets

9.     (Optional.) Configuring EVPN VPWS over SRv6 multihoming

10.     (Optional.) Configuring FRR for EVPN VPWS over SRv6

11.     (Optional.) Configuring LDP or static PWs as ACs for SRv6 PWs

12.     (Optional.) Configuring the Next Header field value in the SRH of SRv6 packets

13.     (Optional.) Maintaining the EVPN VPWS over SRv6 network

¡     Configuring SRv6 PW packet statistics

¡     Test the connectivity of an SRv6 PW

Enabling L2VPN

1.     Enter system view.

system-view

2.     Enable L2VPN.

l2vpn enable

By default, L2VPN is disabled.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

 

Configuring a cross-connect group and its EVPN instance

1.     Enter system view.

system-view

2.     Create a cross-connect group and enter its view.

xconnect-group group-name

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

3.     (Optional.) Configure a description for the cross-connect group.

description text

By default, no description is configured for a cross-connect group.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

4.     (Optional.) Bring p the cross-connect group.

undo shutdown

By default, a cross-connect group is not administratively down.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

5.     Create an EVPN instance for the cross-connect group and enter its view.

evpn encapsulation srv6

6.     Configure an RD for the EVPN instance.

route-distinguisher route-distinguisher

By default, no RD is configured for the EVPN instance of a cross-connect group.

For more information about this command, see EVPN commands in EVPN Command Reference.

7.     Configure route targets for the EVPN instance.

vpn-target { vpn-target&<1-8> } [ both | export-extcommunity | import-extcommunity ]

By default, no route targets are configured for the EVPN instance of a cross-connect group.

For more information about this command, see EVPN commands in EVPN Command Reference.

 

Parameter

Description

export-extcommunity

Do not specify the same export targets for the EVPN instances of different cross-connect groups.

Do not specify the same export targets for the EVPN instances of a cross-connect group and a VSI.

As a best practice, the export targets of the EVPN instance of a cross-connect group do not match the import targets configured in VPN instance view, VPN instance EVPN view, public instance view, public instance EVPN view, or VSI EVPN instance view.

import-extcommunity

As a best practice, the import targets of the EVPN instance of a cross-connect group do not match the export targets configured in VPN instance view, VPN instance EVPN view, public instance view, public instance EVPN view, or VSI EVPN instance view.

 

8.     Return to cross-connect group view.

quit

9.     Create a cross-connect and enter its view.

connection connection-name

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

 

Configuring SRv6 SIDs

Restrictions and guidelines

For more information about the commands in this section, see SRv6 commands in Segment Routing Command Reference.

Procedure

1.     Enter system view.

system-view

2.     Enable SRv6 and enter SRv6 view.

segment-routing ipv6

3.     Configure a locator and enter SRv6 locator view.

locator locator-name [ ipv6-prefix ipv6-address prefix-length [ args args-length | static static-length ] * ]

4.     Configure an opcode for End.DX2 SIDs.

opcode { opcode | hex hex-opcode } end-dx2 xconnect-group group-name connection connection-name

5.     (Optional.) Configure an opcode for End.DX2L SIDs.

opcode { opcode | hex hex-opcode } end-dx2l xconnect-group group-name connection connection-name

Use this command only in the bypass PW network.

 

Applying a locator to a cross-connect

About this task

Perform this task to apply a locator to a cross-connect for the cross-connect to apply for End.DX2 and End.DX2L SIDs from the locator.

Procedure

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect view.

connection connection-name

4.     Apply a locator to the cross-connect.

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

By default, no locator is applied to a cross-connect.

5.     Create an SRv6 PW and enter SRv6 PW view.

evpn local-service-id local-service-id remote-service-id remote-service-id [ tunnel-policy tunnel-policy-name ]

For more information about this command, see EVPN commands in EVPN Command Reference.

 

Configuring the route recursion mode

About this task

After a PE receives a customer packet destined for an End.DX2 or End.DX2L SID, it forwards the packet according to the route recursion mode.

·     SRv6-BE mode—This mode is also called SID-based forwarding mode. In this mode, the PE first encapsulates the End.DX2 or End.DX2L SID into the packet. Then, the PE searches the IPv6 routing table based on the End.DX2 or End.DX2L SID encapsulated in the packet to forward the packet.

·     SRv6-TE mode—This mode is also called SRv6 TE policy-based forwarding mode. In this mode, the PE first searches for a matching SRv6 TE policy based on the packet attributes. Then, the PE adds an SRH to the packet. The SRH includes the End.DX2 or End.DX2L SID and the SID list of the SRv6 TE policy. Finally, the PE forwards the encapsulated packet through the SRv6 TE policy. For more information, see "Configuring SRv6 TE policies."

·     SRv6-TE and SRv6-BE hybrid mode—In this mode, the PE preferentially uses the SRv6-TE mode to forward the packet. If no SRv6 TE policy is available for the packet, the PE forwards the packet in SRv6-BE mode.

Prerequisites

To use the SRv6-TE mode or the SRv6-TE and SRv6-BE hybrid mode, you must configure a tunnel policy and SRv6 TE policy. For more information, see tunnel policy configuration in MPLS Configuration Guide and "Configuring SRv6 TE policies."

Procedure

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect group EVPN instance view.

evpn encapsulation srv6

4.     Configure the route recursion mode.

segment-routing ipv6 { best-effort | traffic-engineer | traffic-engineer best-effort }

By default, a PE searches the IPv6 routing table based on the next hop of a matching EVPN route to forward traffic.

 

Configuring SRv6 TE policy traffic steering

Restrictions and guidelines for SRv6 TE policy traffic steering

This task is required if the route recursion mode is SRv6-TE mode or SRv6-TE and SRv6-BE hybrid mode.

Color-based traffic steering takes precedence over tunnel policy-based traffic steering.

 

Configuring color-based traffic steering

About this task

The device searches for an SRv6 TE policy that has the same color and endpoint address as the color and next hop address of a BGP EVPN route. If a matching SRv6 TE policy exists, the device recurses the route to that SRv6 TE policy. When the device receives packets that match the route, it forwards the packets through the SRv6 TE policy.

Use one of the following methods to configure colors for BGP EVPN routes:

·     Routing policy-based coloring—Configure a routing policy to add the color extended community attribute to BGP EVPN routes or modify the existing color extended community attribute in BGP EVPN routes.

·     Default color—Specify a color as the default color for BGP EVPN routes. A BGP EVPN route uses the default color for color-based traffic steering if the route does not have the color extended community attribute or match a routing policy to obtain a color.

Restrictions and guidelines

Traffic steering is based on the greatest value among the color extended community attributes when the following conditions exist:

·     You specify the additive keyword for the apply extcommunity color clause in a routing policy, and specify the routing policy for the import route-policy command.

·     The received BGP EVPN routes carry the color extended community attribute.

Configuring routing policy-based coloring

1.     Enter system view.

system-view

2.     Enter routing policy node view.

route-policy route-policy-name { deny | permit } node node-number

For more information about this command, see routing policy commands in Layer 3—IP Routing Command Reference.

3.     Set the color extended community attribute for BGP routes.

apply extcommunity color color [ additive ]

By default, no color extended community attribute is set for BGP routes.

For more information about this command, see routing policy commands in Layer 3—IP Routing Command Reference.

4.     Return to system view.

quit

5.     Enter cross-connect group view.

xconnect-group group-name

6.     Enter EVPN instance view of the cross-connect group.

evpn encapsulation srv6

7.     Apply the routing policy as an export policy to the EVPN instance.

export route-policy route-policy

By default, no export routing policy is applied to an EVPN instance. The EVPN instance does not filter advertised routes.

For more information about this command, see EVPN Command Reference.

8.     Apply the routing policy as an import policy to the EVPN instance.

import route-policy route-policy

By default, no import routing policy is applied to an EVPN instance. The EVPN instance does not filter received routes.

For more information about this command, see EVPN Command Reference.

 

Configuring the default color for BGP EVPN routes

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter EVPN instance view of the cross-connect group.

evpn encapsulation srv6

4.     Configure the default color for BGP EVPN routes.

default color color-value

By default, no default color is configured for BGP EVPN routes.

 

Configuring tunnel policy-based traffic steering

About this task

The device searches the tunnel policies for a matching SRv6 TE policy based on the next hop of a matching route. Configure a preferred tunnel or load sharing tunnel policy that uses the SRv6 TE policy. In this way, the SRv6 TE policy will be used as the public tunnel to carry the SRv6 PW that forwards the packets of private network packets. For more information about tunnel policies, see MPLS Configuration Guide.

Configuring a tunnel policy

1.     Enter system view.

system-view

2.     Create a tunnel policy and enter tunnel policy view.

tunnel-policy tunnel-policy-name [ default ]

3.     Configure the tunnel policy. Choose a minimum of one option:

¡     Specify an SRv6 TE policy as a preferred tunnel of the tunnel policy.

preferred-path srv6-policy { name srv6-policy-name | end-point ipv6 ipv6-address color color-value }

By default, no preferred tunnel is specified for a tunnel policy.

¡     Configuring SRv6 TE policy load sharing for the tunnel policy.

select-seq srv6-policy load-balance-number number

By default, no load sharing tunnel policy is configured.

For more information about the tunnel policy commands, see MPLS Command Reference.

 

 

 

Specifying the tunnel policy for a PW

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect view.

connection connection-name

4.     Create an SRv6 PW and specify a tunnel policy for this PW.

evpn local-service-id local-service-id remote-service-id remote-service-id tunnel-policy tunnel-policy-name

 

 

Mapping an AC to a cross-connect

Mapping a Layer 3 interface to a cross-connect

About this task

To interconnect an LDP PW in MPLS L2VPN and a PW in EVPN VPWS over SRv6, perform the following tasks:

1.     Configure a VE-L2VPN interface and its VE-L2VPN subinterface 1 as ACs.

2.     Specify the l2-splicing keyword when mapping the ACs to cross-connects.

3.     Associate the VE-L2VPN interface with the LDP PW in MPLS L2VPN and associate VE-L2VPN subinterface 1 with the PW in EVPN VPWS over SRv6. Or, associate the VE-L2VPN interface with the PW in EVPN VPWS over SRv6 and associate VE-L2VPN subinterface 1 with the LDP PW in MPLS L2VPN.

Procedure

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect view.

connection connection-name

4.     Map a Layer 3 interface to the cross-connect.

ac interface interface-type interface-number [ access-mode { ethernet | vlan } ] [ track track-entry-number&<1-15> ] [ l2-splicing ]

By default, no Layer 3 interface is bound to the cross-connect.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

 

Mapping an Ethernet service instance to a cross-connect

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect view.

connection connection-name

4.     Map an Ethernet service instance to the cross-connect.

ac interface interface-type interface-number service-instance instance-id [ access-mode { ethernet | vlan } ] [ track track-entry-number&<1-3> ]

By default, no Ethernet service instance is mapped to a cross-connect.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

 

Configuring PEs to exchange BGP EVPN routes

1.     Enter system view.

system-view

2.     Enter BGP instance view.

bgp as-number [ instance instance-name ]

3.     Configure an IPv6 peer or peer group.

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

For more information about this command, see BGP commands in Layer 3—IP Routing Command Reference.

4.     Specify the source interface of TCP connections to a peer or peer group.

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

By default, BGP uses the IPv6 address of the output interface in the optimal route to the BGP peer or peer group as the source address of TCP connections to the peer or peer group.

For more information about this command, see BGP commands in Layer 3—IP Routing Command Reference.

5.     Enter BGP EVPN address family view.

address-family l2vpn evpn

For more information about this command, see EVPN Command Reference.

6.     Enable BGP to exchange EVPN routes with an IPv6 peer or peer group.

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

By default, BGP cannot exchange EVPN routes with an IPv6 peer or peer group.

For more information about this command, see BGP commands in Layer 3—IP Routing Command Reference.

7.     Enable BGP to advertise SRv6-encapsulated BGP EVPN routes to a peer or peer group.

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

By default, BGP advertises VXLAN-encapsulated BGP EVPN routes to a peer or peer group.

 

Specifying a source address for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets

Restrictions and guidelines

To ensure correct traffic forwarding in an EVPN VPWS over SRv6 network, you must specify a source address for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets.

You cannot specify a loopback address, link-local address, multicast address, or unspecified address as the source IPv6 address. You must specify an IPv6 address of the local device as the source IPv6 address, and make sure the IPv6 address has been advertised by a routing protocol. As a best practice, specify a loopback interface address of the local device as the source IPv6 address.

Procedure

1.     Enter system view.

system-view

2.     Enter SRv6 view.

segment-routing ipv6

3.     Specify a source address for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets.

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

By default, no source address is specified for the outer IPv6 header of SRv6-encapsulated EVPN VPWS packets.

 

Configuring the Next Header field value in the SRH of SRv6 packets

About this task

In an EVPN VPWS over SRv6 network, the device validates the Next Header field in the SRH of SRv6 packets. If the validation fails, the device processes the SRv6 packets as normal packets, which might result in packet loss. To ensure correct processing of SRv6 packets containing incompatible versions, you can perform this task to edit the Next Header field value in the SRH of the SRv6 packets.

Procedure

1.     Enter system view.

system-view

2.     Enter SRv6 view.

segment-routing ipv6

3.     Configure the Next Header field value in the SRH of SRv6 packets.

evpn next-header-field { 59 | 143 }

By default, the Next Header field value in the SRH is 143.

 

Configuring EVPN VPWS over SRv6 multihoming

Restrictions and guidelines for EVPN VPWS over SRv6 multihoming

You must configure the same local and remote service IDs on the redundant PEs at a multihomed site.

As a best practice, set the same redundancy mode on the interfaces that act as ACs or are configured with ACs on the redundant PEs at a multihomed site.

You can assign an ESI to both a main interface and its subinterfaces:

·     The ESI assigned to a subinterface takes precedence over the ESI assigned to the main interface. If you assign an ESI to a subinterface, the redundancy mode configured on the subinterface applies.

·     If you assign an ESI to only the main interface, both the ESI and redundancy mode settings on the main interface apply to the associated subinterfaces. The redundancy mode configured on the subinterfaces will not take effect.

Assigning an ESI to an interface

About this task

An ESI uniquely identifies an ES. The links on interfaces with the same ESI belong to the same ES. Traffic of the ES can be distributed among the links for load sharing.

Procedure

1.     Enter system view.

system-view

2.     Enter interface view.

¡     Enter Layer 2 Ethernet interface view.

interface interface-type interface-number

¡     Enter Layer 2 aggregate interface view.

interface bridge-aggregation interface-number

¡     Enter Layer 3 Ethernet interface view.

interface interface-type interface-number

¡     Enter Layer 3 aggregate interface view.

interface route-aggregation interface-number

3.     Assign an ESI to the interface.

esi esi-id

By default, no ESI is assigned to an interface.

For more information about this command, see EVPN commands in EVPN Command Reference.

 

Setting the redundancy mode on an interface

About this task

EVPN VPWS over SRv6 multihoming provides the single-active redundancy mode and all-active redundancy mode.

The redundant PEs at a dualhomed site each establish a PW to a remote PE. To use one PW as a backup of the other PW, use the single-active mode. To distribute traffic across the PWs for load sharing, use the all-active mode.

Procedure

1.     Enter system view.

system-view

2.     Enter interface view.

¡     Enter Layer 2 Ethernet interface view.

interface interface-type interface-number

¡     Enter Layer 2 aggregate interface view.

interface bridge-aggregation interface-number

¡     Enter Layer 3 Ethernet interface view.

interface interface-type interface-number

¡     Enter Layer 3 aggregate interface view.

interface route-aggregation interface-number

3.     Set the redundancy mode.

evpn redundancy-mode { all-active | single-active }

By default, the all-active redundancy mode is used.

For more information about this command, see EVPN commands in EVPN Command Reference.

 

Configuring FRR for EVPN VPWS over SRv6

Configuring local FRR

About this task

Local FRR enables two PEs at a multihomed EVPN VPWS over SRv6 network site to set up a bypass SRv6 PW between them. This feature helps reduce the traffic loss caused by AC failure.

Restrictions and guidelines

On an EVPN instance, EVPN instance-specific local FRR configuration takes precedence over global local FRR configuration.

If you have executed the evpn frr local enable command on an EVPN instance, the undo evpn multihoming vpws-frr local command does not delete the bypass SRv6 PW of the EVPN instance.

Perform this task on the redundant PEs at a multihomed site.

Enabling local FRR globally

1.     Enter system view.

system-view

2.     Enable local FRR globally for EVPN VPWS over SRv6.

evpn multihoming vpws-frr local

By default, local FRR is disabled globally for EVPN VPWS over SRv6.

For more information about this command, see EVPN Command Reference.

 

 

Configuring local FRR on an EVPN instance

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter EVPN instance view.

evpn encapsulation srv6

4.     Configure local FRR for EVPN VPWS over SRv6.

evpn frr local { disable | enable }

By default, an EVPN instance uses the global local FRR configuration of EVPN VPWS over SRv6.

For more information about this command, see EVPN Command Reference.

 

 

Configuring remote FRR

About this task

Remote FRR enables two PEs on an EVPN VPWS over SRv6 network to set up a primary PW and a backup PW between them to ensure high availability. The PEs use the primary PW to forward traffic as long as it is available. When the primary PW fails, the PEs switch traffic to the backup PW.

Enabling remote FRR globally

1.     Enter system view.

system-view

2.     Enable remote FRR globally for EVPN VPWS over SRv6.

evpn vpws-frr remote

By default, remote FRR is disabled globally for EVPN VPWS over SRv6.

For more information about this command, see EVPN Command Reference.

 

Configuring LDP or static PWs as ACs for SRv6 PWs

About LDP or static PW AC configuration for SRv6 PWs

Use this feature to ensure that an MPLS L2VPN network and an EVPN VPWS over SRv6 network can communicate with each other.

Restrictions and guidelines for LDP or static PW AC configuration for SRv6 PWs

At a multihomed site, all PEs must use the same local service ID and remote service ID in the same ES.

As a best practice, set the same redundancy mode for the UPWs that use the same ESI at a multihomed site.

If the all-active redundancy mode is used at a multihomed site, you must enable the dual receive feature for PW redundancy on the multihomed PEs. To enable this feature, use the protection dual-receive command.

Prerequisites for LDP or static PW AC configuration for SRv6 PWs

Complete the following tasks:

·     In the MPLS network, complete MPLS L2VPN settings on the PEs.

·     In the SRv6 network, complete EVPN VPWS over SRv6 settings on the PEs.

Configuring LDP PWs as ACs for SRv6 PWs

Restrictions and guidelines

The data encapsulation type of an LDP PW must be the same as the access mode of the ACs mapped to the same cross-connect as the LDP PW. If they are different, perform one of the following tasks:

·     Use the pw-type command on the PW class to which the LDP PW belongs to change the PW data encapsulation type.

·     Use the ac interface command for the ACs and specify the access-mode parameter in the command to change the access mode of the ACs.

Procedure

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect group EVPN instance view.

evpn encapsulation srv6

4.     Return to cross-connect group view.

quit

5.     Enter cross-connect view.

connection connection-name

6.     Create an LDP PW for the cross-connect and enter cross-connect PW view.

peer ip-address pw-id pw-id [ ignore-standby-state ] [ admin | pw-class class-name | tunnel-policy tunnel-policy-name ] *

The LDP PW configured by using this command is an UPW, which acts as an AC for the EVPN VPWS over SRv6 network.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

7.     (Optional.) Assign an ESI to the UPW.

esi esi-id

By default, no ESI is assigned to an UPW.

At a multihomed site, use this command on the PEs in the MPLS L2VPN and EVPN VPWS over SRv6 networks.

For more information about this command, see EVPN commands in EVPN Command Reference.

8.     (Optional.) Set the redundancy mode of the UPW.

evpn redundancy-mode { all-active | single-active }

By default, the redundancy mode is all-active.

At a multihomed site, use this command on the PEs in the MPLS L2VPN and EVPN VPWS over SRv6 networks.

For more information about this command, see EVPN commands in EVPN Command Reference.

9.     Configure a backup LDP PW for the cross-connect and enter cross-connect backup PW view.

backup-peer ip-address pw-id pw-id [ pw-class class-name | tunnel-policy tunnel-policy-name ] *

At a multihomed site, use this command on the multihomed PEs.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

10.     Return to cross-connect view.

quit

quit

11.     Create an SRv6 PW and enter SRv6 PW view.

evpn local-service-id local-service-id remote-service-id remote-service-id [ tunnel-policy tunnel-policy-name ]

For more information about this command, see EVPN Command Reference.

 

Configuring static PWs as ACs for SRv6 PWs

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect group EVPN instance view.

evpn encapsulation srv6

4.     Return to cross-connect group view.

quit

5.     Enter cross-connect view.

connection connection-name

6.     Create a static PW for the cross-connect and enter cross-connect PW view.

peer ip-address pw-id pw-id in-label label-value out-label label-value [ admin | pw-class class-name | tunnel-policy tunnel-policy-name ] *

The static PW configured by using this command is an UPW, which acts as an AC for the EVPN VPWS over SRv6 network.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

7.     (Optional.) Assign an ESI to the UPW.

esi esi-id

By default, no ESI is assigned to an UPW.

At a multihomed site, use this command on the PEs in the MPLS L2VPN and EVPN VPWS over SRv6 networks.

For more information about this command, see EVPN commands in EVPN Command Reference.

8.     (Optional.) Set the redundancy mode of the UPW.

evpn redundancy-mode { all-active | single-active }

By default, the redundancy mode is all-active.

At a multihomed site, use this command on the PEs in the MPLS L2VPN and EVPN VPWS over SRv6 networks.

For more information about this command, see EVPN commands in EVPN Command Reference.

9.     Configure a backup static PW for the cross-connect and enter cross-connect backup PW view.

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 ] *

At a multihomed site, use this command on the multihomed PEs.

For more information about this command, see MPLS L2VPN commands in MPLS Command Reference.

10.     Return to cross-connect view.

quit

quit

11.     Create an SRv6 PW and enter SRv6 PW view.

evpn local-service-id local-service-id remote-service-id remote-service-id [ tunnel-policy tunnel-policy-name ]

For more information about this command, see EVPN Command Reference.

 

Configuring SRv6 PW packet statistics

About this task

When SRv6 PW packet statistics is enabled, you can use the display l2vpn peer srv6 verbose command to display SRv6 PW packet statistics. To clear SRv6 PW packet statistics, use the reset l2vpn statistics srv6-pw command.

Procedure

1.     Enter system view.

system-view

2.     Enter cross-connect group view.

xconnect-group group-name

3.     Enter cross-connect view.

connection connection-name

4.     Enter SRv6 PW view.

evpn local-service-id local-service-id remote-service-id remote-service-id [ tunnel-policy tunnel-policy-name ]

5.     Enable SRv6 PW packet statistics.

statistics enable

By default, SRv6 PW packet statistics is disabled.

 

Test the connectivity of an SRv6 PW

Using ping to test the connectivity of an SRv6 PW

About this task

In an EVPN VPWS over SRv6 network, a PE transmits data packets to a remote PE over an SRv6 PW. Perform this task to test the connectivity of the SRv6 PW from the local PE to the remote PE when packet loss or traffic interruption occurs between the PEs.

The test process is as follows:

1.     The local PE constructs an MPLS echo request packet and searches for the SRv6 tunnel that matches the specified cross-connect group name, local service ID, and remote service ID. After obtaining the End.DT2X SID of the SRv6 tunnel, the PE adds a UDP header and an IPv6 header to the packet and forwards the packet to the remote PE.

2.     Upon receiving the MPLS echo request packet, the remote PE replies to the request.

3.     The local PE identifies the connectivity of the SRv6 PW based on whether it has received MPLS echo replies from the remote PE and the reply response time. In addition, the local PE outputs statistics about the ping operation.

Procedure

To test the connectivity of an SRv6 PW from the local PE to the remote PE in an EVPN VPWS over SRv6 network, execute the following command in any view:

ping evpn vpws srv6 xconnect-group group-name local-service-id  remote-service-id [ -a source-ipv6 | -c count | -h hop-limit | -m interval | -r reply-mode | -s packet-size | -t time-out | -tc tc ] *

Using tracert to test the connectivity of an SRv6 PW

About this task

In an EVPN VPWS over SRv6 network, a PE transmits data packets to a remote PE over an SRv6 PW. Perform this task to trace the path of the SRv6 PW from the local PE to the remote PE when packet loss or traffic interruption occurs between the PEs. This task helps you locate the failed nodes on the path.

The test process is as follows:

1.     The local PE constructs an MPLS echo request packet and searches for the SRv6 tunnel that matches the specified cross-connect group name, local service ID, and remote service ID. After obtaining the End.DT2X SID of the SRv6 tunnel, the PE adds a UDP header and an IPv6 header to the packet and forwards the packet to the remote PE. In the IPv6 header, the value of the Hop limit field is set to 1.

2.     When the next node receives the packet, the value of the Hop limit field changes to 0. Then, the node sends an ICMPv6 timeout packet to the first node (the local PE).

3.     When the local PE receives the ICMPv6 timeout packet, it increases the value of the Hop limit field by one in the MPLS echo request packet. Then, the local PE forwards the request packet to the remote PE. The value of the Hop limit field is 2.

4.     The value of the Hop limit field decreases by one each time the request packet reaches a node. When the value of the Hop limit field decreases to 0, the node that receives the request packet responds to the first node with an ICMPv6 timeout packet. If the node that receives the request packet is the destination node, it sends an MPLS echo reply packet to the first node.

5.     The local PE repeats the previous step until one of the following conditions exist:

¡     The local PE has not received any reply packets before the reply timeout time expires for all request packets.

¡     The local PE receives a reply packet from the remote PE.

6.     The local PE identifies the connectivity of the SRv6 PW based on whether it has received MPLS echo reply packets from the remote PE and the reply response time. In addition, the local PE outputs statistics about the tracert operation.

Procedure

To trace the path of an SRv6 PW from the local PE to the remote PE in an EVPN VPWS over SRv6 network, execute the following command in any view:

tracert evpn vpws srv6 xconnect-group group-name local-service-id remote-service-id [ -a source-ip | -h hop-limit | -r reply-mode | -t time-out | -tc tc ] *

Display and maintenance commands for EVPN VPWS over SRv6

Execute display commands in any view and reset commands in user view.

For more information about the following commands, see BGP commands in Layer 3—IP Routing Command Reference:

·     display bgp group.

·     display bgp peer.

·     display bgp update-group.

 

Task

Command

Display BGP peer group information.

display bgp [ instance instance-name ] group l2vpn evpn [ group-name group-name ]

Display BGP EVPN route information.

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 } ] [ { evpn-route route-length | evpn-prefix } [ advertise-info ] ] | [ ipv4-address | ipv6-address | mac-address ] ] | [ statistics ] ]

Display BGP peer or peer group information.

display bgp [ instance instance-name ] peer l2vpn evpn [ ipv6-address prefix-length | { ipv6-address | group-name group-name } log-info | [ ipv6-address ] verbose ]

Display information about BGP update groups.

display bgp [ instance instance-name ] update-group l2vpn evpn [ ipv6-address ]

Display information about peers that are automatically discovered through BGP.

display evpn auto-discovery { mac-ip [ srv6 ] [ peer peer-address ] | macip-prefix [ nexthop next-hop ] [ count ] }

Display EVPN ES information.

display evpn es { local [ count | [ xconnect-group group-name ] [ esi esi-id ] [ verbose ] ] | remote [ xconnect-group group-name] [ esi esi-id ] [ nexthop next-hop ] [ verbose ] }

Display EVPN information about cross-connects.

display evpn route xconnect-group [ name group-name [ connection connection-name ] ] [ count ]

Display L2VPN SRv6 forwarding information.

display l2vpn forwarding srv6 [ xconnect-group group-name ] [ verbose ]

Display L2VPN information about Layer 3 interfaces mapped to cross-connects.

display l2vpn interface [ xconnect-group group-name | interface-type interface-number ] [ verbose ]

Display L2VPN SRv6 information.

display l2vpn peer srv6 [ xconnect-group group-name ] [ state-machine | verbose ]

Display information about Ethernet service instances.

display l2vpn service-instance [ interface interface-type interface-number [ service-instance instance-id ] ] [ verbose ]

Display information about cross-connect groups.

display l2vpn xconnect-group [ evpn-srv6 | name group-name [ connection connection-name ] ] [ count | verbose ]

Clear SRv6 PW packet statistics.

reset l2vpn statistics srv6-pw [ xconnect-group group-name [ connection connection-name ] ]

 

EVPN VPWS over SRv6 configuration examples (on routers)

Example: Setting up an SRv6 tunnel between single-homed EVPN VPWS sites

Network configuration

As shown in Figure 6, set up an SRv6 tunnel between PE 1 and PE 2 for users in site 1 and site 2 to communicate through EVPN VPWS over the IPv6 backbone network.

Figure 6 Network diagram

Device

Interface

IP address

Device

Interface

IP address

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

 

Procedure

1.     Configure 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.     Configure PE 1:

# Run OSPFv3 on PE 1 and use OSPFv3 to advertise SIDs.

<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

# Configure interface Loopback 0.

[PE1] interface loopback 0

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to P.

[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

# Configure PE 1 to establish IBGP neighbor relationship with PE 2 and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 2.

[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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map GigabitEthernet 1/0/1 to it. Create an SRv6 tunnel on the cross-connect.

[PE1-xcg-vpna] connection pw1

[PE1-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE1-xcg-vpna-pw1-GigabitEthernet1/0/1] 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

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 2:

# Run OSPFv3 on PE 2 and use OSPFv3 to advertise SIDs.

<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

# Configure interface Loopback 0.

[PE2] interface loopback 0

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to P.

[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

# Configure PE 2 to establish IBGP neighbor relationship with PE 1, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1.

[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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map GigabitEthernet 1/0/1 to it. Create an SRv6 tunnel on the cross-connect.

[PE2-xcg-vpna] connection pw1

[PE2-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE2-xcg-vpna-pw1-GigabitEthernet1/0/1] 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

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure P:

# Run OSPFv3 on P.

<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

# Configure IPv6 addresses for interfaces and run OSPFv3 on the interfaces.

[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.     Configure 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

 

Verifying the configuration

# Verify that an SRv6 tunnel has been established between PE 1 and PE 2.

[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

# Verify that the SRv6 forwarding information on PE 1 is correct. You can see input and output SID information about the SRv6 tunnel.

[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             : 0x1         Type: BE    State: Up

In SID              : 100::1:0:2

Out SID             : 200::1:0:2

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

Example: Configuring EVPN VPWS over SRv6 multihoming (static link aggregation dual-homed)

Network configuration

As shown in Figure 7, CE 1 is dual-homed to PE 1 and PE 2 through static link aggregation. Configure EVPN VPWS over SRv6 for dual-homed site 1 and single-homed site 2 to communicate over the IPv6 backbone network through an SRv6 tunnel.

Figure 7 Network diagram

Device

Interface

IP address

Device

Interface

IP address

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

 

 

 

 

Procedure

1.     Configure CE 1:

# Create static Layer 3 aggregate interface 1 and assign it an IPv6 address.

<CE1> system-view

[CE1] interface route-aggregation 1

[CE1-Route-Aggregation1] ipv6 address 100::1 64

[CE1-Route-Aggregation1] quit

# Assign GigabitEthernet 1/0/1 and GigabitEthernet 1/0/2 to aggregation group 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.     Configure PE 1:

# Run OSPFv3 on PE 1.

<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

# Configure interface Loopback 0.

[PE1] interface loopback 0

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to PE 3.

[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

# Configure GigabitEthernet 1/0/3, the interface connected to PE 2.

[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

# Configure PE 1 to establish IBGP neighbor relationships with PE 2 and PE 3, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 2 and PE 3.

[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

# Assign an ESI to site-facing interface GigabitEthernet 1/0/1 and set its redundancy mode to all-active.

[PE1] interface gigabitethernet 1/0/1

[PE1-GigabitEthernet1/0/1] esi 1.1.1.1.1

[PE1-GigabitEthernet1/0/1] evpn redundancy-mode all-active

[PE1-GigabitEthernet1/0/1] quit

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map GigabitEthernet 1/0/1 to it. Create an SRv6 tunnel on the cross-connect.

[PE1-xcg-vpna] connection pw1

[PE1-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE1-xcg-vpna-pw1-GigabitEthernet1/0/1] 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

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 2:

# Run OSPFv3 on PE 2.

<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

# Configure interface Loopback 0.

[PE2] interface loopback 0

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure GigabitEthernet 1/0/3, the interface connected to PE 1.

[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

# Configure GigabitEthernet 1/0/2, the interface connected to PE 3.

[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

# Configure PE 2 to establish IBGP neighbor relationships with PE 1 and PE 3, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1 and PE 3.

[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

# Assign an ESI to site-facing interface GigabitEthernet 1/0/1 and set its redundancy mode to all-active.

[PE2] interface gigabitethernet 1/0/1

[PE2-GigabitEthernet1/0/1] esi 1.1.1.1.1

[PE2-GigabitEthernet1/0/1] evpn redundancy-mode all-active

[PE2-GigabitEthernet1/0/1] quit

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map GigabitEthernet 1/0/1 to it. Create an SRv6 tunnel on the cross-connect.

[PE2-xcg-vpna] connection pw1

[PE2-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE2-xcg-vpna-pw1-GigabitEthernet1/0/1] quit

[PE2-xcg-vpna-pw1] evpn local-service-id 1 remote-service-id 2

[PE2-xcg-vpna-pw1-1-2] quit

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE2-xcg-vpna-pw1] quit

[PE2-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 3:

# Run OSPFv3 on PE 3.

<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

# Configure interface Loopback 0.

[PE3] interface loopback 0

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

[PE3-LoopBack0] ospfv3 1 area 0

[PE3-LoopBack0] quit

# Enable L2VPN.

[PE3] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to PE 1.

[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

# Configure GigabitEthernet 1/0/3, the interface connected to PE 2.

[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

# Configure PE 3 to establish IBGP neighbor relationships with PE 1 and PE 2, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1 and PE 2.

[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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[PE3] xconnect-group vpna

[PE3-xcg-vpna] evpn encapsulation srv6

[PE3-xcg-vpna-evpn-srv6] route-distinguisher 1:1

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity

[PE3-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort

[PE3-xcg-vpna-evpn-srv6] quit

# Create cross-connect pw1 and map GigabitEthernet 1/0/1 to it. Create an SRv6 tunnel on the cross-connect.

[PE3-xcg-vpna] connection pw1

[PE3-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE3-xcg-vpna-pw1-GigabitEthernet1/0/1] quit

[PE3-xcg-vpna-pw1] evpn local-service-id 2 remote-service-id 1

[PE3-xcg-vpna-pw1-2-1] quit

[PE3-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE3-xcg-vpna-pw1] quit

[PE3-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure 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

 

Verifying the configuration

# Verify that PE 1 has established an SRv6 tunnel to PE 3.

[PE1] display l2vpn peer srv6

Total number of SRv6 Tunnels: 1

1 up, 0 blocked, 0 down

 

Xconnect-group Name: vpna

   Peer            : 3::3

   Flag            : Main

   State           : Up

   Remote SrvID    : 2

# Verify that PE 3 has established SRv6 tunnels to PE 1 and PE 2. The SRv6 tunnels are ECMP tunnels that load share traffic.

[PE3] display l2vpn peer srv6

Total number of SRv6 Tunnels: 2

2 up, 0 blocked, 0 down

 

Xconnect-group Name: vpna

   Peer            : 2::2

   Flag            : ECMP

   State           : Up

   Remote SrvID    : 1

 

   Peer            : 1::1

   Flag            : ECMP

   State           : Up

   Remote SrvID    : 1

# Verify that the SRv6 forwarding information on PE 1 and PE 3 is correct. You can see input and output SID information about the SRv6 tunnel.

[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             : 0x1         Type: BE    State: Up

In SID              : 111::1:0:3

Out SID             : 333::1:0:3

[PE3] display l2vpn forwarding srv6

Total number of cross-connections: 1

Total number of SRv6 tunnels: 2, 2 up, 0 blocked, 0 down

Xconnect-group Name : vpna

Connection Name     : pw1

Link ID             : 0x1         Type: BE    State: Up

In SID              : 333::1:0:3

Out SID             : 111::1:0:3

 

Link ID             : 0x1         Type: BE    State: Up

In SID              : 333::1:0:3

Out SID             : 222::1:0:3

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

# Verify that CE 1 and CE 2 can ping each other when the PW on PE 1 or PE 2 fails. (Details not shown.)

Example: Configuring EVPN VPWS over SRv6 multihoming (S-Trunk dual-homed)

Network configuration

As shown in Figure 8, CE 1 is dual-homed to PE 1 and PE 2 through S-Trunk. Configure EVPN VPWS over SRv6 for dual-homed site 1 and single-homed site 2 to communicate over the IPv6 backbone network through an SRv6 tunnel.

Figure 8 Network diagram

Device

Interface

IP address

Device

Interface

IP address

PE 1

Loop0

1::1/128

PE 2

Loop0

2::2/128

 

GE1/0/1

N/A

 

GE1/0/1

N/A

 

GE1/0/2

10::1/64

 

GE1/0/2

30::2/64

 

GE1/0/3

20::1/64

 

GE1/0/3

20::2/64

 

GE1/0/3

10.1.2.1/24

 

GE1/0/3

10.1.2.2/24

PE 3

Loop0

3::3/128

CE 1

RAGG1

100::1/64

 

GE1/0/1

N/A

CE 2

GE1/0/1

100::2/64

 

GE1/0/2

10::3/64

 

 

 

 

GE1/0/3

30::3/64

 

 

 

 

Procedure

1.     Configure CE 1:

# Create dynamic Layer 3 aggregate interface 1 and assign it an IPv6 address and prefix.

<CE1> system-view

[CE1] interface route-aggregation 1

[CE1-Route-Aggregation1] link-aggregation mode dynamic

[CE1-Route-Aggregation1] ipv6 address 100::1 64

[CE1-Route-Aggregation1] quit

# Assign GigabitEthernet 1/0/1 and GigabitEthernet 1/0/2 to aggregation group 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.     Configure PE 1:

# Run OSPFv3 on PE 1.

<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

# Configure interface Loopback 0.

[PE1] interface loopback 0

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to PE 3.

[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

# Configure GigabitEthernet 1/0/3, the interface connected to PE 2.

[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

# Configure PE 1 to establish IBGP neighbor relationships with PE 2 and PE 3, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 2 and PE 3.

[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

# Configure S-Trunk for CE 1 to be dual-homed to PE 1 and PE 2.

[PE1] lacp system-priority 10

[PE1] lacp system-mac 1-1-1

[PE1] lacp system-number 1

[PE1] s-trunk id 1

[PE1-s-trunk1] s-trunk ip destination 10.1.2.2 source 10.1.2.1

[PE1-s-trunk1] quit

[PE1] interface route-aggregation 1

[PE1-Route-Aggregation1] link-aggregation mode dynamic

[PE1-Route-Aggregation1] s-trunk 1

[PE1-Route-Aggregation1] s-trunk port-role primary

[PE1-Route-Aggregation1] quit

[PE1] interface gigabitethernet 1/0/1

[PE1-GigabitEthernet1/0/1] port link-aggregation group 1

[PE1-GigabitEthernet1/0/1] quit

# Assign an ESI to site-facing interface Route-Aggregation 1 and set its redundancy mode to all-active.

[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] quit

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map Route-Aggregation 1 to it. Create an SRv6 tunnel on the cross-connect.

[PE1-xcg-vpna] connection pw1

[PE1-xcg-vpna-pw1] ac interface route-aggregation 1

[PE1-xcg-vpna-pw1-Route-Aggregation1] quit

[PE1-xcg-vpna-pw1] evpn local-service-id 1 remote-service-id 2

[PE1-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE1-xcg-vpna-pw1] quit

[PE1-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 2:

# Run OSPFv3 on PE 2.

<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

# Configure interface Loopback 0.

[PE2] interface loopback 0

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure GigabitEthernet 1/0/3, the interface connected to PE 1.

[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

# Configure GigabitEthernet 1/0/2, the interface connected to PE 3.

[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

# Configure PE 2 to establish IBGP neighbor relationships with PE 1 and PE 3, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1 and PE 3.

[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

# Configure S-Trunk for CE 1 to be dual-homed to PE 1 and PE 2.

[PE2] lacp system-priority 10

[PE2] lacp system-mac 1-1-1

[PE2] lacp system-number 2

[PE2] s-trunk id 1

[PE2-s-trunk1] s-trunk ip destination 10.1.2.1 source 10.1.2.2

[PE2-s-trunk1] quit

[PE2] interface route-aggregation 1

[PE2-Route-Aggregation1] link-aggregation mode dynamic

[PE2-Route-Aggregation1] s-trunk 1

[PE2-Route-Aggregation1] s-trunk port-role primary

[PE2-Route-Aggregation1] quit

[PE2] interface gigabitethernet 1/0/1

[PE2-GigabitEthernet1/0/1] port link-aggregation group 1

[PE2-GigabitEthernet1/0/1] quit

# Assign an ESI to site-facing interface Route-Aggregation 1 and set its redundancy mode to all-active.

[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] quit

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map Route-Aggregation 1 to it. Create an SRv6 tunnel on the cross-connect.

[PE2-xcg-vpna] connection pw1

[PE2-xcg-vpna-pw1] ac interface route-aggregation 1

[PE2-xcg-vpna-pw1-Route-Aggregation1] quit

[PE2-xcg-vpna-pw1] evpn local-service-id 1 remote-service-id 2

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE2-xcg-vpna-pw1] quit

[PE2-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 3:

# Run OSPFv3 on PE 3.

<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

# Configure interface Loopback 0.

[PE3] interface loopback 0

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

[PE3-LoopBack0] ospfv3 1 area 0

[PE3-LoopBack0] quit

# Enable L2VPN.

[PE3] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to PE 1.

[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

# Configure GigabitEthernet 1/0/3, the interface connected to PE 2.

[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

# Configure PE 3 to establish IBGP neighbor relationships with PE 1 and PE 2, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1 and PE 2.

[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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[PE3] xconnect-group vpna

[PE3-xcg-vpna] evpn encapsulation srv6

[PE3-xcg-vpna-evpn-srv6] route-distinguisher 1:1

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity

[PE3-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort

[PE3-xcg-vpna-evpn-srv6] quit

# Create cross-connect pw1 and map GigabitEthernet 1/0/1 to it. Create an SRv6 tunnel on the cross-connect.

[PE3-xcg-vpna] connection pw1

[PE3-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE3-xcg-vpna-pw1-GigabitEthernet1/0/1] quit

[PE3-xcg-vpna-pw1] evpn local-service-id 2 remote-service-id 1

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE3-xcg-vpna-pw1] quit

[PE3-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure 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

 

Verifying the configuration

# Verify that PE 1 has established an SRv6 tunnel to PE 3.

[PE1] display l2vpn peer srv6

Total number of SRv6 Tunnels: 1

1 up, 0 blocked, 0 down

 

Xconnect-group Name: vpna

   Peer            : 3::3

   Flag            : Main

   State           : Up

   Remote SrvID    : 2

# Verify that PE 3 has established SRv6 tunnels to PE 1 and PE 2. The SRv6 tunnels are ECMP tunnels that load share traffic.

[PE3] display l2vpn peer srv6

Total number of SRv6 Tunnels: 2

2 up, 0 blocked, 0 down

 

Xconnect-group Name: vpna

   Peer            : 2::2

   Flag            : ECMP

   State           : Up

   Remote SrvID    : 1

 

   Peer            : 1::1

   Flag            : ECMP

   State           : Up

   Remote SrvID    : 1

# Verify that the SRv6 forwarding information on PE 1 and PE 3 is correct. You can see input and output SID information about the SRv6 tunnel.

[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             : 0x1         Type: BE    State: Up

In SID              : 111::1:0:3

Out SID             : 333::1:0:3

[PE3] display l2vpn forwarding srv6

Total number of cross-connections: 1

Total number of SRv6 tunnels: 2, 2 up, 0 blocked, 0 down

Xconnect-group Name : vpna

Connection Name     : pw1

Link ID             : 0x1         Type: BE    State: Up

In SID              : 333::1:0:3

Out SID             : 111::1:0:3

 

Link ID             : 0x1         Type: BE    State: Up

In SID              : 333::1:0:3

Out SID             : 222::1:0:3

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

# Verify that CE 1 and CE 2 can ping each other when the PW on PE 1 or PE 2 fails. (Details not shown.)

Example: Configuring LDP PWs as ACs for SRv6 PWs

Network configuration

As shown in Figure 9:

·     PE 1 and PE 2 are edge devices on both the MPLS network and SRv6 network.

·     Configure MPLS L2VPN on PE 1, PE 2, and PE 4, and configure the PEs to use LDP to establish LDP PWs.

·     Configure EVPN VPWS over SRv6 on PE 1, PE 2, and PE 3.

·     On PE 1 and PE 2, configure LDP PWs as UPWs (ACs) for SRv6 PWs to ensure that the MPLS L2VPN and EVPN VPWS over SRv6 networks can communicate with each other.

·     PE 4 is dual-homed to PE 1 and PE 2 through two LDP PWs (UPWs).

Figure 9 Network diagram

Device

Interface

IP address

Device

Interface

IP address

PE 1

Loop0

1::1/128

PE 3

Loop0

3::3/128

 

Loop0

1.1.1.9/32

 

GE1/0/1

-

 

GE1/0/1

10.1.1.1/24

 

GE1/0/2

10::3/64

 

GE1/0/2

10::1/64

 

GE1/0/3

30::3/64

 

GE1/0/3

20::1/64

PE 4

Loop0

4.4.4.9

PE 2

Loop0

2::2/128

 

GE1/0/1

10.1.1.4/24

 

Loop0

2.2.2.9/32

 

GE1/0/2

20.1.1.4/24

 

GE1/0/1

20.1.1.2/24

 

GE1/0/3

-

 

GE1/0/2

30::2/64

CE 1

GE1/0/1

100::1/64

 

GE1/0/3

20::2/64

CE2

GE1/0/1

100::2/64

 

Procedure

1.     Configure CE 1:

# Configure an IPv6 address and prefix length for GigabitEthernet 1/0/1.

<CE1> system-view

[CE1] interface gigabitethernet 1/0/1

[CE1-GigabitEthernet1/0/1] ipv6 address 100::1 64

[CE1-GigabitEthernet1/0/1] quit

 

2.     Configure PE 4:

# Configure MPLS basic capabilities.

<PE4> system-view

[PE4] interface loopback 0

[PE4-LoopBack0] ip address 4.4.4.9 32

[PE4-LoopBack0] ospf 1 area 0

[PE4-LoopBack0] quit

[PE4] mpls lsr-id 4.4.4.9

[PE4] mpls ldp

[PE4-ldp] quit

# Enable L2VPN.

[PE4] l2vpn enable

# Configure GigabitEthernet 1/0/1, the interface connected to PE 1.

[PE4] interface gigabitethernet 1/0/1

[PE4-GigabitEthernet1/0/1] ip address 10.1.1.4 24

[PE4-GigabitEthernet1/0/1] ospf 1 area 0

[PE4-GigabitEthernet1/0/1] mpls enable

[PE4-GigabitEthernet1/0/1] mpls ldp enable

[PE4-GigabitEthernet1/0/1] undo shutdown

[PE4-GigabitEthernet1/0/1] quit

# Configure GigabitEthernet 1/0/2, the interface connected to PE 2.

[PE4] interface gigabitethernet 1/0/2

[PE4-GigabitEthernet1/0/2] ip address 20.1.1.4 24

[PE4-GigabitEthernet1/0/2] ospf 1 area 0

[PE4-GigabitEthernet1/0/2] mpls enable

[PE4-GigabitEthernet1/0/2] mpls ldp enable

[PE4-GigabitEthernet1/0/2] undo shutdown

[PE4-GigabitEthernet1/0/2] quit

# Create cross-connect group vpna, create cross-connect pw1 in the group, and map GigabitEthernet 1/0/3 to the cross-connect. Create an LDP PW for the cross-connect to associate the AC with the PW. Configure a backup PW for the PW and enable the dual receive feature for PW redundancy.

[PE4] xconnect-group vpna

[PE4-xcg-vpna] connection pw1

[PE4-xcg-vpna-pw1] ac interface gigabitethernet 1/0/3

[PE4-xcg-vpna-pw1-GigabitEthernet1/0/3] quit

[PE4-xcg-vpna-pw1] protection dual-receive

[PE4-xcg-vpna-pw1] peer 1.1.1.9 pw-id 500

[PE4-xcg-vpna-pw1-1.1.1.9-500] backup-peer 2.2.2.9 pw-id 500

[PE4-xcg-vpna-pw1-1.1.1.9-500-backup] quit

[PE4-xcg-vpna-pw1-1.1.1.9-500] quit

[PE4-xcg-vpna-pw1] quit

[PE4-xcg-vpna] quit

 

 

3.     Configure PE 1:

# Run OSPF on PE 1.

<PE1> system-view

[PE1] ospf

[PE1-ospf-1] router-id 1.1.1.9

[PE1-ospf-1] area 0

[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0

[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255

[PE1-ospf-1-area-0.0.0.0] quit

[PE1-ospf-1] quit

# Run OSPFv3 on PE 1.

<PE1> system-view

[PE1] ospfv3

[PE1-ospfv3-1] router-id 1.1.1.9

[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

# Configure interface Loopback 0.

[PE1] interface loopback 0

[PE1-LoopBack0] ip address 1.1.1.9 32

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Configure MPLS basic capabilities.

[PE1] mpls lsr-id 1.1.1.9

[PE1] mpls ldp

[PE1-ldp] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure GigabitEthernet 1/0/1, the interface connected to PE 4.

[PE1] interface gigabitethernet 1/0/1

[PE1-GigabitEthernet1/0/1] ip address 10.1.1.1 24

[PE1-GigabitEthernet1/0/1] mpls enable

[PE1-GigabitEthernet1/0/1] mpls ldp enable

[PE1-GigabitEthernet1/0/1] undo shutdown

[PE1-GigabitEthernet1/0/1] quit

# Configure GigabitEthernet 1/0/2, the interface connected to PE 3.

[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] quit

# Configure GigabitEthernet 1/0/3, the interface connected to PE 2.

[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] quit

# Establish IBGP connections to PE 2 and PE 3, and enable BGP EVPN to advertise route information to PE 2 and PE 3.

[PE1] bgp 100

[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

# Create a PW class and set the PW data encapsulation type to Ethernet for the PW class.

[PE1] pw-class aaa

[PE1-pw-aaa] pw-type ethernet

[PE1-pw-aaa] quit

# Create cross-connect group vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1. Configure PE 1 to set up an UPW with PE 4, assign an ESI to the UPW, and set the redundancy mode of the UPW to all-active. Create an SRv6 PW for the cross-connect to associate the UPW with the SRv6 PW.

[PE1-xcg-vpna] connection pw1

[PE1-xcg-vpna-pw1] peer 4.4.4.9 pw-id 500 pw-class aaa

[PE1-xcg-vpna-pw1-4.4.4.9-500] esi 1.1.1.1.1

[PE1-xcg-vpna-pw1-4.4.4.9-500] evpn redundancy-mode all-active

[PE1-xcg-vpna-pw1-4.4.4.9-500] 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

# Configure a locator to apply for End.DX2 SIDs.

[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

 

 

4.     Configure PE 2:

# Run OSPF on PE 2.

<PE2> system-view

[PE2] ospf

[PE2-ospf-1] router-id 2.2.2.9

[PE2-ospf-1] area 0.0.0.0

[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0

[PE2-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255

[PE2-ospf-1-area-0.0.0.0] quit

[PE2-ospf-1] quit

# Run OSPFv3 on PE 2.

<PE2> system-view

[PE2] ospfv3

[PE2-ospfv3-1] router-id 2.2.2.9

[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

# Configure interface Loopback 0.

[PE2] interface loopback 0

[PE2-LoopBack1] ip address 2.2.2.9 32

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Configure MPLS basic capabilities.

[PE2] mpls lsr-id 2.2.2.9

[PE2] mpls ldp

[PE2-ldp] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure GigabitEthernet 1/0/3, the interface connected to PE 1.

[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

# Configure GigabitEthernet 1/0/2, the interface connected to PE 3.

[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

# Configure GigabitEthernet 1/0/1, the interface connected to PE 4.

[PE2] interface gigabitethernet 1/0/1

[PE2-GigabitEthernet1/0/1] ip address 20.1.1.2 24

[PE2-GigabitEthernet1/0/1] mpls enable

[PE2-GigabitEthernet1/0/1] mpls ldp enable

[PE2-GigabitEthernet1/0/1] undo shutdown

[PE2-GigabitEthernet1/0/1] quit

# Establish IBGP connections to PE 1 and PE 3 and enable BGP EVPN to advertise route information to PE 1 and PE 3.

[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] 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

# Create a PW class and set the PW data encapsulation type to Ethernet for the PW class.

[PE2] pw-class aaa

[PE2-pw-aaa] pw-type ethernet

[PE2-pw-aaa] quit

# Create cross-connect group vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1. Configure PE 2 to set up an UPW with PE 4, assign an ESI to the UPW, and set the redundancy mode of the UPW to all-active. Create an SRv6 PW for the cross-connect to associate the UPW with the SRv6 PW.

[PE2-xcg-vpna] connection pw1

[PE2-xcg-vpna-pw1] peer 4.4.4.9 pw-id 500 pw-class aaa

[PE2-xcg-vpna-pw1-4.4.4.9-500] esi 1.1.1.1.1

[PE2-xcg-vpna-pw1-4.4.4.9-500] evpn redundancy-mode all-active

[PE2-xcg-vpna-pw1-4.4.4.9-500] quit

[PE2-xcg-vpna-pw1] evpn local-service-id 1 remote-service-id 2

[PE2-xcg-vpna-pw1-1-2] quit

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE2-xcg-vpna-pw1] quit

[PE2-xcg-vpna] quit

# Configure a locator to apply for End.DX2 SIDs.

[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

 

 

5.     Configure PE 3:

# Run OSPFv3 on PE 3.

<PE3> system-view

[PE3] ospfv3

[PE3-ospfv3-1] router-id 3.3.3.9

[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

# Configure interface Loopback 0.

[PE3] interface loopback 0

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

[PE3-LoopBack0] ospfv3 1 area 0

[PE3-LoopBack0] quit

# Enable L2VPN.

[PE3] l2vpn enable

# Configure GigabitEthernet 1/0/2, the interface connected to PE 1.

[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

# Configure GigabitEthernet 1/0/3, the interface connected to PE 2.

[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

# Establish IBGP connections to PE 1 and PE 2, and enable BGP EVPN to advertise route information to PE 1 and PE 2.

[PE3] bgp 100

[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

# Create cross-connect group vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[PE3] xconnect-group vpna

[PE3-xcg-vpna] evpn encapsulation srv6

[PE3-xcg-vpna-evpn-srv6] route-distinguisher 1:1

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity

[PE3-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort

[PE3-xcg-vpna-evpn-srv6] quit

# Create cross-connect pw1, map GigabitEthernet 1/0/1 to the cross-connect, and create an SRv6 PW on the cross-connect to associate the AC with the SRv6 PW.

[PE3-xcg-vpna] connection pw1

[PE3-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1

[PE3-xcg-vpna-pw1-GigabitEthernet1/0/1] quit

[PE3-xcg-vpna-pw1] evpn local-service-id 2 remote-service-id 1

[PE3-xcg-vpna-pw1-2-1] quit

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE3-xcg-vpna-pw1] quit

[PE3-xcg-vpna] quit

# Configure a locator to apply for End.DX2 SIDs.

[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

 

 

6.     On CE 2, configure an IPv6 address for GigabitEthernet 1/0/1.

<CE2> system-view

[CE2] interface gigabitethernet 1/0/1

[CE2-GigabitEthernet1/0/1] ipv6 address 100::2 64

[CE2-GigabitEthernet1/0/1] quit

 

Verifying the configuration

# On PE 1, view detailed cross-connect group information. Verify that PE 1 has established an LDP PW with PE 4 and an SRv6 PW with PE 3.

[PE1] display l2vpn xconnect-group verbose

Xconnect-group Name: vpna

 Connection Name        : pw1

  Connection ID         : 0

  State                 : Up

  MTU                   : 1500

  PW Redundancy Mode    : Slave

  Diffserv Mode         : -

  LDP PWs:

    Peer            PW ID              Link ID    State       Flag

    4.4.4.9         500                0          Up          Main

    Create time: 2020-11-02 10:04:59

    Last time status changed: 2020-11-02 10:04:59

    Last time PW went down: 2020-11-02 10:04:59

  SRv6 tunnels:

   Peer        : 3::3

   Link ID     : 0x1

   State       : Up

# On PE 1, display detailed local ES information. Verify that the LDP PW (UPW) has multihoming settings.

[PE1] display evpn es local verbose

 

Xconnect-group name : vpna

 Connection name           : pw1

  ESI                      : 0001.0001.0001.0001.0001

  Redundancy mode          : All-active

  State                    : Up

  UPW Link ID              : 0

  Tag ID                   : -

  DF address               : -

# On PE 2, display detailed cross-connect group information. Verify that PE 2 has established an LDP PW with PE 4 and an SRv6 PW with PE 3.

[PE2] display l2vpn xconnect-group verbose

Xconnect-group Name: vpna

 Connection Name        : pw1

  Connection ID         : 0

  State                 : Up

  MTU                   : 1500

  PW Redundancy Mode    : Slave

  Diffserv Mode         : -

  LDP PWs:

    Peer            PW ID              Link ID    State       Flag

    4.4.4.9         500                0          Up          Main

    Create time: 2020-11-02 10:08:01

    Last time status changed: 2020-11-02 10:08:01

    Last time PW went down: 2020-11-02 10:08:01

  SRv6 tunnels:

   Peer        : 3::3

   Link ID     : 0x1

   State       : Up

# On PE 2, display detailed local ES information. Verify that the LDP PW (UPW) has multihoming settings.

[PE2] display evpn es local verbose

 

Xconnect-group name : vpna

 Connection name           : pw1

  ESI                      : 0001.0001.0001.0001.0001

  Redundancy mode          : All-active

  State                    : Up

  UPW Link ID              : 0

  Tag ID                   : -

  DF address               : -

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

EVPN VPWS over SRv6 configuration examples (on switches)

Example: Setting up an SRv6 tunnel between single-homed EVPN VPWS sites

Network configuration

As shown in Figure 10, set up an SRv6 tunnel between PE 1 and PE 2 for users in VLAN 10 of site 1 and site 2 to communicate through EVPN VPWS over the IPv6 backbone network.

Figure 10 Network diagram

Device

Interface

IP address

Device

Interface

IP address

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

 

Prerequisites

Create VLANs on all devices and assign interfaces to the VLANs.

Procedure

1.     Configure CE 1.

<CE1> system-view

[CE1] interface vlan-interface 10

[CE1-Vlan-interface10] ipv6 address 100::1 64

[CE1-Vlan-interface10] quit

2.     Configure PE 1:

# Run OSPFv3 on PE 1 and use OSPFv3 to advertise SIDs.

<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

# Configure interface Loopback 0.

[PE1] interface loopback 0

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure VLAN-interface 20, the interface connected to P.

[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

# Configure PE 1 to establish IBGP neighbor relationship with PE 2 and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 2.

[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

# Create Ethernet service instance 1000 to match VLAN 10 on site-facing interface GigabitEthernet 1/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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map Ethernet service instance 1000 on GigabitEthernet 1/0/1 to the cross-connect. Create an SRv6 tunnel on the cross-connect.

[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

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 2:

# Run OSPFv3 on PE 2 and use OSPFv3 to advertise SIDs.

<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

# Configure interface Loopback 0.

[PE2] interface loopback 0

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure VLAN-interface30, the interface connected to P.

[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

# Configure PE 2 to establish IBGP neighbor relationship with PE 1, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1.

[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

# Create Ethernet service instance 1000 to match VLAN 10 on site-facing interface GigabitEthernet 1/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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map Ethernet service instance 1000 on GigabitEthernet 1/0/1 to the cross-connect. Create an SRv6 tunnel on the cross-connect.

[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

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure P:

# Run OSPFv3 on P.

<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

# Configure IPv6 addresses for interfaces and run OSPFv3 on the interfaces.

[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.     Configure CE 2.

<CE2> system-view

[CE2] interface vlan-interface 10

[CE2-Vlan-interface10] ipv6 address 100::2 64

[CE2-Vlan-interface10] quit

Verifying the configuration

# Verify that an SRv6 tunnel has been established between PE 1 and PE 2.

[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

# Verify that the SRv6 forwarding information on PE 1 is correct. You can see input and output SID information about the SRv6 tunnel.

[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             : 0x1         Type: BE    State: Up

In SID              : 100::1:0:2

Out SID             : 200::1:0:2

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

Example: Configuring EVPN VPWS over SRv6 multihoming

Network configuration

As shown in Figure 11, configure EVPN VPWS over SRv6 for dual-homed site 1 and single-homed site 2 to communicate over the IPv6 backbone network through an SRv6 tunnel.

Figure 11 Network diagram

Device

Interface

IP address

Device

Interface

IP address

PE 1

Loop0

1::1/128

CE 1

Vlan-int10

100::1/64

 

GE1/0/1

-

CE 2

Vlan-int10

100::2/64

 

Vlan-int11

11::1/64

PE 3

Loop0

3::3/128

 

Vlan-int13

13::1/64

 

GE1/0/1

-

PE 2

Loop0

2::2/128

 

Vlan-int13

13::1/64

 

GE1/0/1

-

 

Vlan-int23

23::2/64

 

Vlan-int11

11::2/64

 

 

 

 

Vlan-int23

23::2/64

 

 

 

 

Prerequisites

Create VLANs on all devices and assign interfaces to the VLANs.

Procedure

1.     Configure CE 1:

# Configure an IPv6 address for VLAN-interface 10.

<CE1> system-view

[CE1] interface vlan-interface 10

[CE1-Vlan-interface10] ipv6 address 100::1 64

[CE1-Vlan-interface10] quit

2.     Configure PE 1:

# Run OSPFv3 on PE 1.

<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

# Configure interface Loopback 0.

[PE1] interface loopback 0

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure VLAN-interface 11, the interface connected to PE 2.

[PE1] interface vlan-interface 11

[PE1-Vlan-interface11] ipv6 address 11::1/64

[PE1-Vlan-interface11] ospfv3 1 area 0

[PE1-Vlan-interface11] undo shutdown

[PE1-Vlan-interface11] quit

# Configure VLAN-interface 13, the interface connected to PE 3.

[PE1] interface vlan-interface 13

[PE1-Vlan-interface13] ipv6 address 13::1/64

[PE1-Vlan-interface13] ospfv3 1 area 0

[PE1-Vlan-interface13] undo shutdown

[PE1-Vlan-interface13] quit

# Configure PE 1 to establish IBGP neighbor relationships with PE 2 and PE 3, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 2 and PE 3.

[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

# Assign an ESI to site-facing interface GigabitEthernet 1/0/1 and set its redundancy mode to all-active.

[PE1] interface gigabitethernet 1/0/1

[PE1-GigabitEthernet1/0/1] esi 1.1.1.1.1

[PE1-GigabitEthernet1/0/1] evpn redundancy-mode all-active

# Create Ethernet service instance 1000 to match VLAN 10 on 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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map Ethernet service instance 1000 on GigabitEthernet 1/0/1 to the cross-connect. Create an SRv6 tunnel on the cross-connect.

[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

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 2:

# Run OSPFv3 on PE 2.

<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

# Configure interface Loopback 0.

[PE2] interface loopback 0

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure VLAN-interface 11, the interface connected to PE 1.

[PE1] interface vlan-interface 11

[PE1-Vlan-interface11] ipv6 address 11::2/64

[PE1-Vlan-interface11] ospfv3 1 area 0

[PE1-Vlan-interface11] undo shutdown

[PE1-Vlan-interface11] quit

# Configure VLAN-interface 23, the interface connected to PE 3.

[PE1] interface vlan-interface 23

[PE1-Vlan-interface23] ipv6 address 23::1/64

[PE1-Vlan-interface23] ospfv3 1 area 0

[PE1-Vlan-interface23] undo shutdown

[PE1-Vlan-interface23] quit

# Configure PE 2 to establish IBGP neighbor relationships with PE 1 and PE 3, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1 and PE 3.

[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

# Assign an ESI to site-facing interface GigabitEthernet 1/0/1 and set its redundancy mode to all-active.

[PE2] interface gigabitethernet 1/0/1

[PE2-GigabitEthernet1/0/1] esi 1.1.1.1.1

[PE2-GigabitEthernet1/0/1] evpn redundancy-mode all-active

# Create Ethernet service instance 1000 to match VLAN 10 on 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

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1 and map Ethernet service instance 1000 on GigabitEthernet 1/0/1 to the cross-connect. Create an SRv6 tunnel on the cross-connect.

[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 1 remote-service-id 2

[PE2-xcg-vpna-pw1-1-2] quit

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE2-xcg-vpna-pw1] quit

[PE2-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure PE 3:

# Run OSPFv3 on PE 3.

<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

# Configure interface Loopback 0.

[PE3] interface loopback 0

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

[PE3-LoopBack0] ospfv3 1 area 0

[PE3-LoopBack0] quit

# Enable L2VPN.

[PE3] l2vpn enable

# Configure VLAN-interface 13, the interface connected to PE 1.

[PE3] interface vlan-interface 13

[PE3-Vlan-interface13] ipv6 address 13::3/64

[PE3-Vlan-interface13] ospfv3 1 area 0

[PE3-Vlan-interface13] undo shutdown

[PE3-Vlan-interface13] quit

# Configure VLAN-interface 23, the interface connected to PE 2.

[PE3] interface vlan-interface 23

[PE3-Vlan-interface23] ipv6 address 23::3/64

[PE3-Vlan-interface23] ospfv3 1 area 0

[PE3-Vlan-interface23] undo shutdown

[PE3-Vlan-interface23] quit

# Configure PE 3 to establish IBGP neighbor relationships with PE 1 and PE 2, and enable BGP EVPN to advertise routes in SRv6 encapsulation to PE 1 and PE 2.

[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

# Create Ethernet service instance 1000 to match VLAN 10 on GigabitEthernet 1/0/1.

[PE3] interface gigabitethernet 1/0/1

[PE3-GigabitEthernet1/0/1] service-instance 1000

[PE3-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 10

[PE3-GigabitEthernet1/0/1-srv1000] quit

[PE3-GigabitEthernet1/0/1] quit

# Create a cross-connect group named vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[PE3] xconnect-group vpna

[PE3-xcg-vpna] evpn encapsulation srv6

[PE3-xcg-vpna-evpn-srv6] route-distinguisher 1:1

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity

[PE3-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort

[PE3-xcg-vpna-evpn-srv6] quit

# Create cross-connect pw1 and map Ethernet service instance 1000 on GigabitEthernet 1/0/1 to the cross-connect. Create an SRv6 tunnel on the cross-connect.

[PE3-xcg-vpna] connection pw1

[PE3-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1 service-instance 1000

[PE3-xcg-vpna-pw1-GigabitEthernet1/0/1-srv1000] quit

[PE3-xcg-vpna-pw1] evpn local-service-id 2 remote-service-id 1

[PE3-xcg-vpna-pw1-2-1] quit

[PE3-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE3-xcg-vpna-pw1] quit

[PE3-xcg-vpna] quit

# Specify a source IP address for the outer IPv6 header of SRv6-encapsulated packets, and configure a locator to apply for End.DX2 SIDs.

[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.     Configure CE 2.

<CE2> system-view

[CE2] interface vlan-interface 10

[CE2-Vlan-interface10] ipv6 address 100::2 64

[CE2-Vlan-interface10] quit

Verifying the configuration

# Verify that PE 1 has established an SRv6 tunnel to PE 3.

[PE1] display l2vpn peer srv6

Total number of SRv6 Tunnels: 1

1 up, 0 blocked, 0 down

 

Xconnect-group Name: vpna

   Peer            : 3::3

   Flag            : Main

   State           : Up

   Remote SrvID    : 2

# Verify that PE 3 has established SRv6 tunnels to PE 1 and PE 2. The SRv6 tunnels are ECMP tunnels that load share traffic.

[PE3] display l2vpn peer srv6

Total number of SRv6 Tunnels: 2

2 up, 0 blocked, 0 down

 

Xconnect-group Name: vpna

   Peer            : 2::2

   Flag            : ECMP

   State           : Up

   Remote SrvID    : 1

 

   Peer            : 1::1

   Flag            : ECMP

   State           : Up

   Remote SrvID    : 1

# Verify that the SRv6 forwarding information on PE 1 and PE 3 is correct. You can see input and output SID information about the SRv6 tunnel.

[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             : 0x1         Type: BE    State: Up

In SID              : 111::1:0:3

Out SID             : 333::1:0:3

[PE3] display l2vpn forwarding srv6

Total number of cross-connections: 1

Total number of SRv6 tunnels: 2, 2 up, 0 blocked, 0 down

Xconnect-group Name : vpna

Connection Name     : pw1

Link ID             : 0x1         Type: BE    State: Up

In SID              : 333::1:0:3

Out SID             : 111::1:0:3

 

Link ID             : 0x1         Type: BE    State: Up

In SID              : 333::1:0:3

Out SID             : 222::1:0:3

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

# Verify that CE 1 and CE 2 can ping each other when the PW on PE 1 or PE 2 fails. (Details not shown.)

Example: Configuring LDP PWs as ACs for SRv6 PWs

Network configuration

As shown in Figure 12:

·     PE 1 and PE 2 are edge devices on both the MPLS network and SRv6 network.

·     Configure MPLS L2VPN on PE 1, PE 2, and PE 4, and configure the PEs to use LDP to establish LDP PWs.

·     Configure EVPN VPWS over SRv6 on PE 1, PE 2, and PE 3.

·     On PE 1 and PE 2, configure LDP PWs as UPWs (ACs) for SRv6 PWs to ensure that the MPLS L2VPN and EVPN VPWS over SRv6 networks can communicate with each other.

·     PE 4 is dual-homed to PE 1 and PE 2 through two LDP PWs (UPWs).

Figure 12 Network diagram

Device

Interface

IP address

Device

Interface

IP address

PE 1

Loop0

1::1/128

PE 3

Loop0

3::3/128

 

Loop0

1.1.1.9/32

 

GE1/0/1

-

 

Vlan-int15

10.1.1.1/24

 

Vlan-int13

10::3/64

 

Vlan-int13

10::1/64

 

Vlan-int23

30::3/64

 

Vlan-int11

20::1/64

PE 4

Loop0

4.4.4.9/32

PE 2

Loop0

2::2/128

 

Vlan-int15

10.1.1.4/24

 

Loop0

2.2.2.9/32

 

Vlan-int26

20.1.1.4/24

 

Vlan-int26

20.1.1.2/24

 

GE1/0/1

-

 

Vlan-int23

30::2/64

CE 1

Vlan-int10

100::1/64

 

Vlan-int11

20::2/64

CE2

Vlan-int10

100::2/64

 

Prerequisites

Create VLANs on all devices and assign interfaces to the VLANs.

Procedure

1.     Configure CE 1:

# Configure an IPv6 address and prefix length for VLAN-interface 10.

<CE1> system-view

[CE1] interface vlan-interface 10

[CE1-Vlan-interface10] ipv6 address 100::1 64

[CE1-Vlan-interface10] quit

2.     Configure PE 4:

# Configure MPLS basic capabilities.

<PE4> system-view

[PE4] interface loopback 0

[PE4-LoopBack0] ip address 4.4.4.9 32

[PE4-LoopBack0] quit

[PE4] mpls lsr-id 4.4.4.9

[PE4] mpls ldp

[PE4-ldp] quit

# Enable L2VPN.

[PE4] l2vpn enable

# Configure Ethernet service instance 10 on GigabitEthernet 1/0/1 to match VLAN 10.

[PE4] interface gigabitethernet 1/0/1

[PE4-GigabitEthernet1/0/1] port link-type trunk

[PE4-GigabitEthernet1/0/1] port trunk permit vlan 10

[PE4-GigabitEthernet1/0/1] service-instance 10

[PE4-GigabitEthernet1/0/1-srv10] encapsulation s-vid 10

[PE4-GigabitEthernet1/0/1-srv10] quit

[PE4-GigabitEthernet1/0/1] quit

# Create cross-connect group vpna, create cross-connect pw1 in the group, and map Ethernet service instance 10 on GigabitEthernet 1/0/1 to the cross-connect. Create an LDP PW for the cross-connect to associate the AC with the PW. Configure a backup PW for the PW and enable the dual receive feature for PW redundancy.

[PE4] xconnect-group vpna

[PE4-xcg-vpna] connection pw1

[PE4-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1 service-instance 10

[PE4-xcg-vpna-pw1-GigabitEthernet1/0/1] quit

[PE4-xcg-vpna-pw1] protection dual-receive

[PE4-xcg-vpna-pw1] peer 1.1.1.9 pw-id 500

[PE4-xcg-vpna-pw1-1.1.1.9-500] backup-peer 2.2.2.9 pw-id 500

[PE4-xcg-vpna-pw1-1.1.1.9-500-backup] quit

[PE4-xcg-vpna-pw1-1.1.1.9-500] quit

[PE4-xcg-vpna-pw1] quit

[PE4-xcg-vpna] quit

 

3.     Configure PE 1:

# Run OSPF on PE 1.

<PE1> system-view

[PE1] ospf

[PE1-ospf-1] router-id 1.1.1.9

[PE1-ospf-1] area 0

[PE1-ospf-1-area-0.0.0.0] network 1.1.1.9 0.0.0.0

[PE1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255

[PE1-ospf-1-area-0.0.0.0] quit

[PE1-ospf-1] quit

# Run OSPFv3 on PE 1.

[PE1] ospfv3

[PE1-ospfv3-1] router-id 1.1.1.9

[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

# Configure interface Loopback 0.

[PE1] interface loopback 0

[PE1-LoopBack0] ip address 1.1.1.9 32

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

[PE1-LoopBack0] ospfv3 1 area 0

[PE1-LoopBack0] quit

# Configure MPLS basic capabilities.

[PE1] mpls lsr-id 1.1.1.9

[PE1] mpls ldp

[PE1-ldp] quit

# Enable L2VPN.

[PE1] l2vpn enable

# Configure VLAN-interface 11, the interface connected to PE 2.

[PE1] interface vlan-interface 11

[PE1-Vlan-interface11] ipv6 address 20::1 64

[PE1-Vlan-interface11] ospfv3 1 area 0

[PE1-Vlan-interface11] undo shutdown

[PE1-Vlan-interface11] quit

# Configure VLAN-interface 13, the interface connected to PE 3.

[PE1] interface vlan-interface 13

[PE1-Vlan-interface13] ipv6 address 10::1 64

[PE1-Vlan-interface13] ospfv3 1 area 0

[PE1-Vlan-interface13] undo shutdown

[PE1-Vlan-interface13] quit

# Establish IBGP connections to PE 2 and PE 3, and enable BGP EVPN to advertise route information to PE 2 and PE 3.

[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

# Create cross-connect group vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1. Configure PE 1 to set up an UPW with PE 4, assign an ESI to the UPW, and set the redundancy mode of the UPW to all-active. Create an SRv6 PW for the cross-connect to associate the UPW with the SRv6 PW.

[PE1-xcg-vpna] connection pw1

[PE1-xcg-vpna-pw1] peer 4.4.4.9 pw-id 500

[PE1-xcg-vpna-pw1-4.4.4.9-500] esi 1.1.1.1.1

[PE1-xcg-vpna-pw1-4.4.4.9-500] evpn redundancy-mode all-active

[PE1-xcg-vpna-pw1-4.4.4.9-500] 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

# Configure a locator to apply for End.DX2 SIDs.

[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

 

4.     Configure PE 2:

# Run OSPF on PE 2.

<PE2> system-view

[PE2] ospf

[PE2-ospf-1] router-id 2.2.2.9

[PE2-ospf-1] area 0.0.0.0

[PE2-ospf-1-area-0.0.0.0] network 2.2.2.9 0.0.0.0

[PE2-ospf-1-area-0.0.0.0] network 20.1.1.0 0.0.0.255

[PE2-ospf-1-area-0.0.0.0] quit

[PE2-ospf-1] quit

# Run OSPFv3 on PE 2.

[PE2] ospfv3

[PE2-ospfv3-1] router-id 2.2.2.9

[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

# Configure interface Loopback 0.

[PE2] interface loopback 0

[PE2-LoopBack1] ip address 2.2.2.9 32

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

[PE2-LoopBack0] ospfv3 1 area 0

[PE2-LoopBack0] quit

# Enable L2VPN.

[PE2] l2vpn enable

# Configure VLAN-interface 11, the interface connected to PE 1.

[PE2] interface vlan-interface 11

[PE2-Vlan-interface11] ipv6 address 20::2 64

[PE2-Vlan-interface11] ospfv3 1 area 0

[PE2-Vlan-interface11] undo shutdown

[PE2-Vlan-interface11] quit

# Configure VLAN-interface 23, the interface connected to PE 3.

[PE2] interface vlan-interface 23

[PE2-Vlan-interface23] ipv6 address 30::2 64

[PE2-Vlan-interface23] ospfv3 1 area 0

[PE2-Vlan-interface23] undo shutdown

[PE2-Vlan-interface23] quit

# Establish IBGP connections to PE 1 and PE 3 and enable BGP EVPN to advertise route information to PE 1 and PE 3.

[PE2] bgp 100

[PE2-bgp-default] router-id 2.2.2.9

[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

# Create cross-connect group vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[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

# Create cross-connect pw1. Configure PE 2 to set up an UPW with PE 4, assign an ESI to the UPW, and set the redundancy mode of the UPW to all-active. Create an SRv6 PW for the cross-connect to associate the UPW with the SRv6 PW.

[PE2-xcg-vpna] connection pw1

[PE2-xcg-vpna-pw1] peer 4.4.4.9 pw-id 500

[PE2-xcg-vpna-pw1-4.4.4.9-500] esi 1.1.1.1.1

[PE2-xcg-vpna-pw1-4.4.4.9-500] evpn redundancy-mode all-active

[PE2-xcg-vpna-pw1-4.4.4.9-500] quit

[PE2-xcg-vpna-pw1] evpn local-service-id 1 remote-service-id 2

[PE2-xcg-vpna-pw1-1-2] quit

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE2-xcg-vpna-pw1] quit

[PE2-xcg-vpna] quit

# Configure a locator to apply for End.DX2 SIDs.

[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

 

5.     Configure PE 3:

# Run OSPFv3 on PE 3.

<PE3> system-view

[PE3] ospfv3

[PE3-ospfv3-1] router-id 3.3.3.9

[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

# Configure interface Loopback 0.

[PE3] interface loopback 0

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

[PE3-LoopBack0] ospfv3 1 area 0

[PE3-LoopBack0] quit

# Enable L2VPN.

[PE3] l2vpn enable

# Configure VLAN-interface 13, the interface connected to PE 1.

[PE3] interface vlan-interface 13

[PE3-Vlan-interface13] ipv6 address 10::3 64

[PE3-Vlan-interface13] ospfv3 1 area 0

[PE3-Vlan-interface13] undo shutdown

[PE3-Vlan-interface13] quit

# Configure VLAN-interface 23, the interface connected to PE 2.

[PE3] interface vlan-interface 23

[PE3-Vlan-interface23] ipv6 address 30::3 64

[PE3-Vlan-interface23] ospfv3 1 area 0

[PE3-Vlan-interface23] undo shutdown

[PE3-Vlan-interface23] quit

# Establish IBGP connections to PE 1 and PE 2, and enable BGP EVPN to advertise route information to PE 1 and PE 2.

[PE3] bgp 100

[PE3-bgp-default] router-id 3.3.3.9

[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

# Configure Ethernet service instance 1000 on GigabitEthernet 1/0/1 (the interface connected to CE 2) to match VLAN 10.

[PE3] interface gigabitethernet 1/0/1

[PE3-GigabitEthernet1/0/1] service-instance 1000

[PE3-GigabitEthernet1/0/1-srv1000] encapsulation s-vid 10

[PE3-GigabitEthernet1/0/1-srv1000] quit

[PE3-GigabitEthernet1/0/1] quit

# Create cross-connect group vpna, create an EVPN instance for it, and enable SRv6 encapsulation. Configure an RD and route targets for the EVPN instance and enable SRv6-BE route recursion mode.

[PE3] xconnect-group vpna

[PE3-xcg-vpna] evpn encapsulation srv6

[PE3-xcg-vpna-evpn-srv6] route-distinguisher 1:1

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 export-extcommunity

[PE3-xcg-vpna-evpn-srv6] vpn-target 1:1 import-extcommunity

[PE3-xcg-vpna-evpn-srv6] segment-routing ipv6 best-effort

[PE3-xcg-vpna-evpn-srv6] quit

# Create cross-connect pw1, map Ethernet service instance 1000 on GigabitEthernet 1/0/1 to the cross-connect, and create an SRv6 PW on the cross-connect to associate the AC with the SRv6 PW.

[PE3-xcg-vpna] connection pw1

[PE3-xcg-vpna-pw1] ac interface gigabitethernet 1/0/1 service-instance 1000

[PE3-xcg-vpna-pw1-GigabitEthernet1/0/1-srv1000] quit

[PE3-xcg-vpna-pw1] evpn local-service-id 2 remote-service-id 1

[PE3-xcg-vpna-pw1-2-1] quit

[PE2-xcg-vpna-pw1] segment-routing ipv6 locator aaa

[PE3-xcg-vpna-pw1] quit

[PE3-xcg-vpna] quit

# Configure a locator to apply for End.DX2 SIDs.

[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

 

6.     On CE 2, configure an IPv6 address for VLAN-interface 10.

<CE2> system-view

[CE2] interface vlan-interface 10

[CE2-Vlan-interface10] ipv6 address 100::2 64

[CE2-Vlan-interface10] quit

Verifying the configuration

# On PE 1, view detailed cross-connect group information. Verify that PE 1 has established an LDP PW with PE 4 and an SRv6 PW with PE 3.

[PE1] display l2vpn xconnect-group verbose

Xconnect-group Name: vpna

 Connection Name        : pw1

  Connection ID         : 0

  State                 : Up

  MTU                   : 1500

  PW Redundancy Mode    : Slave

  Diffserv Mode         : -

  LDP PWs:

    Peer            PW ID              Link ID    State       Flag

    4.4.4.9         500                0          Up          Main

    Create time: 2020-11-02 10:04:59

    Last time status changed: 2020-11-02 10:04:59

    Last time PW went down: 2020-11-02 10:04:59

  SRv6 tunnels:

   Peer        : 3::3

   Link ID     : 0x1

   State       : Up

# On PE 1, display detailed local ES information. Verify that the LDP PW (UPW) has multihoming settings.

[PE1] display evpn es local verbose

 

Xconnect-group name : vpna

 Connection name           : pw1

  ESI                      : 0001.0001.0001.0001.0001

  Redundancy mode          : All-active

  State                    : Up

  UPW Link ID              : 0

  Tag ID                   : -

  DF address               : -

# On PE 2, display detailed cross-connect group information. Verify that PE 2 has established an LDP PW with PE 4 and an SRv6 PW with PE 3.

[PE2] display l2vpn xconnect-group verbose

Xconnect-group Name: vpna

 Connection Name        : pw1

  Connection ID         : 0

  State                 : Up

  MTU                   : 1500

  PW Redundancy Mode    : Slave

  Diffserv Mode         : -

  LDP PWs:

    Peer            PW ID              Link ID    State       Flag

    4.4.4.9         500                0          Up          Main

    Create time: 2020-11-02 10:08:01

    Last time status changed: 2020-11-02 10:08:01

    Last time PW went down: 2020-11-02 10:08:01

  SRv6 tunnels:

   Peer        : 3::3

   Link ID     : 0x1

   State       : Up

# On PE 2, display detailed local ES information. Verify that the LDP PW (UPW) has multihoming settings.

[PE2] display evpn es local verbose

 

Xconnect-group name : vpna

 Connection name           : pw1

  ESI                      : 0001.0001.0001.0001.0001

  Redundancy mode          : All-active

  State                    : Up

  UPW Link ID              : 0

  Tag ID                   : -

  DF address               : -

# Verify that CE 1 and CE 2 can ping each other. (Details not shown.)

 

  • Cloud & AI
  • InterConnect
  • Intelligent Computing
  • Security
  • SMB Products
  • Intelligent Terminal Products
  • Product Support Services
  • Technical Service Solutions
All Services
  • Resource Center
  • Policy
  • Online Help
All Support
  • Become a Partner
  • Partner Resources
  • Partner Business Management
All Partners
  • Profile
  • News & Events
  • Online Exhibition Center
  • Contact Us
All About Us
新华三官网