BGP Diverse Path Route Reflector Explained - Shadow RR

« 2023 Mar 19 »

What is BGP Diverse Path?

The BGP Diverse-Path feature is configured on a Shadow Route Reflector to advertise a backup path. A Shadow RR is a secondary (backup) RR that only advertises an alternative path (a backup, diverse path) to its RR clients. In other words, the Shadow RR does not advertise its best path, but instead its RR clients only receive the alternative path to a particular destination prefix as shown in the following image.

BGP Diverse Path Shadow RR introduction

The following example configuration makes RR2 advertise only a backup path to its RR Client PE1. The configuration needs to be applied on the RR only, there is no need for additional configuration on the PE router.

RR2#show run | sec ^router bgp
router bgp 65001
 bgp router-id 2.2.2.2
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 65001
 neighbor 1.1.1.1 update-source Loopback10
 !
 address-family vpnv4
  bgp additional-paths install
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-community extended
  neighbor 1.1.1.1 route-reflector-client
  neighbor 1.1.1.1 advertise diverse-path backup
 exit-address-family

BGP Diverse-Path configuration

In the following example scenario Site 1 and Site 2 are connected over an MPLS L3VPN Service Provider network which as redundant Route Reflectors configured. The primary RR is R10 which advertises the best path to reach Site 2 is through PE R8 (based on IGP metric from R10).

The RR Client PE R2 receives this best path from the RR R10, and now there is suboptimal routing, since from PE R2 actually the best path would be through PE R5. In the meantime, the Shadow RR R11 advertises a backup path (diverse path) which is through PE R5. PE R2 receives this backup path from the Shadow RR, and PE R2 chooses this as the best path to reach Site 2 (based on IGP metric from PE R2 to PE R5).

BGP Diverse Path Shadow RR configuration

Configuration:

R10 (RR)
    R10#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to R7 **
     ip address 10.0.6.2 255.255.255.248
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     isis circuit-type level-2-only
    
    R10#show run int Lo10 | sec int
    interface Loopback10
     ip address 10.10.10.10 255.255.255.255
     
    R10#show run | sec ^router
    router isis
     net 49.0010.0000.0000.0010.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    router bgp 65100
     bgp router-id 10.10.10.10
     bgp log-neighbor-changes
     neighbor 2.2.2.2 remote-as 65100
     neighbor 2.2.2.2 update-source Loopback10
     neighbor 5.5.5.5 remote-as 65100
     neighbor 5.5.5.5 update-source Loopback10
     neighbor 8.8.8.8 remote-as 65100
     neighbor 8.8.8.8 update-source Loopback10
     !
     address-family vpnv4
      neighbor 2.2.2.2 activate
      neighbor 2.2.2.2 send-community extended
      neighbor 2.2.2.2 route-reflector-client
      neighbor 5.5.5.5 activate
      neighbor 5.5.5.5 send-community extended
      neighbor 5.5.5.5 route-reflector-client
      neighbor 8.8.8.8 activate
      neighbor 8.8.8.8 send-community extended
      neighbor 8.8.8.8 route-reflector-client
     exit-address-family
    
R11 (Shadow RR)
    R11#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to R7 **
     ip address 10.0.6.3 255.255.255.248
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     isis circuit-type level-2-only
    
    R11#show run int Lo10 | sec int 
    interface Loopback10
     ip address 10.11.11.11 255.255.255.255
    
    R11#show run | sec ^router
    router isis
     net 49.0010.0000.0000.0011.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    router bgp 65100
     bgp router-id 10.11.11.11
     bgp log-neighbor-changes
     neighbor 2.2.2.2 remote-as 65100
     neighbor 2.2.2.2 update-source Loopback10
     neighbor 5.5.5.5 remote-as 65100
     neighbor 5.5.5.5 update-source Loopback10
     neighbor 8.8.8.8 remote-as 65100
     neighbor 8.8.8.8 update-source Loopback10
     !
     address-family vpnv4
      bgp additional-paths install
      neighbor 2.2.2.2 activate
      neighbor 2.2.2.2 send-community extended
      neighbor 2.2.2.2 route-reflector-client
      neighbor 2.2.2.2 advertise diverse-path backup
      neighbor 5.5.5.5 activate
      neighbor 5.5.5.5 send-community extended
      neighbor 5.5.5.5 route-reflector-client
      neighbor 8.8.8.8 activate
      neighbor 8.8.8.8 send-community extended
      neighbor 8.8.8.8 route-reflector-client
     exit-address-family
    
