Description

This article explains the transport tunnel assignment using vrf-import.

Symptoms

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-create
set routing-options transport-class name tc-green color 103
set routing-options transport-class name tc-green fallback none

 

set protocols mpls admin-groups green 3
set protocols mpls label-switched-path r0-r3 to 10.0.0.3
set protocols mpls label-switched-path r0-r3-green to 10.0.0.3
set protocols mpls label-switched-path r0-r3-green admin-group include-all green
set protocols mpls label-switched-path r0-r3-green transport-class tc-green
set protocols mpls interface ge-0/0/1.0
set protocols mpls interface ge-0/0/2.0 admin-group green

 

set routing-instances evpn-vpws1 instance-type evpn-vpws
set routing-instances evpn-vpws1 protocols evpn interface ae1.10 vpws-service-id local 100
set routing-instances evpn-vpws1 protocols evpn interface ae1.10 vpws-service-id remote 101
set routing-instances evpn-vpws1 interface ae1.10
set routing-instances evpn-vpws1 vrf-import import-vrf1
set routing-instances evpn-vpws1 vrf-export export-vrf1
set routing-instances evpn-vpws1 vrf-target target:65500:1


set policy-options policy-statement export-vrf1 term t1 then community add evpnvpws1
set policy-options policy-statement export-vrf1 term t1 then community add green
set policy-options policy-statement export-vrf1 term t1 then accept
set policy-options policy-statement import-vrf1 term t1 from protocols bgp
set policy-options policy-statement import-vrf1 term t1 from community evpnvpws1
set policy-options policy-statement import-vrf1 term t1 then community add green
set policy-options policy-statement import-vrf1 term t1 then accept
set policy-options community evpnvpws1 members target:65500:1
set policy-options community green members color:0:103

(r3)
set routing-options transport-class auto-create
set routing-options transport-class name tc-green color 103
set routing-options transport-class name tc-green fallback none

set protocols mpls admin-groups green 3
set protocols mpls label-switched-path r3-r0 to 10.0.0.0
set protocols mpls label-switched-path r3-r0-green to 10.0.0.0
set protocols mpls label-switched-path r3-r0-green admin-group include-all green
set protocols mpls label-switched-path r3-r0-green transport-class tc-green
set protocols mpls interface ge-0/0/4.0 admin-group green
set protocols mpls interface ge-0/0/5.0

set routing-instances evpn-vpws2 instance-type evpn-vpws
set routing-instances evpn-vpws2 protocols evpn interface ae1.10 vpws-service-id local 101
set routing-instances evpn-vpws2 protocols evpn interface ae1.10 vpws-service-id remote 100
set routing-instances evpn-vpws2 interface ae1.10
set routing-instances evpn-vpws2 vrf-import import-vrf1
set routing-instances evpn-vpws2 vrf-export export-vrf1
set routing-instances evpn-vpws2 vrf-target target:65500:1

set policy-options policy-statement export-vrf1 term t1 then community add evpnvpws2
set policy-options policy-statement export-vrf1 term t1 then accept
set policy-options policy-statement import-vrf1 term t1 from protocol bgp
set policy-options policy-statement import-vrf1 term t1 from community evpnvpws2
set policy-options policy-statement import-vrf1 term t1 then community add green
set policy-options policy-statement import-vrf1 term t1 then accept
set policy-options community evpnvpws2 members target:65500:1
set 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, * = Both

10.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-r3

junos-rti-tc-103.inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.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-green

mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0                  *[MPLS/0] 16:53:36, metric 1
                       to table inet.0
0(S=0)             *[MPLS/0] 16:53:36, metric 1
                       to table mpls.0
1                  *[MPLS/0] 16:53:36, metric 1
                       Receive
2                  *[MPLS/0] 16:53:36, metric 1
                       to table inet6.0
2(S=0)             *[MPLS/0] 16:53:36, metric 1
                       to table mpls.0
13                 *[MPLS/0] 16:53:36, metric 1
                       Receive
16                 *[EVPN/7] 00:57:19
                    >  via ae1.10, Pop
20                 *[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-green
ae1.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, * = Both

1:10.0.0.0:0::010a0000000100000200::FFFF:FFFF/192 AD/ESI
                   *[EVPN/170] 00:57:18
                       Indirect
1: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-r3
1:65500:1::010a0000000100000200::100/192 AD/EVI
                   *[EVPN/170] 00:49:59
                       Indirect
1: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
4:10.0.0.0:0::010a0000000100000200:10.0.0.0/296 ES
                   *[EVPN/170] 00:57:19
                       Indirect

evpn-vpws1.evpn.0: 3 destinations, 5 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1: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-r3
1:65500:1::010a0000000100000200::100/192 AD/EVI
                   *[EVPN/170] 00:57:19
                       Indirect
1: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, * = Both

10.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-r0

junos-rti-tc-103.inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

10.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-green

mpls.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

0                  *[MPLS/0] 15:23:47, metric 1
                       to table inet.0
0(S=0)             *[MPLS/0] 15:23:47, metric 1
                       to table mpls.0
1                  *[MPLS/0] 15:23:47, metric 1
                       Receive
2                  *[MPLS/0] 15:23:47, metric 1
                       to table inet6.0
2(S=0)             *[MPLS/0] 15:23:47, metric 1
                       to table mpls.0
13                 *[MPLS/0] 15:23:47, metric 1
                       Receive
16                 *[EVPN/7] 00:57:12
                    >  via ae1.10, Pop
21                 *[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-green
ae1.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, * = Both

1: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-r0
1:10.0.0.3:0::010a0000020100000200::FFFF:FFFF/192 AD/ESI
                   *[EVPN/170] 00:57:11
                       Indirect
1: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-green
1:65500:1::010a0000020100000200::101/192 AD/EVI
                   *[EVPN/170] 00:57:12
                       Indirect
4:10.0.0.3:0::010a0000020100000200:10.0.0.3/296 ES
                   *[EVPN/170] 00:57:12
                       Indirect

evpn-vpws2.evpn.0: 3 destinations, 5 routes (3 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both

1: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-r0
1: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-green
1: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

           AS path: I, validation-state: unverified

            Unusable

 

evpn-vpws1.evpn.0: 3 destinations, 5 routes (2 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

           AS path: I, validation-state: unverified

            Unusable

 

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

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: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

 Number of protect interfaces: 0

 

  Fast Convergence Information

  ESI: 01:0a:00:00:02:01:00:00:02:00 Number of PE nodes: 1

    PE: 10.0.0.3

      Advertised SID: 101

 

  DF Election Information for Single-Active ESI

  ESI: 01:0a:00:00:00:01:00:00:02:00

  DF Election Algorithm: Preference based

  LACP OOS on NDF: Enabled

  Primary PE: 10.0.0.0, Preference: 105

  ESI granularity: Per ESI

  Last DF Election: 2024-06-05 00:22:26

Solution

This behavior is design.

Please add the color community with vrf-export on the Remote PE side as well if necessary.

Modification History

2024-06-03 : Article Created

Related Information

PR1810215