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