This article explains the transport tunnel assignment using vrf-import.
If configure a transport tunnel and configure vrf-import on the routing instance as in the example below, the protocol next-hop on the ccc route will be resolved from the transport RIB (i.e. junos-rti-tc-<xxx>.inet.3), but the protocol next-hop on <routing-instances>.evpn.0 is resolved from inet.3.
+----------[r1]-----green+ | + | [CE1]===ae1==[r0] |green [r3]=====[CE2] | + | +---green--[r2]----------+
(r0)
set routing-options transport-class auto-createset routing-options transport-class name tc-green color 103set routing-options transport-class name tc-green fallback none
set protocols mpls admin-groups green 3set protocols mpls label-switched-path r0-r3 to 10.0.0.3set protocols mpls label-switched-path r0-r3-green to 10.0.0.3set protocols mpls label-switched-path r0-r3-green admin-group include-all greenset protocols mpls label-switched-path r0-r3-green transport-class tc-greenset protocols mpls interface ge-0/0/1.0set protocols mpls interface ge-0/0/2.0 admin-group green
set routing-instances evpn-vpws1 instance-type evpn-vpwsset routing-instances evpn-vpws1 protocols evpn interface ae1.10 vpws-service-id local 100set routing-instances evpn-vpws1 protocols evpn interface ae1.10 vpws-service-id remote 101set routing-instances evpn-vpws1 interface ae1.10set routing-instances evpn-vpws1 vrf-import import-vrf1set routing-instances evpn-vpws1 vrf-export export-vrf1set routing-instances evpn-vpws1 vrf-target target:65500:1
set policy-options policy-statement export-vrf1 term t1 then community add evpnvpws1set policy-options policy-statement export-vrf1 term t1 then community add greenset policy-options policy-statement export-vrf1 term t1 then acceptset policy-options policy-statement import-vrf1 term t1 from protocols bgpset policy-options policy-statement import-vrf1 term t1 from community evpnvpws1set policy-options policy-statement import-vrf1 term t1 then community add greenset policy-options policy-statement import-vrf1 term t1 then acceptset policy-options community evpnvpws1 members target:65500:1set policy-options community green members color:0:103(r3)set routing-options transport-class auto-createset routing-options transport-class name tc-green color 103set routing-options transport-class name tc-green fallback noneset protocols mpls admin-groups green 3set protocols mpls label-switched-path r3-r0 to 10.0.0.0set protocols mpls label-switched-path r3-r0-green to 10.0.0.0set protocols mpls label-switched-path r3-r0-green admin-group include-all greenset protocols mpls label-switched-path r3-r0-green transport-class tc-greenset protocols mpls interface ge-0/0/4.0 admin-group greenset protocols mpls interface ge-0/0/5.0set routing-instances evpn-vpws2 instance-type evpn-vpwsset routing-instances evpn-vpws2 protocols evpn interface ae1.10 vpws-service-id local 101set routing-instances evpn-vpws2 protocols evpn interface ae1.10 vpws-service-id remote 100set routing-instances evpn-vpws2 interface ae1.10set routing-instances evpn-vpws2 vrf-import import-vrf1set routing-instances evpn-vpws2 vrf-export export-vrf1set routing-instances evpn-vpws2 vrf-target target:65500:1set policy-options policy-statement export-vrf1 term t1 then community add evpnvpws2set policy-options policy-statement export-vrf1 term t1 then acceptset policy-options policy-statement import-vrf1 term t1 from protocol bgpset policy-options policy-statement import-vrf1 term t1 from community evpnvpws2set policy-options policy-statement import-vrf1 term t1 then community add greenset policy-options policy-statement import-vrf1 term t1 then acceptset policy-options community evpnvpws2 members target:65500:1set policy-options community green members color:0:103*Please note that r3 does not add the color community in the export policy.In this case, when configuring transport-class fallback none, there is no issue with traffic forwarding, but the 'show evpn vpws-instance' display may cause confusion.
In the above example, the color community is added with vrf-export on r0, so the protocol next hop on bgp.evpn.0 and <routing-instances>.evpn.0 on the Remote PE is resolved from the transport RIB.However, for r0, since the color community is not added on bgp.evpn.0 ( in this example, because the color community is not added in export policy on r3), the protocol next hop will be resolved from inet.3.
root@r0> show route<...>inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both10.0.0.3/32 *[RSVP/7/1] 00:04:47, metric 2 > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r3junos-rti-tc-103.inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both10.0.0.3/32 *[RSVP/7/1] 00:00:31, metric 2 > to 2.1.1.2 via ge-0/0/2.0, label-switched-path r0-r3-greenmpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both0 *[MPLS/0] 16:53:36, metric 1 to table inet.00(S=0) *[MPLS/0] 16:53:36, metric 1 to table mpls.01 *[MPLS/0] 16:53:36, metric 1 Receive2 *[MPLS/0] 16:53:36, metric 1 to table inet6.02(S=0) *[MPLS/0] 16:53:36, metric 1 to table mpls.013 *[MPLS/0] 16:53:36, metric 1 Receive16 *[EVPN/7] 00:57:19 > via ae1.10, Pop20 *[EVPN/7] 00:00:31, remote-pe 10.0.0.3, routing-instance evpn-vpws1, route-type Egress, vpws-service-id 101 > to 2.1.1.2 via ge-0/0/2.0, label-switched-path r0-r3-greenae1.10 *[EVPN/7] 00:00:31, route-type Egress > to 2.1.1.2 via ge-0/0/2.0, label-switched-path r0-r3-green<...>bgp.evpn.0: 5 destinations, 7 routes (5 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both1:10.0.0.0:0::010a0000000100000200::FFFF:FFFF/192 AD/ESI *[EVPN/170] 00:57:18 Indirect1:10.0.0.3:0::010a0000020100000200::FFFF:FFFF/192 AD/ESI *[BGP/170] 00:04:48, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r3 [BGP/170] 00:04:48, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r31:65500:1::010a0000000100000200::100/192 AD/EVI *[EVPN/170] 00:49:59 Indirect1:65500:1::010a0000020100000200::101/192 AD/EVI *[BGP/170] 00:04:48, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r3 [BGP/170] 00:04:48, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r34:10.0.0.0:0::010a0000000100000200:10.0.0.0/296 ES *[EVPN/170] 00:57:19 Indirectevpn-vpws1.evpn.0: 3 destinations, 5 routes (3 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both1:10.0.0.3:0::010a0000020100000200::FFFF:FFFF/192 AD/ESI *[BGP/170] 00:04:48, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r3 [BGP/170] 00:04:48, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r31:65500:1::010a0000000100000200::100/192 AD/EVI *[EVPN/170] 00:57:19 Indirect1:65500:1::010a0000020100000200::101/192 AD/EVI *[BGP/170] 00:04:48, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r3 [BGP/170] 00:04:48, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 1.1.1.2 via ge-0/0/1.0, label-switched-path r0-r3
root@r3> show route<...>inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both10.0.0.0/32 *[RSVP/7/1] 00:05:02, metric 2 > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0junos-rti-tc-103.inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both10.0.0.0/32 *[RSVP/7/1] 00:01:24, metric 2 > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-greenmpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both0 *[MPLS/0] 15:23:47, metric 1 to table inet.00(S=0) *[MPLS/0] 15:23:47, metric 1 to table mpls.01 *[MPLS/0] 15:23:47, metric 1 Receive2 *[MPLS/0] 15:23:47, metric 1 to table inet6.02(S=0) *[MPLS/0] 15:23:47, metric 1 to table mpls.013 *[MPLS/0] 15:23:47, metric 1 Receive16 *[EVPN/7] 00:57:12 > via ae1.10, Pop21 *[EVPN/7] 00:01:24, remote-pe 10.0.0.0, routing-instance evpn-vpws2, route-type Egress, vpws-service-id 100 > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-greenae1.10 *[EVPN/7] 00:01:24, route-type Egress > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-green<...>bgp.evpn.0: 5 destinations, 7 routes (5 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both1:10.0.0.0:0::010a0000000100000200::FFFF:FFFF/192 AD/ESI *[BGP/170] 00:05:12, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0 [BGP/170] 00:05:12, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r01:10.0.0.3:0::010a0000020100000200::FFFF:FFFF/192 AD/ESI *[EVPN/170] 00:57:11 Indirect1:65500:1::010a0000000100000200::100/192 AD/EVI *[BGP/170] 00:01:24, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-green [BGP/170] 00:01:24, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-green1:65500:1::010a0000020100000200::101/192 AD/EVI *[EVPN/170] 00:57:12 Indirect4:10.0.0.3:0::010a0000020100000200:10.0.0.3/296 ES *[EVPN/170] 00:57:12 Indirectevpn-vpws2.evpn.0: 3 destinations, 5 routes (3 active, 0 holddown, 0 hidden)+ = Active Route, - = Last Active, * = Both1:10.0.0.0:0::010a0000000100000200::FFFF:FFFF/192 AD/ESI *[BGP/170] 00:05:12, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0 [BGP/170] 00:05:12, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r01:65500:1::010a0000000100000200::100/192 AD/EVI *[BGP/170] 00:01:24, localpref 100, from 10.0.0.1 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-green [BGP/170] 00:01:24, localpref 100, from 10.0.0.2 AS path: I, validation-state: unverified > to 4.1.1.2 via ge-0/0/4.0, label-switched-path r3-r0-green1:65500:1::010a0000020100000200::101/192 AD/EVI *[EVPN/170] 00:57:12 Indirect
If the transport tunnel down for some reason, route will be hidden and Remote SID information will be removed in the output of 'show evpn vpws-instance' on the Remote PE.
However, it is not removed on the output of 'show evpn vpws-instance' on the local PE.
root@r3> show route hidden
inet.0: 18 destinations, 18 routes (18 active, 0 holddown, 0 hidden)
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
mpls.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
bgp.evpn.0: 5 destinations, 7 routes (4 active, 0 holddown, 2 hidden)
+ = Active Route, - = Last Active, * = Both
1:65500:1::010a0000000100000200::100/192 AD/EVI
[BGP/170] 00:00:35, localpref 100, from 10.0.0.2
AS path: I, validation-state: unverified
Unusable
[BGP/170] 00:00:35, localpref 100, from 10.0.0.1
evpn-vpws1.evpn.0: 3 destinations, 5 routes (2 active, 0 holddown, 2 hidden)
root@r3> show evpn vpws-instance
Instance: evpn-vpws1, Instance type: EVPN VPWS, Encapsulation type: MPLS
Route Distinguisher: 65500:1
Number of local interfaces: 1 (1 up)
Interface name ESI Mode Role Status Control-Word Flow-Label-Tx Flow-Label-Rx
ae1.10 01:0a:00:00:02:01:00:00:02:00 single-active Primary Up No No No
Local SID: 101 Advertised Label: 19
Remote SID: 100
Number of protect interfaces: 0
Fast Convergence Information
ESI: 01:0a:00:00:00:01:00:00:02:00 Number of PE nodes: 1
PE: 10.0.0.0
DF Election Information for Single-Active ESI
ESI: 01:0a:00:00:02:01:00:00:02:00
DF Election Algorithm: Preference based
LACP OOS on NDF: Enabled
Primary PE: 10.0.0.3, Preference: 90
ESI granularity: Per ESI
Last DF Election: 2024-06-05 00:23:28
root@r0> show evpn vpws-instance
ae1.10 01:0a:00:00:00:01:00:00:02:00 single-active Primary Up No No No
Local SID: 100 Advertised Label: 16
Remote SID: 101
PE addr ESI Label End.Dx2 SID Mode Role TS Status
10.0.0.3 01:0a:00:00:02:01:00:00:02:00 19 single-active Primary 2024-06-05 00:22:16.159 Resolved
ESI: 01:0a:00:00:02:01:00:00:02:00 Number of PE nodes: 1
PE: 10.0.0.3
Advertised SID: 101
ESI: 01:0a:00:00:00:01:00:00:02:00
Primary PE: 10.0.0.0, Preference: 105
Last DF Election: 2024-06-05 00:22:26
This behavior is design.
Please add the color community with vrf-export on the Remote PE side as well if necessary.
PR1810215