This section describes how to configure EVPN L3VPNv6 over SRv6 TE Policy so that EVPN L3VPNv6 services can be carried over SRv6 TE Policies.
Usage Scenario
EVPN L3VPNv6 over SRv6 TE Policy uses public SRv6 TE Policies to carry EVPN L3VPNv6 services. As shown in Figure 1, PE1 and PE2 communicate through an IPv6 public network. An SRv6 TE Policy is deployed on the network to carry EVPN L3VPNv6 services.
Figure 1 EVPN L3VPNv6 over SRv6 TE Policy networking
Pre-configuration Tasks
Before configuring EVPN L3VPNv6 over SRv6 TE Policy, complete the following tasks:
Procedure
- Configure an L3VPN instance.
Run ip vpn-instance vpn-instance-name
A VPN instance is created, and the VPN instance view is displayed.
Run ipv6-family
The VPN instance IPv6 address family is enabled, and the view of this address family is displayed.
Run route-distinguisher route-distinguisher
An RD is configured for the VPN instance IPv6 address family.
Run vpn-target vpn-target &<1-8> [ both | export-extcommunity | import-extcommunity ] evpn
VPN targets are added to the VPN target list of the VPN instance IPv6 address family, so that routes of the VPN instance can be added to the routing table of the EVPN instance configured with a matching VPN target.
- (Optional) Run default-color color-value evpn
The default color value is specified for the L3VPNv6 service to recurse to an SRv6 TE Policy.
If a remote EVPN route without carrying the Color Extended Community is leaked to a local VPN instance, the default color value is used for the recursion.
(Optional) Run import route-policy policy-name evpn
The VPN instance IPv6 address family is associated with an import route-policy that is used to filter routes imported from the EVPN instance to the VPN instance IPv6 address family. To control route import more precisely, specify an import route-policy to filter routes and set route attributes for routes that meet the filter criteria.
(Optional) Run export route-policy policy-name evpn
The VPN instance IPv6 address family is associated with an export route-policy that is used to filter routes advertised from the VPN instance IPv6 address family to the EVPN instance. To control route advertisement more precisely, specify an export route-policy to filter routes and set route attributes for routes that meet the filter criteria.
Run quit
Exit the VPN instance IPv6 address family view.
Run quit
Exit the VPN instance view.
- Run commit
The configuration is committed.
- Bind the L3VPN instance to an access-side interface.
- Run interface interface-type interface-number
The interface view is displayed.
- Run ip binding vpn-instance vpn-instance-name
The L3VPN instance is bound to the interface.
- Run ipv6 enable
IPv6 is enabled on the interface.
- Run ipv6 address { ipv6-address prefix-length | ipv6-address/prefix-length }
An IPv6 address is configured for the interface.
- Run quit
Exit the interface view.
- Run commit
The configuration is committed.
- Configure BGP EVPN peers.
If a BGP RR needs to be configured on the network, establish BGP EVPN peer relationships between all the PEs and the RR.
- Run bgp { as-number-plain | as-number-dot }
BGP is enabled, and the BGP view is displayed.
- Run peer { ipv6-address | group-name } as-number { as-number-plain | as-number-dot }
The remote PE is configured as a peer.
- (Optional) Run peer { ipv6-address | group-name } connect-interface interface-type interface-number
A source interface and a source address are specified to set up a TCP connection with the BGP peer.
If loopback interfaces are used to establish a BGP connection, you are advised to run the peer connect-interface command on both ends to ensure the connectivity. If this command is run on one end only, the BGP connection may fail to be established.
- Run ipv6-family vpn-instance vpn-instance-name
The BGP-VPN instance IPv6 address family view is displayed.
- Run import-route { direct | isis process-id | static | ospfv3 process-id | ripng process-id } [ med med | route-policy route-policy-name ] *
Routes of other protocols are imported to the BGP-VPN instance IPv6 address family. To advertise host IP routes, configure import of direct routes. To advertise routes on the network segment where the host resides, use a dynamic routing protocol (such as OSPFv3) to advertise routes on the network segment and then perform this step to import the routes of the dynamic routing protocol.
- Run advertise l2vpn evpn [ import-route-multipath ]
The device is enabled to advertise IP prefix routes. IP prefix routes are used to advertise host IP routes as well as routes on the network segment where the host resides.
To implement SID-based load balancing, specify the import-route-multipath parameter for the device to advertise all IP prefix routes with the same destination address.
- Run quit
Exit the BGP-VPN instance IPv6 address family view.
- Run l2vpn-family evpn
The BGP EVPN address family view is displayed.
- Run peer { ipv6-address | group-name } enable
The device is enabled to exchange EVPN routes with the specified peer or peer group.
- Run peer { ipv6-address | group-name } advertise encap-type srv6
The device is enabled to send EVPN routes carrying SRv6-encapsulated attributes to the specified peer or peer group.
- Run quit
Exit the BGP EVPN address family view.
- Run quit
Exit the BGP view.
- Run commit
The configuration is committed.
- On each PE, configure EVPN L3VPNv6 services to recurse to an SRv6 TE Policy.
- Run segment-routing ipv6
SRv6 is enabled, and the SRv6 view is displayed.
- Run encapsulation source-address ipv6-address [ ip-ttl ttl-value ]
A source address is specified for SRv6 VPN encapsulation.
- Run locator locator-name [ ipv6-prefix ipv6-address prefix-length [ static static-length | args args-length ] * ]
An SRv6 locator is configured.
- (Optional) Run opcode func-opcode end-dt6 vpn-instance vpn-instance-name evpn
A static SID operation code (opcode) is configured.
Alternatively, run the opcode func-opcode end-dx6 vpn-instance vpn-instance-name evpn interface interface-type interface-number nexthop nexthop-ipv6-address command to configure a static SID opcode.
In EVPN scenarios, end-dx6 is used to allocate SIDs based on interfaces to which VPN instances are bound, and end-dt6 is used to allocate SIDs based on VPN instances.
End.DT6 and End.DX6 SIDs can be either dynamically allocated by BGP or manually configured. If you want to enable dynamic End.DT6 and End.DX6 SID allocation using the segment-routing ipv6 locator locator-name command, skip this step.
- Run quit
Exit the SRv6 locator view.
- Run quit
Exit the SRv6 view.
- Run bgp { as-number-plain | as-number-dot }
The BGP view is displayed.
- Run ipv6-family vpn-instance vpn-instance-name
The BGP-VPN instance IPv6 address family view is displayed.
- Run segment-routing ipv6 locator locator-name evpn
The device is enabled to add SIDs to VPN routes before sending the routes to EVPN.
- Run segment-routing ipv6 traffic-engineer [ best-effort ] evpn
The function to recurse EVPN L3VPNv6 services to SRv6 TE Policies is enabled.
If an SRv6 BE path exists on the network, you can set the best-effort parameter, allowing the SRv6 BE path to function as a best-effort path in the case of an SRv6 TE Policy fault.
- (Optional) Configure the device to allocate SIDs to BGP VPN IPv6 routes based on next hops, thereby implementing SID-based load balancing.
- Run commit
The configuration is committed.
Verifying the Configuration
After configuring EVPN L3VPNv6 over SRv6 TE Policy, verify the configuration.
Run the display bgp vpnv6 { all | route-distinguisher route-distinguisher | vpn-instance vpn-instance-name } routing-table [ network [ prefix-length ] ] command to check BGP VPNv6 route information. The command output shows that the value of Relay Tunnel Out-Interface is SRv6 TE Policy.
- Run the display bgp evpn all routing-table prefix-route prefix command to check EVPN IP prefix route information.
Run the display ipv6 routing-table vpn-instance vpn-instance-name command to check information about IPv6 VPN routes received from the remote end.
- Run the display ip vpn-instance vpn-instance-name tunnel-info nexthop nexthopIpv6Addr command to check information about the tunnel to which the route with the specified next hop recurses in each address family of the current VPN instance.