Description

Some vpn routes can be missing in the BGP update from the provider edge (PE) router under the following scenario:

  1. On the PE router the routing instance (RI) configuration is deleted and re-added in the same commit with a different name.
  2. On the deleted/re-created RI there are BGP neigbours which send some number of BGP routes.
  3. Due to BGP activity in parallel (probably for other routing instances), the deletion of the BGP routes can be delayed so there can be a race condition between the deletion and re-adding the same BGP routes. As a result, some BGP prefixes can be shown as sent in the output of 'show route advertised-protocol bgp <neighbor IP>' but in fact such prefixes are never received on the BGP neighbor (according to the output of 'show route received-protocol bgp <neighbor IP>'.

Solution

The issue can be avoided by configuring 'advertise-from-main-vpn-tables' command. With this command  bgp.l3vpn.0 table gets a copy of the routes from each VRF table instances (both the old and new one, as two different routes).  The race condition between the deleting and re-creation of the routes is absorbed by collecting them in a common table and advertising state out of that table.

The possible workaround is to avoid deleting and re-creating the RI in the same commit. If the RI is deleted first and re-created in another commit, the issue will not be present.

 

Modification History

2024-09-02 : Article Created