shutdown BGP sessions without administrative shutdown?
Hi! I'm running many boxes with Bird 2.x. They all peer with virtual JunOS routers via BGP. Each Bird instance announces routes for IP addresses from local virtual machines. In case bird dies or gets stopped for upgrades, I want that the JunOS route reflectors keep the routes for a certain amount of time. My config currently looks like this: template bgp VMX { local $ip as $as; multihop; # we don't have a layer 2 connection to the routers bfd graceful; hold time 240; startup hold time 240; connect retry time 120; graceful restart yes; graceful restart time 0; long lived graceful restart yes; long lived stale time 90; ipv4 { export filter virtual_machines_v4; import none; next hop self; }; ipv6 { export filter virtual_machines_v6; import none; next hop self; }; } protocol bgp $peer from VMX { description $desc; neighbor $ip> as $as; } this works fine if I do: * birdc reconfigure * kill -HUP on the bird pid * killall -9 bird however if I do a `systemctl stop bird`, it does an administrative shutdown and the virtual MX drops the routes. As far as I understand the RFC for LLGR this is the correct behavior. Can one of you tell me if there is an option on JunOS to keep the routes, even after a ` administrative shutdown`, or if I can advice Bird to not cleanly shutdown sessions? Cheers, Tim
Hi, As far as I know, when you shut down bird manually, you have to use "graceful restart" command to stop it instead of "down" command: https://bird.network.cz/?get_doc&v=20&f=bird-4.html#cli-graceful-restart And also use "-R" option for the daemon when starting. On Mon, Feb 22, 2021 at 10:25 PM Tim Meusel <bird@bastelfreak.de> wrote:
Hi! I'm running many boxes with Bird 2.x. They all peer with virtual JunOS routers via BGP. Each Bird instance announces routes for IP addresses from local virtual machines. In case bird dies or gets stopped for upgrades, I want that the JunOS route reflectors keep the routes for a certain amount of time. My config currently looks like this:
template bgp VMX { local $ip as $as; multihop; # we don't have a layer 2 connection to the routers bfd graceful; hold time 240; startup hold time 240; connect retry time 120; graceful restart yes; graceful restart time 0; long lived graceful restart yes; long lived stale time 90; ipv4 { export filter virtual_machines_v4; import none; next hop self; }; ipv6 { export filter virtual_machines_v6; import none; next hop self; }; }
protocol bgp $peer from VMX { description $desc; neighbor $ip> as $as; }
this works fine if I do: * birdc reconfigure * kill -HUP on the bird pid * killall -9 bird
however if I do a `systemctl stop bird`, it does an administrative shutdown and the virtual MX drops the routes. As far as I understand the RFC for LLGR this is the correct behavior. Can one of you tell me if there is an option on JunOS to keep the routes, even after a ` administrative shutdown`, or if I can advice Bird to not cleanly shutdown sessions?
Cheers, Tim
Hi, On 23.02.21 00:12, Alexander Zubkov wrote:
Hi,
As far as I know, when you shut down bird manually, you have to use "graceful restart" command to stop it instead of "down" command: https://bird.network.cz/?get_doc&v=20&f=bird-4.html#cli-graceful-restart And also use "-R" option for the daemon when starting.
Thanks! That works perfectly fine for bird 2. Is that also possible with bird 1.6? It lists support for LLGR in the configuration documentation: https://bird.network.cz/?get_doc&v=16&f=bird-6.html#ss6.3 But the remote control documentation does not list `graceful restart` and it indeed doesn't work: # birdc graceful shutdown BIRD 1.6.8 ready. No such command. Press `?' for help. Cheers, Tim
On Mon, Feb 22, 2021 at 10:25 PM Tim Meusel <bird@bastelfreak.de> wrote:
Hi! I'm running many boxes with Bird 2.x. They all peer with virtual JunOS routers via BGP. Each Bird instance announces routes for IP addresses from local virtual machines. In case bird dies or gets stopped for upgrades, I want that the JunOS route reflectors keep the routes for a certain amount of time. My config currently looks like this:
template bgp VMX { local $ip as $as; multihop; # we don't have a layer 2 connection to the routers bfd graceful; hold time 240; startup hold time 240; connect retry time 120; graceful restart yes; graceful restart time 0; long lived graceful restart yes; long lived stale time 90; ipv4 { export filter virtual_machines_v4; import none; next hop self; }; ipv6 { export filter virtual_machines_v6; import none; next hop self; }; }
protocol bgp $peer from VMX { description $desc; neighbor $ip> as $as; }
this works fine if I do: * birdc reconfigure * kill -HUP on the bird pid * killall -9 bird
however if I do a `systemctl stop bird`, it does an administrative shutdown and the virtual MX drops the routes. As far as I understand the RFC for LLGR this is the correct behavior. Can one of you tell me if there is an option on JunOS to keep the routes, even after a ` administrative shutdown`, or if I can advice Bird to not cleanly shutdown sessions?
Cheers, Tim
participants (2)
-
Alexander Zubkov -
Tim Meusel