Showing results for 
Search instead for 
Did you mean: 

BGP and Graceful-restart

Hello colleagues!

I'm trying to figure out some details regarding BGP GR functionality.

The basic concept is pretty simple, but I cannot find answer to my question:

How BGP peers knows when SSO-performing router switches to standby supervisor?

BGP peers should somehow distinguish real supervisor fail from some other fails.

I think it's very important, because if not so - when 'other fail' occurs BGP peer will keep routes during `Restart Timer` that equal to 120 sec by default. It may cause a blackhole.

Also such a big pause (dead timer + restart timer) is not acceptable for HA infrastructure.

Does really BGP Peers each time when BGP TCP session timed out (no matter why) keeps routes during `Restart Timer`? Or how Restarter notify its peers?

On the other hand - when I simulate termination of the BGP session (add route to the neighbor to Null0 at the Restarter), peer just wait for the holdtime and does not mark routes as stale after. In other words it does not start NSF process. What should happen to start that process in the context of neighbors?

If the BGP session is lost during the RP switchover, the NSF-aware BGP peer marks all the routes associated with the NSF-capable router as stale; however, it continues to use these routes to make forwarding decisions for a set period of time. This functionality means that no packets are lost while the newly active RP is waiting for convergence of the routing information with the BGP peers.

After an RP switchover occurs, the NSF-capable router reestablishes the session with the BGP peer. In establishing the new session, it sends a new graceful restart message that identifies the NSF-capable router as having restarted.

Regards, Konstantin.


I think I figured it out...

When new supervisor becomes active it receives BGP keepalives from BGP peers but ongoing TCP session is unknown for the new supervisor. That's why it abort the session with TCP RST.

This RST is a trigger to its peer to mark old routes as `stale` and continue NSF process as documented.