Lab8 MPLS + “Shadow RR”
Load lab8.init.cfg
#R1, R6
configure replace unix:lab8.init.cfg
#R2-R5, R7, R8
configure
load bootflash:lab8.init.cfg
commit replace
y

R8 has been added as an additional RR, and all iBGP sessions have been preconfigured. R5 is setting LP to 50 on the routes received from R6.
Configure R8 as a “shadow RR” to reflect the backup path to R2. On R2, install this as a backup path.
Note that this will not work for 6PE, but you can configure it anyways.
Answer
https://www.youtube.com/watch?v=GlBXdYHvWmg&list=PL3Y9eZjZCcsejbVWD3wJIePqe3NiImqxB&index=11
#R5
route-policy SELECT_BACKUP
set path-selection backup 1 advertise
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
!
address-family ipv6 unicast
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
#R8
route-policy SELECT_BACKUP
set path-selection backup 1 advertise
end-policy
!
route-policy ADVERTISE_BACKUP_ONLY
if destination is-backup-path then
pass
endif
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
!
address-family ipv6 unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
!
neighbor-group IBGP_V4
address-family ipv4 unicast
route-policy ADVERTISE_BACKUP_ONLY out
!
address-family ipv6 labeled-unicast
route-policy ADVERTISE_BACKUP_ONLY out
#R2
route-policy INSTALL_BACKUP
set path-selection backup 1 install
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths receive
additional-paths selection route-policy INSTALL_BACKUP
!
address-family ipv6 unicast
additional-paths receive
additional-paths selection route-policy INSTALL_BACKUP
Explanation/Verification
R5 is hiding its external path again, because the LP is lower than the path via R4. To get around this we can use “advertise best-external” or add path. We use add path here, because we use “advertise best-external” in a previous lab.
#R5
route-policy SELECT_BACKUP
set path-selection backup 1 advertise
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
!
address-family ipv6 unicast
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
R8 will now receive the path via R5. However, there is a bug with 6PE as we saw with IOS-XE. R5 does not seem to be advertising the additional 6PE path even though it is marking it as a backup path locally. This seems to be due to the way BGP will allocate a local MPLS label. It doesn’t appear to be properlly allocating a label for backup paths on either IOS-XE or IOS-XR.

R8 now needs to mark the backup path and advertise this as the only path to R2. On IOS-XR, we don’t have the option of “advertise diverse-path backup” as we do on IOS-XE. Our closest option is to use add path and restrict outbound routes to only the backup path.
#R8
route-policy SELECT_BACKUP
set path-selection backup 1 advertise
end-policy
!
route-policy ADVERTISE_BACKUP_ONLY
if destination is-backup-path then
pass
endif
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
!
address-family ipv6 unicast
additional-paths receive
additional-paths send
additional-paths selection route-policy SELECT_BACKUP
!
neighbor-group IBGP_V4
address-family ipv4 unicast
route-policy ADVERTISE_BACKUP_ONLY out
!
address-family ipv6 labeled-unicast
route-policy ADVERTISE_BACKUP_ONLY out
On R2, we will now have both paths. We simply need to identify the backup path and install it as a repair route.
#R2
route-policy INSTALL_BACKUP
set path-selection backup 1 install
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths receive
additional-paths selection route-policy INSTALL_BACKUP
!
address-family ipv6 unicast
additional-paths receive
additional-paths selection route-policy INSTALL_BACKUP
Remember that R2, as the ingress PE, controls which egress PE is used. When it loses the path via R4, it will immediately switchover to R5. R3, as a P router in the core, simply switches on the top transport label and has no idea about the BGP routes.

Last updated