Hi Alexander,
I've looked at graceful restart, and it looks like a good option. One problem is that we didn't think of it before now and contacting a thousand ISPs and asking them to enable it seems like a big job. The second problem is that graceful mode is only (?) negotiated at the beginning of a BGP session, and we've already got sessions. If it can be turned on in the middle of a session, that'd be good to know.
Instead of migrating a live BGP session between bird1 and bird2, I was wondering if I could start a new bird2 session in parallel with an existing bird1 session, wait for it to settle, then terminate the bird1 session. As shown above I've gotten both bird1 and bird2 to run with the factory-default config files, but that's not starting any sessions. I'm just a newbie, so I don't know what resources will conflict. I saw an earlier post about using network namespaces, but I don't know what that would achieve.
Alternatively I could just accept that it's hopeless and end the first session then start the second session, set to run during a maintenance window. Out of curiosity, how fast can a route be re-established on average? Does it make a difference if bird1 is killed with `kill -9`, i.e. will it prevent a final "drop all routes" message from being sent, or does closing the TCP connection drop the routes?
Regards,
CH