Configuring EVPN-VPWS over SRv6 with Traffic Engineering
Starting in Junos OS Evolved 25.2R1, the ACX Series routers support EVPN-VPWS over SRv6 traffic engineering (TE) tunnels with fallback capability. While EVPN services themselves do not support the fallback switchover of routes, you can configure segment routing policies to define a secondary route. If the primary path becomes unavailable, the device automatically switches to the secondary route as a backup.
To configure EVPN-VPWS over SRv6 TE routes, you must define SRv6 TE routes and their associated transport classes. When SRv6 TE is configured with a color (transport class), the resulting route is installed in the colored routing table rti-tc-<color>.inet6.3. This is referred to as the intent route. The associated locator prefix route is installed in the default table inet6.3 and is known as the non-intent route or best-effort route.
By utilizing SRv6 TE routes, you can ensure that intended routes with lower metrics are prioritized while maintaining best-effort routes as fallback options. This ensures that your primary routes are optimized for performance, and in the event of a failure, there is an automatic switch to the best-effort routes to maintain service continuity.
By default, Junos OS Evolved enables fallback to best-effort routes for auto-created transport classes. To configure TE routes without fallback, you must run the CLI command set protocols sr-te transport-class fallback none at the top of the hierarchy. This command ensures that only the preferred TE routes are utilized where best-effort routes are not acceptable.
Junos OS Evolved supports both single-homing and multi-homing networks for these services.
In Figure 1, we have a topology with two possible paths from CE1 to CE4. The basic steps for configuring EVPN-VPWS over SRv6 with traffic engineering on the ingress device (PE1) is as follow.
Configure the node locator SID within the IS-IS protocol.
protocols { isis { source-packet-routing { srv6 { locator One micro-node-sid; } } } }Configure EVPN-VPWS services.
routing-instances { evpn-vpws1 { instance-type evpn-vpws; protocols { evpn { interface ae0.1 { vpws-service-id { local 111; remote 555; source-packet-routing { srv6 locator one; } } } } } interface ae0.1; route-distinguisher 10.255.1.1:1; vrf-export transport-class-vrf-export-evpn1; } }Configure support for micro-SID and SRv6.
routing-options { source-packet-routing { srv6 { locator one{ 2001:db8:a1::/48; micro-sid; }Define the transport class at the ingress or egress node. For this example, we define a gold transport class and assign community value.
routing-options { transport-class { auto-create; name transport-class-gold { color 100; } } }Configure import or export policies to route traffic. For this example, we use an export policy.
policy-statement transport-class-vrf-export-evpn1 { term a { then { community add transport-class-gold; community add transport-class-route-target1; accept; } } term b { then reject; } } community transport-class-gold members color:0:100; community transport-class-route-target1 members target:100:1;Configure source path route to the remote device and the hops for the primary and secondary paths.
Note:Use the loopback address of the remote device for the tunnel endpoint.
source-packet-routing { segment-list sl-primary { srv6; hop-1 { micro-srv6-sid { 2001:db8:a1:2222::; } } hop-2 { micro-srv6-sid { 2001:db8:a1:3333::; } } hop-3 { micro-srv6-sid { 2001:db8:a1:5555::; } } } segment-list sl-secondary { srv6; hop-s1 { micro-srv6-sid { 2001:db8:a1:6666::; } } hop-s2 { micro-srv6-sid { 2001:db8:a1:5555::; } } } source-routing-path sr-path-CE4 { srv6; to 2001:db8:a1:44:44:44:44:44; color 100; primary { sl-primary; } secondary { sl-secondary; } } }
EVPN-VPWS FXC with SRv6
The flexible cross-connect (FXC) with SRv6 provides a method for scalable pseudowire (PW) signaling across multiple user network interfaces (UNIs) or customer edge (CE) devices. This feature simplifies the encapsulation process by using a single label for MPLS encapsulation or a single DX2V SRv6 SID, allowing for streamlined auto-discovery per Ethernet VPN instance (EVI) route.
FXC supports both VLAN unaware and VLAN aware configurations.
VLAN unaware - The FXC sends a single auto-discovery (A-D) per EVI route, simplifying signaling by treating all VLANs uniformly.
VLAN aware - The FXC sends one A-D per EVI route for each VLAN, enabling granular control over VLAN-specific signaling.
Both VLAN-unaware and VLAN-aware modes support static and dynamic segment routing header (SRH) as well as static and dynamic micro-SID segment routing. The basic steps to configure each mode is shown below.
Egress protection is not supported for EVPN-VPWS FXC instances.
- Configure Static SRH END.DX2V for EVPN-VPWS FXC in VLAN Unaware
- Configure Dynamic SRH END.DX2V for EVPN-VPWS FXC in VLAN Unaware
- Configure Static micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Unaware
- Configure Dynamic micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Unaware
- Configure Static SRH END.DX2V for EVPN-VPWS FXC in VLAN Aware
- Configure Dynamic SRH END.DX2V for EVPN-VPWS FXC in VLAN Aware
- Configure Static micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Aware
- Configure Dynamic micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Aware
Configure Static SRH END.DX2V for EVPN-VPWS FXC in VLAN Unaware
Configure the SRv6 locator and disable reduced SRH to ensure classic SRH.
set routing-options source-packet-routing srv6 locator loc 1001::/64 set routing-options source-packet-routing srv6 no-reduced-srh
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-unaware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-unaware
Configure EVPN group with interfaces and service IDs.
set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.0 set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.1 set routing-instances vpws1 protocols evpn group g1 service-id local 666 set routing-instances vpws1 protocols evpn group g1 service-id remote 555
Configure static END.DX2V SID.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator loc end-dx2v-sid 1001:0:0:0:3:0:0:0
The following output shows a sample static SRH FXC instance configured in VLAN-unaware mode.
routing-options {
source-packet-routing {
srv6 {
locator loc {
prefix 1001::/64;
}
no-reduced-srh;
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
flexible-cross-connect-vlan-unaware;
+ source-packet-routing {
+ srv6 {
+ locator loc end-dx2v-sid 1001:0:0:0:3:0:0:0;
+ }
+ }
encapsulation srv6;
group g1 {
interface et-0/0/20.0;
interface et-0/0/20.1;
service-id {
local 666;
remote 555;
}
}
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Dynamic SRH END.DX2V for EVPN-VPWS FXC in VLAN Unaware
Configure the SRv6 locator and disable reduced SRH to ensure classic SRH.
set routing-options source-packet-routing srv6 locator loc 1001::/64 set routing-options source-packet-routing srv6 no-reduced-srh
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-unaware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-unaware
Configure EVPN group with interfaces and service IDs.
set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.0 set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.1 set routing-instances vpws1 protocols evpn group g1 service-id local 666 set routing-instances vpws1 protocols evpn group g1 service-id remote 555
Configure dynamic END.DX2V SID assignment.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator loc
The following output shows a sample dynamic SRH FXC instance configured in VLAN-unaware mode.
routing-options {
source-packet-routing {
srv6 {
locator loc {
prefix 1001::/64;
}
no-reduced-srh;
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
flexible-cross-connect-vlan-unaware;
+ source-packet-routing {
+ srv6 {
+ locator loc;
+ }
+ }
encapsulation srv6;
group g1 {
interface et-0/0/20.0;
interface et-0/0/20.1;
service-id {
local 666;
remote 555;
}
}
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Static micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Unaware
Reserve the micro-SID block.
set routing-options source-packet-routing srv6 block usid_blk_with_statics fcbb:bb01::/32 set routing-options source-packet-routing srv6 block usid_blk_with_statics local-micro-sid maximum-static-sids 2000
Configure the SRv6 locator from the reserved micro-SID block.
set routing-options source-packet-routing srv6 locator u_loc fcbb:bb01:100::/48 set routing-options source-packet-routing srv6 locator u_loc micro-sid block-name usid_blk_with_statics
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-unaware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-unaware
Configure EVPN group with interfaces and service IDs.
set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.0 set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.1 set routing-instances vpws1 protocols evpn group g1 service-id local 666 set routing-instances vpws1 protocols evpn group g1 service-id remote 555
Configure static micro-SID END.DX2V.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator u_loc micro-dx2v-sid 0xFF01
The following output shows a sample static micro-SID FXC instance configured in VLAN-unaware mode.
routing-options {
source-packet-routing {
srv6 {
block usid_blk_with_statics {
prefix fcbb:bb01::/32;
local-micro-sid {
maximum-static-sids 2000;
}
}
locator u_loc {
prefix fcbb:bb01:100::/48;
micro-sid {
block-name usid_blk_with_statics;
}
}
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
flexible-cross-connect-vlan-unaware;
+ source-packet-routing {
+ srv6 {
+ locator u_loc micro-dx2v-sid 0xFF01;
+ }
+ }
encapsulation srv6;
group g1 {
interface et-0/0/20.0;
interface et-0/0/20.1;
service-id {
local 666;
remote 555;
}
}
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Dynamic micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Unaware
Configure the SRv6 locator with micro-sid.
set routing-options source-packet-routing srv6 locator loc 1001::/64 set routing-options source-packet-routing srv6 locator loc micro-sid
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-unaware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-unaware
Configure EVPN group with interfaces and service IDs.
set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.0 set routing-instances vpws1 protocols evpn group g1 interface et-0/0/20.1 set routing-instances vpws1 protocols evpn group g1 service-id local 666 set routing-instances vpws1 protocols evpn group g1 service-id remote 555
Configure dynamic micro-SID END.DX2V assignment.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator loc
The following output shows a sample dynamic micro-SID FXC instance configured in VLAN-unaware mode.
routing-options {
source-packet-routing {
srv6 {
locator loc {
prefix 1001::/64;
micro-sid;
}
}
}
}routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
flexible-cross-connect-vlan-unaware;
+ source-packet-routing {
+ srv6 {
+ locator loc;
+ }
+ }
encapsulation srv6;
group g1 {
interface et-0/0/20.0;
interface et-0/0/20.1;
service-id {
local 666;
remote 555;
}
}
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Static SRH END.DX2V for EVPN-VPWS FXC in VLAN Aware
Configure the SRv6 locator and disable reduced SRH to ensure classic SRH.
set routing-options source-packet-routing srv6 locator loc 1001::/64 set routing-options source-packet-routing srv6 no-reduced-srh
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-aware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-aware
Configure PW service IDs.
set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id local 666 set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id remote 555 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id local 444 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id remote 333
Configure static END.DX2V SID.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator loc end-dx2v-sid 1001:0:0:0:3:0:0:0
The following output shows a sample static SRH FXC instance configured in VLAN-aware mode.
routing-options {
source-packet-routing {
srv6 {
locator loc {
prefix 1001::/64;
}
no-reduced-srh;
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
interface et-0/0/20.0 {
vpws-service-id {
local 666;
remote 555;
}
}
interface et-0/0/20.1 {
vpws-service-id {
local 444;
remote 333;
}
}
flexible-cross-connect-vlan-aware;
+ source-packet-routing {
+ srv6 {
+ locator loc end-dx2v-sid 1001:0:0:0:3:0:0:0;
+ }
+ }
encapsulation srv6;
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Dynamic SRH END.DX2V for EVPN-VPWS FXC in VLAN Aware
Configure the SRv6 locator and disable reduced SRH to ensure classic SRH.
set routing-options source-packet-routing srv6 locator loc 1001::/64 set routing-options source-packet-routing srv6 no-reduced-srh
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-aware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-aware
Configure PW service IDs.
set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id local 666 set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id remote 555 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id local 444 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id remote 333
Configure dynamic END.DX2V SID assignment.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator loc
The following output shows a sample dynamic SRH FXC instance configured in VLAN-aware mode.
routing-options {
source-packet-routing {
srv6 {
locator loc {
prefix 1001::/64;
}
no-reduced-srh;
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
interface et-0/0/20.0 {
vpws-service-id {
local 666;
remote 555;
}
}
interface et-0/0/20.1 {
vpws-service-id {
local 444;
remote 333;
}
}
flexible-cross-connect-vlan-aware;
+ source-packet-routing {
+ srv6 {
+ locator loc;
+ }
+ }
encapsulation srv6;
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Static micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Aware
Reserve the micro-SID block.
set routing-options source-packet-routing srv6 block usid_blk_with_statics fcbb:bb01::/32 set routing-options source-packet-routing srv6 block usid_blk_with_statics local-micro-sid maximum-static-sids 2000
Configure the SRv6 locator from the reserved micro-SID block.
set routing-options source-packet-routing srv6 locator u_loc fcbb:bb01:100::/48 set routing-options source-packet-routing srv6 locator u_loc micro-sid block-name usid_blk_with_statics
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-aware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-aware
Configure PW service IDs.
set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id local 666 set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id remote 555 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id local 444 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id remote 333
Configure static micro-SID END.DX2V.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator u_loc micro-dx2v-sid 0xFF01
The following output shows a sample static micro-SID FXC instance configured in VLAN-aware mode.
routing-options {
source-packet-routing {
srv6 {
block usid_blk_with_statics {
prefix fcbb:bb01::/32;
local-micro-sid {
maximum-static-sids 2000;
}
}
locator u_loc {
prefix fcbb:bb01:100::/48;
micro-sid {
block-name usid_blk_with_statics;
}
}
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
interface et-0/0/20.0 {
vpws-service-id {
local 666;
remote 555;
}
}
interface et-0/0/20.1 {
vpws-service-id {
local 444;
remote 333;
}
}
flexible-cross-connect-vlan-aware;
+ source-packet-routing {
+ srv6 {
+ locator u_loc micro-dx2v-sid 0xFF01;
+ }
+ }
encapsulation srv6;
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}
Configure Dynamic micro-SID END.DX2V for EVPN-VPWS FXC in VLAN Aware
Configure the SRv6 locator with micro-sid.
set routing-options source-packet-routing srv6 locator loc 1001::/64 set routing-options source-packet-routing srv6 locator loc micro-sid
Configure the EVPN-VPWS routing instance.
set routing-instances vpws1 instance-type evpn-vpws set routing-instances vpws1 interface et-0/0/20.0 set routing-instances vpws1 interface et-0/0/20.1 set routing-instances vpws1 route-distinguisher 1:7 set routing-instances vpws1 vrf-target target:1:77
Configure EVPN protocol for VLAN-aware FXC.
set routing-instances vpws1 protocols evpn encapsulation srv6 set routing-instances vpws1 protocols evpn flexible-cross-connect-vlan-aware
Configure PW service IDs.
set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id local 666 set routing-instances vpws1 protocols evpn interface et-0/0/20.0 vpws-service-id remote 555 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id local 444 set routing-instances vpws1 protocols evpn interface et-0/0/20.1 vpws-service-id remote 333
Configure dynamic micro-SID END.DX2V assignment.
set routing-instances vpws1 protocols evpn source-packet-routing srv6 locator loc
The following output shows a sample dynamic micro-SID FXC instance configured in VLAN-aware mode.
routing-options {
source-packet-routing {
srv6 {
locator loc {
prefix 1001::/64;
micro-sid;
}
}
}
}
routing-instances {
vpws1 {
instance-type evpn-vpws;
protocols {
evpn {
interface et-0/0/20.0 {
vpws-service-id {
local 666;
remote 555;
}
}
interface et-0/0/20.1 {
vpws-service-id {
local 444;
remote 333;
}
}
flexible-cross-connect-vlan-aware;
+ source-packet-routing {
+ srv6 {
+ locator loc;
+ }
+ }
encapsulation srv6;
}
}
interface et-0/0/20.0;
interface et-0/0/20.1;
route-distinguisher 1:7;
vrf-target target:1:77;
}
}