R2 (PE)
    R2#show run int Lo10 | sec int
    interface Loopback10
     ip address 2.2.2.2 255.255.255.255
    
    R2#show run all | sec ^mpls ip$
    mpls ip
    
    R2#show run | sec ^mpls
    mpls label range 200 299
    mpls ldp router-id Loopback10 force
    
    R2#show run | sec ^vrf
    vrf definition Green
     rd 65100:1
     !
     address-family ipv4
      route-target export 65100:1
      route-target import 65100:2
     exit-address-family
    
    R2#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to CE R1 **
     no ip address
     duplex auto
     speed auto
     media-type rj45
    
    R2#show run int Gi0/0.10 | sec int
    interface GigabitEthernet0/0.10
     description ** to CE R1 in VRF Green **
     encapsulation dot1Q 10
     vrf forwarding Green
     ip address 10.1.0.1 255.255.255.252
    
    R2#show run int Gi0/1 | sec int   
    interface GigabitEthernet0/1
     description ** to R3 **
     ip address 10.0.1.1 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R2#show run | sec ^router
    router isis
     net 49.0010.0000.0000.0002.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    router bgp 65100
     bgp router-id 2.2.2.2
     bgp log-neighbor-changes
     neighbor 10.1.0.2 remote-as 65001
     neighbor 10.10.10.10 remote-as 65100
     neighbor 10.10.10.10 update-source Loopback10
     neighbor 10.11.11.11 remote-as 65100
     neighbor 10.11.11.11 update-source Loopback10
     !
     address-family ipv4
      neighbor 10.10.10.10 activate
      neighbor 10.11.11.11 activate
     exit-address-family
     !
     address-family vpnv4
      neighbor 10.10.10.10 activate
      neighbor 10.10.10.10 send-community extended
      neighbor 10.11.11.11 activate
      neighbor 10.11.11.11 send-community extended
     exit-address-family
     !
     address-family ipv4 vrf Green
      network 10.1.0.0 mask 255.255.255.252
      neighbor 10.1.0.2 remote-as 65001
      neighbor 10.1.0.2 activate
     exit-address-family
    
R5 (PE)
    R5#show run int Lo10 | sec int
    interface Loopback10
     ip address 5.5.5.5 255.255.255.255
    
    R5#show run all | sec ^mpls ip$
    mpls ip
    
    R5#show run | sec ^mpls
    mpls label range 500 599
    mpls ldp router-id Loopback10 force
    
    R5#show run | sec ^vrf
    vrf definition Green
     rd 65100:2
     !
     address-family ipv4
      route-target export 65100:2
      route-target import 65100:1
     exit-address-family
    
    R5#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to CE R6 **
     no ip address
     duplex auto
     speed auto
     media-type rj45
    
    R5#show run int Gi0/0.10 | sec int
    interface GigabitEthernet0/0.10
     description ** to CE R6 in VRF Green **
     encapsulation dot1Q 10
     vrf forwarding Green
     ip address 10.2.0.1 255.255.255.252
    
    R5#show run int Gi0/1 | sec int   
    interface GigabitEthernet0/1
     description ** to R4 **
     ip address 10.0.3.1 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R5#show run | sec ^router 
    router isis
     net 49.0010.0000.0000.0005.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    router bgp 65100
     bgp router-id 5.5.5.5
     bgp log-neighbor-changes
     neighbor 10.10.10.10 remote-as 65100
     neighbor 10.10.10.10 update-source Loopback10
     neighbor 10.11.11.11 remote-as 65100
     neighbor 10.11.11.11 update-source Loopback10
     !
     address-family ipv4
      neighbor 10.10.10.10 activate
      neighbor 10.11.11.11 activate
     exit-address-family
     !
     address-family vpnv4
      neighbor 10.10.10.10 activate
      neighbor 10.10.10.10 send-community extended
      neighbor 10.11.11.11 activate
      neighbor 10.11.11.11 send-community extended
     exit-address-family
     !
     address-family ipv4 vrf Green
      network 10.2.0.0 mask 255.255.255.252
      neighbor 10.2.0.2 remote-as 65002
      neighbor 10.2.0.2 activate
     exit-address-family
    
