Lab11 MPLS + Same RD + Add-Path + Repair Path

Load lab11.init.cfg

#R1, R6
configure replace unix:lab11.init.cfg

#R2-R5, R7
configure
load bootflash:lab11.init.cfg
commit replace
y

The initial config for this lab is simply the completed lab 10 configuration. Perform these tasks:

  • Remove DMZ link bandwidth on R4 and R5

  • Configure R5 to set LP=50 again inbound from R6, and set MED=5 outbound to R6

  • Remove ECMP on R2, and achieve only a backup repair path on R2.

Answer

#R2
route-policy INSTALL_BACKUP
  set path-selection backup 1 install
end-policy
!
router bgp 65000
 address-family vpnv4 unicast
  additional-paths selection route-policy INSTALL_BACKUP
 !
 address-family vpnv6 unicast
  additional-paths selection route-policy INSTALL_BACKUP
 !
 vrf CUST_A
  address-family ipv4 unicast
   no maximum-paths ibgp 2
  !
  address-family ipv6 unicast
   no maximum-paths ibgp 2

#R4
router bgp 65000
 vrf CUST_A
  neighbor 10.4.6.6
   no dmz-link-bandwidth
  !
  neighbor fc00:10:4:6::6
   no dmz-link-bandwidth

#R5
route-policy SELECT_BACKUP
  set path-selection backup 1 advertise install
end-policy
!
router bgp 65000
address-family vpnv4 unicast
  additional-paths send
  additional-paths selection route-policy SELECT_BACKUP
 !
 address-family vpnv6 unicast
  additional-paths send
  additional-paths selection route-policy SELECT_BACKUP
 !
 vrf CUST_A
  neighbor 10.5.6.6
   remote-as 65006
   no dmz-link-bandwidth
   address-family ipv4 unicast
    route-policy SET_LP_TO_X(50) in
    route-policy SET_MED_TO_X(5) out
   !
  !
  neighbor fc00:10:5:6::6
   remote-as 65006
   no dmz-link-bandwidth
   address-family ipv6 unicast
    route-policy SET_LP_TO_X(50) in
    route-policy SET_MED_TO_X(5) out

#R7
router bgp 65000
 address-family vpnv4 unicast
  additional-paths receive
 !
 address-family vpnv6 unicast
  additional-paths receive

Explanation

In Russo’s SPv4 guide, he states that using add-path with VPNv4/v6 at the rd-level does not work. He theorizes that when the RD is the same, bestpath happens before the VRF import and you cannot install the repair path in the FIB. Instead you must use unique RDs.

This appears to be fixed in current versions of XRv. I am able to use add-path with VPNv4/VPNv6 and install the repair path in the FIB.

Currently, R5’s bestpath is via R4. We use add-path for VPNv4/VPNv6 to force R5 to advertise its less preferred path to the RR (R7). R5 also locally installs this eBGP path as a repair path.

#R5
route-policy SELECT_BACKUP
  set path-selection backup 1 advertise install
end-policy
!
router bgp 65000
address-family vpnv4 unicast
  additional-paths send
  additional-paths selection route-policy SELECT_BACKUP
 !
 address-family vpnv6 unicast
  additional-paths send
  additional-paths selection route-policy SELECT_BACKUP

R7 reflects both routes to R2 using Add-Path.

Unlike in Nick Russo’s lab, R2 is able to install both paths into the BGP VRF tables:

R2 is therefore able to install the repair path into the FIB:

Note that IOS-XE does not support add-path for VPNv4/VPNv6. IOS-XE supports “bgp advertise-best-external” under VPNv4/VPNv6 and “bgp additional-paths install|select” only. IOS-XR on the other hand supports Add-Path for every BGP AFI/SAFI.

Last updated