Lab6 RR with Add-Path
Load lab6.init.cfg
#R1, R6
configure replace unix:lab6.init.cfg
#R2-R5, R7
configure
load bootflash:lab6.init.cfg
commit replace
y

R8 has been removed as a RR. R5 is setting LP=50 on routes received from R6, so that R4 is the preferred egress point in the core.
Configure add path so that R7 will reflect both a primary and backup path to all iBGP route reflector clients. On the clients, configure PIC so that the backup path is pre-installed as a repair route.
Answer
https://www.youtube.com/watch?v=8UHvzzMBGv0&list=PL3Y9eZjZCcsejbVWD3wJIePqe3NiImqxB&index=8
#R7 (RR)
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
#R2, R3, R4
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
#R5
router bgp 65000
address-family ipv4 unicast
advertise best-external
!
address-family ipv6 unicast
advertise best-external
Explanation
First we must enable the Add Path capability on all routers. This is a negotiated capability in the OPEN message. On IOS-XE, once you configure this, the router automatically tears down the session. However on IOS-XR, you must manually clear the session after you configure the capability. R7 only sends additional paths, and the clients only receive additional paths.
router bgp 65000
address-family ipv4 unicast
additional-paths send|receive
address-family ipv6 unicast
additional-paths send|receive
On IOS-XR, the advertisement and local installation of additional paths is controlled via RPL. R7 does not need to install the paths locally, only advertise them.
#R7 (RR)
route-policy SELECT_BACKUP
set path-selection backup 1 advertise
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths selection route-policy SELECT_BACKUP
!
address-family ipv6 unicast
additional-paths selection route-policy SELECT_BACKUP
All clients only need to install the backup path as a repair route, not advertise them.
#R2, R3, R4
route-policy INSTALL_BACKUP
set path-selection backup 1 install
end-policy
!
router bgp 65000
address-family ipv4 unicast
additional-paths selection route-policy INSTALL_BACKUP
!
address-family ipv6 unicast
additional-paths selection route-policy INSTALL_BACKUP
For variety, I used “advertise best-external” on R5. This feature appears to work the same way on IOS-XE as with IOS-XR. R5 will always advertise its best external path. This does not require add path functionality.
#R5
router bgp 65000
address-family ipv4 unicast
advertise best-external
!
address-family ipv6 unicast
advertise best-external
Verification
On each iBGP session we should see that the add path capability has been negotiated, and that each router is capable of sending and receiving additional paths.

On R7, verify that it is receiving two paths for R6’s loopbacks. Each path is kept separate using a unique pathid (1 and 2 for IPv4, 1 and 6 for IPv6). The paths via R5 have a lower LP, so these are the “backup” paths.


On each RR client, it will receive both paths from the RR. The path IDs are used by the Add Path feature to ensure that a second Update for the same prefix does not implicitly withdraw the first Update.


The paths via R5 are used as repair routes due to the install keyword on the RPL used with the “additional-paths selection” command.

To demonstrate the need for the RPL, if we remove it, we still receive the additional paths but we do not install the backup path as a repair path.
#R3
router bgp 65000
address-family ipv4 unicast
additional-paths receive
additional-paths selection route-policy INSTALL_BACKUP

Last updated