R8 (PE)
    R8#show run int Lo10 | sec int
    interface Loopback10
     ip address 8.8.8.8 255.255.255.255
    
    R8#show run all | sec ^mpls ip$
    mpls ip
    
    R8#show run | sec ^mpls
    mpls label range 800 899
    mpls ldp router-id Loopback10 force
    
    R8#show run | sec ^vrf
    vrf definition Green
     rd 65100:2
     !
     address-family ipv4
      route-target export 65100:2
      route-target import 65100:1
     exit-address-family
    
    R8#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to CE R9 **
     no ip address
     duplex auto
     speed auto
     media-type rj45
    
    R8#show run int Gi0/0.10 | sec int 
    interface GigabitEthernet0/0.10
     description ** to CE R9 in VRF Green **
     encapsulation dot1Q 10
     vrf forwarding Green
     ip address 10.3.0.1 255.255.255.252
    
    R8#show run int Gi0/1 | sec int   
    interface GigabitEthernet0/1
     description ** to R7 **
     ip address 10.0.5.1 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R8#show run | sec ^router
    router isis
     net 49.0010.0000.0000.0008.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    router bgp 65100
     bgp router-id 8.8.8.8
     bgp log-neighbor-changes
     neighbor 10.10.10.10 remote-as 65100
     neighbor 10.10.10.10 update-source Loopback10
     neighbor 10.11.11.11 remote-as 65100
     neighbor 10.11.11.11 update-source Loopback10
     !
     address-family ipv4
      neighbor 10.10.10.10 activate
      neighbor 10.11.11.11 activate
     exit-address-family
     !
     address-family vpnv4
      neighbor 10.10.10.10 activate
      neighbor 10.10.10.10 send-community extended
      neighbor 10.11.11.11 activate
      neighbor 10.11.11.11 send-community extended
     exit-address-family
     !
     address-family ipv4 vrf Green
      network 10.3.0.0 mask 255.255.255.252
      neighbor 10.3.0.2 remote-as 65002
      neighbor 10.3.0.2 activate
     exit-address-family
    
R1 (CE)
    R1#show run | sec ^vrf
    vrf definition Green
     rd 1:1
     !
     address-family ipv4
     exit-address-family
    
    R1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to Host1 **
     no ip address
     duplex auto
     speed auto
     media-type rj45
    
    R1#show run int Gi0/0.1 | sec int 
    interface GigabitEthernet0/0.1
     description ** to Host1 in VRF Green **
     encapsulation dot1Q 1 native
     vrf forwarding Green
     ip address 192.168.1.2 255.255.255.0
    
    R1#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to PE R2 **
     no ip address
     duplex auto
     speed auto
     media-type rj45
    
    R1#show run int Gi0/1.10 | sec int
    interface GigabitEthernet0/1.10
     description ** to PE R2 VRF Green **
     encapsulation dot1Q 10
     vrf forwarding Green
     ip address 10.1.0.2 255.255.255.252
    
    R1#show run | sec ^router
    router bgp 65001
     bgp router-id 1.1.1.1
     bgp log-neighbor-changes
     !
     address-family ipv4 vrf Green
      network 192.168.1.0
      neighbor 10.1.0.1 remote-as 65100
      neighbor 10.1.0.1 activate
     exit-address-family
    
R3
    R3#show run int Lo10 | sec int
    interface Loopback10
     ip address 3.3.3.3 255.255.255.255
    
    R3#show run all | sec ^mpls ip$
    mpls ip
    
    R3#show run | sec ^mpls
    mpls label range 300 399
    mpls ldp router-id Loopback10 force
    
    R3#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to PE R2 **
     ip address 10.0.1.2 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R3#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to R4 **
     ip address 10.0.2.1 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R3#show run | sec ^router
    router isis
     net 49.0010.0000.0000.0003.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    
