BGP session redundancy, cluster w/ OVN


I have a bare-metal cluster of 3 servers deployed w/ Juju. I have an OVN overlay configured and a routed subnet configured across the cluster. The OVN Uplink is attached to br0, which is connected to the subnet. BGP is configured, and the first LXD node is advertising routes via BGP to the rest of the network via the IP assigned by the OVN uplink.

  bgp.peers.rr01.asn: "65000"

OVN network:
  ipv4.nat: "false"
  network: UPLINK-control-plane

Testing the most obvious failure mode by powering off the 1st cluster node causes BGP to time out as expected. I was hoping one of the other nodes would pick up where it left off but this doesn’t seem to be the case, whether by re-using the dead node’s IP address or the other cluster node’s IPs.

Is there some way to configure BGP redundancy such that BGP will restart on a different cluster node should the active BGP node fail?


You should have all 3 servers listen on BGP and have a session between your router and each of the servers. All 3 servers will announce the exact same route, so BGP on your router will then only lose the route should all 3 go away.

This is what I was hoping. I believe I found the problem.

Specifically, the core.bgp* configurations need to be applied to each of the cluster members. I’d made the mistake of thinking this was cluster wide. From there I restarted lxd on each server and the bgp sessions established.


1 Like

Yeah the thinking is that you might have different peer addresses for each member.

Makes sense. Might be nice to tie it to an interface on the node. Example:

lxc set config core.bgp_address eth0
lxc set config core.bgp_routerid eth0

Seems like a feature request.