I have the following topology:
R1 on AS 100 advertising the 172.16.x.x prefixes.
Transit AS 200 and AS 300.
iBGP full-mesh on AS 400 between R4, R6 and R5.
On R4, we are receiving the 172.16.x.x prefixes from R2 and R6.
On R6, we are receiving the 172.16.x.x prefixes from R3 and R4.
On R4, set local preference to 172.16.0.0/24 to 150.
On R6, set local preference to 172.24.0.0/24 to 150.
R4 detects that the 172.24.0.0/24 from R6 has a higher local preference than the path from R2 (AS 200). R4 marks the path R6 as the best path for the prefix and sends a route withdrawals to R5 and R6 for the path from R2.
R6 detects that the 172.16.0.0/24 from R4 has a higher local preference than the path from R3 (AS 300). R6 selects the path from R4 as the best path for the prefix and sends route withdrawals to R4 and R5 for the path from R3.
R4 and R5 receive R6’s withdrawal for the 172.16.0.0/24 prefix and remove it from the BGP table.
R5 and R6 receive R4’s withdrawal for the 172.24.0.0/24 prefix and remove it from the BGP table.
On R4’s BGP table I only see one path to 172.16.0.0/24 via R2.
The path through R6 was removed it from the BGP table.
On R6’s BGP table I only see one path to 172.24.0.0/24 via R3.
The path through R4 was removed it from the BGP table.
My questions are:
- why sending a prefix withdrawal message?
- why not keeping both paths to the prefix?
- Do the routers keep the alternate path (not-best-path) in a backup table in case either R4 or R6 routers crashes?
- What would happen if R3 fails and the path through R4 was previously removed it from the BGP table? How BGP will converge?