R7
    R7#show run int Lo10 | sec int
    interface Loopback10
     ip address 7.7.7.7 255.255.255.255
    
    R7#show run all | sec ^mpls ip$
    mpls ip
    
    R7#show run | sec ^mpls
    mpls label range 700 799
    mpls ldp router-id Loopback10 force
    
    R7#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to PE R8 **
     ip address 10.0.5.2 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R7#show run int Gi0/1 | sec int
    interface GigabitEthernet0/1
     description ** to Route Reflectors **
     ip address 10.0.6.1 255.255.255.248
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     isis circuit-type level-2-only
    
    R7#show run int Gi0/2 | sec int
    interface GigabitEthernet0/2
     description ** to R4 **
     ip address 10.0.4.2 255.255.255.252
     ip router isis 
     duplex auto
     speed auto
     media-type rj45
     mpls ip
     isis circuit-type level-2-only
     isis network point-to-point
    
    R7#show run | sec ^router
    router isis
     net 49.0010.0000.0000.0007.00
     is-type level-2-only
     advertise passive-only
     metric-style wide
     log-adjacency-changes
     passive-interface Loopback10
    
Host1
    Host1#show run int Gi0/0 | sec int
    interface GigabitEthernet0/0
     description ** to CE R1 **
     ip address 192.168.1.1 255.255.255.0
     duplex auto
     speed auto
     media-type rj45
    
    Host1#show run | sec ^ip route
    ip route 0.0.0.0 0.0.0.0 GigabitEthernet0/0 192.168.1.2
    
