PIC Edge Troubleshooting
Topology: ine-spv4

Load bgp.pic.global.tshoot.init.cfg
#IOS-XE
config replace flash:bgp.pic.global.tshoot.init.cfg
#IOS-XR
configure
load bootflash:bgp.pic.global.tshoot.init.cfg
commit replace
y
IPv4 BGP routing is currently setup in the network. R2 is a dual-homed CE that announces 1.1.1.1/32 and 2.2.2.2/32 to R3 and R4. XR1 is single-homed to R5, announcing 19.19.19.19/32 and 20.20.20.20/32. R6 is the RR.
PIC and add path is configured in the core network. However, R5 does not have a repair route for 1.1.1.1/32 and 2.2.2.2/32. Explain the problem and fix it. Do not change BGP attributes to fix the issue.
Answer
The issue is that R4 is hiding the alternate routes. R3 is setting LP to 110 based on the received customer community on routes received from R2. R4 chooses R3 as the best path, instead of its own eBGP routes to R2.
To fix this we have two options:
Have R4 advertise the best external path
Does not require Add Path
Have R4 advertise additional paths to R6
Requires Add Path
Note that this could also be fixed by having R4 set weight on routes received from R2, but this is prohibited by the lab instructions.
#R4
router bgp 100
add ipv4
bgp advertise-best-external
!
! or
!
#R4
router bgp 100
add ipv4
bgp additional-paths send receive
bgp additional-paths select best 2
neighbor 6.6.6.6 advertise additional-paths best 2
#R6
router bgp 100
add ipv4
bgp additional-paths send receive
Explanation
Let’s first examine the problem. R4 has two paths to 1.1.1.1/32 and 2.2.2.2/32. One path via R3 with LP=110, and one path via the eBGP peer with default LP. Naturally, it will choose R3 as the bestpath due to the higher LP.

Because of this, R4 hides its eBGP path. Its best path is via an iBGP learned route, so it does not advertise a path to the RR (basic iBGP split horizon rule). On R6 (the RR) we can see that it only knows one path, via R3. Even though Add Path and PIC is configured on R5, there is no alternate route for R5 to use as a backup path.

Using advertise-best-external
The easiest fix is to use the advertise-best-external feature on R4. This configures the router to always advertise its best eBGP route, even if an iBGP route is the bestpath. This also implicitly enables PIC on R4. This does not use Add Path, so this change is non-disruptive. This just prevents information hiding. R4 will never advertise multiple paths, so Add Path is not needed.

Now R6 sees the additional path from R4:

Using Add Path, this is advertised to R5, where it is installed as a backup path:

Using Add Path on R4 instead
The other method is to enable Add Path on R4. To do this, we must configure R6 to also receive additional paths (right now it is only sending additional paths). So this will disrupt all iBGP sessions. We also configure R4 to send and receive additional paths.
#R4, R6
router bgp 100
add ipv4
bgp additional-paths send receive
On R4 we just need to select the best 2 routes and advertise these to R6.
#R4
router bgp 100
add ipv4
bgp additional-paths select best 2
neighbor 6.6.6.6 advertise additional-paths best 2
Optionally, we can also locally install the backup path as a repair path.
#R4
router bgp 100
add ipv4
bgp additional-paths install
Last updated