R11#show ip bgp vpnv4 all 192.168.2.0
BGP routing table entry for 65100:2:192.168.2.0/24, version 7
Paths: (2 available, best #1, no table)
  Additional-path-install
Flag: 0x100
  Advertised to update-groups:
     1          2         
  Refresh Epoch 1
  65002, (Received from a RR-client)
    8.8.8.8 (metric 20) (via default) from 8.8.8.8 (8.8.8.8)
      Origin IGP, metric 0, localpref 100, valid, internal, best                     « Shadow RR R11 chooses best path through PE R8
      Extended Community: RT:65100:2 , recursive-via-host
      mpls labels in/out nolabel/801
      rx pathid: 0, tx pathid: 0x0
  Refresh Epoch 2
  65002, (Received from a RR-client)
    5.5.5.5 (metric 30) (via default) from 5.5.5.5 (5.5.5.5)
      Origin IGP, metric 0, localpref 100, valid, internal, backup/repair            « Path through PE R5 is backup/repair path
      Extended Community: RT:65100:2 , recursive-via-host
      mpls labels in/out nolabel/501
      rx pathid: 0, tx pathid: 0





R11#show ip bgp vpnv4 all neighbors 2.2.2.2 advertised-routes  
BGP table version is 7, local router ID is 10.11.11.11
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
              t secondary path, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:2
 *>i  10.2.0.0/30      5.5.5.5                  0    100      0 i
 *>i  10.3.0.0/30      8.8.8.8                  0    100      0 i
 *bia 192.168.2.0      5.5.5.5                  0    100      0 65002 i             « Shadow RR R11 advertises backup path to PE R2

Total number of prefixes 3





R2#show ip bgp vpnv4 all | beg Ne      
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:1 (default for vrf Green)
 *>   10.1.0.0/30      0.0.0.0                  0         32768 i
 *>i  10.2.0.0/30      5.5.5.5                  0    100      0 i
 *>i  10.3.0.0/30      8.8.8.8                  0    100      0 i
 *>   192.168.1.0      10.1.0.2                 0             0 65001 i
 *>i  192.168.2.0      5.5.5.5                  0    100      0 65002 i
Route Distinguisher: 65100:2
 * i  10.2.0.0/30      5.5.5.5                  0    100      0 i
 *>i                   5.5.5.5                  0    100      0 i
 *>i  10.3.0.0/30      8.8.8.8                  0    100      0 i
 * i                   8.8.8.8                  0    100      0 i
 *>i  192.168.2.0      5.5.5.5                  0    100      0 65002 i             « PE R2 receives backup path from Shadow RR
 * i                   8.8.8.8                  0    100      0 65002 i





R2#show ip bgp vpnv4 rd 65100:2 192.168.2.0    
BGP routing table entry for 65100:2:192.168.2.0/24, version 19
Paths: (2 available, best #1, no table)
  Not advertised to any peer
  Refresh Epoch 1
  65002
    5.5.5.5 (metric 30) (via default) from 10.11.11.11 (10.11.11.11)
      Origin IGP, metric 0, localpref 100, valid, internal, best                    « PE R2 chooses path received from Shadow RR as the best path
      Extended Community: RT:65100:2
      Originator: 5.5.5.5, Cluster list: 10.11.11.11
      mpls labels in/out nolabel/501
      rx pathid: 0, tx pathid: 0x0
  Refresh Epoch 1
  65002
    8.8.8.8 (metric 40) (via default) from 10.10.10.10 (10.10.10.10)
      Origin IGP, metric 0, localpref 100, valid, internal
      Extended Community: RT:65100:2
      Originator: 8.8.8.8, Cluster list: 10.10.10.10
      mpls labels in/out nolabel/801
      rx pathid: 0, tx pathid: 0





R2#show ip bgp vpnv4 vrf Green 192.168.2.0 
BGP routing table entry for 65100:1:192.168.2.0/24, version 21
Paths: (1 available, best #1, table Green)
  Advertised to update-groups:
     1         
  Refresh Epoch 1
  65002, imported path from 65100:2:192.168.2.0/24 (global)
    5.5.5.5 (metric 30) (via default) from 10.11.11.11 (10.11.11.11)                « PE R2 installs path through PE R5 in BGP table for VRF Green
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:65100:2
      Originator: 5.5.5.5, Cluster list: 10.11.11.11                                « The Route Reflector adds these attributes (Originator, Cluster list)
      mpls labels in/out nolabel/501
      rx pathid: 0, tx pathid: 0x0





R2#show ip route vrf Green 192.168.2.0

Routing Table: Green
Routing entry for 192.168.2.0/24
  Known via "bgp 65100", distance 200, metric 0
  Tag 65002, type internal
  Last update from 5.5.5.5 02:15:24 ago
  Routing Descriptor Blocks:
  * 5.5.5.5 (default), from 10.11.11.11, 02:15:24 ago               « Path through PE R5 installed in IPv4 VRF routing table, MPLS switching is required
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65002
      MPLS label: 501
      MPLS Flags: MPLS Required





Host1#trace 192.168.2.1 pr 1
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.1.2 1 msec
  2 10.1.0.1 2 msec
  3 10.0.1.2 [MPLS: Labels 302/501 Exp 0] 6 msec
  4 10.0.2.2 [MPLS: Labels 402/501 Exp 0] 7 msec
  5 10.2.0.1 [MPLS: Label 501 Exp 0] 6 msec                         « VPN Service Label assigned by PE R5
  6 10.2.0.2 6 msec
  7 192.168.2.1 7 msec

What happens if I use different Route Distinguishers

If the PE routers R5 and R8 advertise the Site 2 prefix 192.168.2.0/24 with different Route Distinguisher (RD) value, then there is no need for a backup path. In the following example, PE R5 attaches RD 65100:2, and PE R8 attaches RD 65100:3 to the VPNv4 prefix 192.168.2.0/24. As a result, two unique VPNv4 routes are created as shown below.

Each unique route is independently received on PE R2, which can run the best path algorithm. In other words, since PE R2 receives both routes to Site 2 by default (due to different RD), it can choose the shortest path through PE R5. There is no need for BGP Diverse-Path configuration.

R10#show ip bgp vpnv4 all | beg Ne    
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:1
 *>i  10.1.0.0/30      2.2.2.2                  0    100      0 i
 *>i  192.168.1.0      2.2.2.2                  0    100      0 65001 i
Route Distinguisher: 65100:2                                                 « Route Reflector receives Site 2 route with RD 65100:2
 *>i  10.2.0.0/30      5.5.5.5                  0    100      0 i
 *>i  192.168.2.0      5.5.5.5                  0    100      0 65002 i
Route Distinguisher: 65100:3                                                 « Route Reflector receives Site 2 route with RD 65100:3
 *>i  10.3.0.0/30      8.8.8.8                  0    100      0 i
 *>i  192.168.2.0      8.8.8.8                  0    100      0 65002 i




R10#show ip bgp vpnv4 rd 65100:2 192.168.2.0
BGP routing table entry for 65100:2:192.168.2.0/24, version 19             « Unique VPNv4 route for Site 2 (through PE R5)
Paths: (1 available, best #1, no table)
  Advertised to update-groups:
     2         
  Refresh Epoch 1
  65002, (Received from a RR-client)
    5.5.5.5 (metric 30) (via default) from 5.5.5.5 (5.5.5.5)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:65100:200
      mpls labels in/out nolabel/501
      rx pathid: 0, tx pathid: 0x0




R10#show ip bgp vpnv4 rd 65100:3 192.168.2.0
BGP routing table entry for 65100:3:192.168.2.0/24, version 22             « Unique VPNv4 route for Site 2 (through PE R8), there is no path hiding
Paths: (1 available, best #1, no table)
Flag: 0x100
  Advertised to update-groups:
     2         
  Refresh Epoch 1
  65002, (Received from a RR-client)
    8.8.8.8 (metric 20) (via default) from 8.8.8.8 (8.8.8.8)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:65100:200
      mpls labels in/out nolabel/810
      rx pathid: 0, tx pathid: 0x0





R2#show ip bgp vpnv4 all | beg Ne     
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 65100:1 (default for vrf Green)
 *>   10.1.0.0/30      0.0.0.0                  0         32768 i
 *>i  10.2.0.0/30      5.5.5.5                  0    100      0 i
 *>i  10.3.0.0/30      8.8.8.8                  0    100      0 i
 *>   192.168.1.0      10.1.0.2                 0             0 65001 i
 * i  192.168.2.0      8.8.8.8                  0    100      0 65002 i
 *>i                   5.5.5.5                  0    100      0 65002 i
Route Distinguisher: 65100:2                                                 « Both unique VPNv4 Site 2 routes also received on PE R2
 * i  10.2.0.0/30      5.5.5.5                  0    100      0 i
 *>i                   5.5.5.5                  0    100      0 i
 * i  192.168.2.0      5.5.5.5                  0    100      0 65002 i
 *>i                   5.5.5.5                  0    100      0 65002 i
Route Distinguisher: 65100:3
 * i  10.3.0.0/30      8.8.8.8                  0    100      0 i
 *>i                   8.8.8.8                  0    100      0 i
 * i  192.168.2.0      8.8.8.8                  0    100      0 65002 i
 *>i                   8.8.8.8                  0    100      0 65002 i





R2#show ip bgp vpnv4 vrf Green 192.168.2.0
BGP routing table entry for 65100:1:192.168.2.0/24, version 38
Paths: (2 available, best #2, table Green)
  Advertised to update-groups:
     1         
  Refresh Epoch 4
  65002, imported path from 65100:3:192.168.2.0/24 (global)
    8.8.8.8 (metric 40) (via default) from 10.10.10.10 (10.10.10.10)
      Origin IGP, metric 0, localpref 100, valid, internal
      Extended Community: RT:65100:200
      Originator: 8.8.8.8, Cluster list: 10.10.10.10
      mpls labels in/out nolabel/810
      rx pathid: 0, tx pathid: 0
  Refresh Epoch 3
  65002, imported path from 65100:2:192.168.2.0/24 (global)
    5.5.5.5 (metric 30) (via default) from 10.10.10.10 (10.10.10.10)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:65100:200
      Originator: 5.5.5.5, Cluster list: 10.10.10.10
      mpls labels in/out nolabel/501
      rx pathid: 0, tx pathid: 0x0
	  
	  
	  
	  

R2#show ip route vrf Green 192.168.2.0

Routing Table: Green
Routing entry for 192.168.2.0/24
  Known via "bgp 65100", distance 200, metric 0
  Tag 65002, type internal
  Last update from 5.5.5.5 00:16:32 ago
  Routing Descriptor Blocks:
  * 5.5.5.5 (default), from 10.10.10.10, 00:16:32 ago               « PE R2 chooses route with shortest IGP metric to reach Site 2 (through PE R5)
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 65002
      MPLS label: 501
      MPLS Flags: MPLS Required

As visible in the following packet capture, two different BGP Update messages advertise the unique VPNv4 routes. The prefix 192.168.2.0 with RD 65100:3 has next-hop address 8.8.8.8 (PE R8). And the prefix 192.168.2.0 with RD 65100:2 has next-hop address 5.5.5.5 (PE R5) assigned.

Route Distinguisher BGP VPNv4 MPLS L3VPN