On 02.06.22 16:16, Thomas Steen Rasmussen wrote:
Hello :)

I am using BIRD on FreeBSD and it is working okay, apart from missing CARP awareness. I am wondering if anyone knows if work has been done in this area already?

As you may know, CARP is a patent-free VRRP alternative originally from OpenBSD. A network interface can have one or more VHIDs, each VHID can be either MASTER or BACKUP. The IPs tied to a VHID are only usable when the VHID is MASTER.

Currently "birdc show interfaces" shows no difference between two nodes where one is CARP MASTER and the other is CARP BACKUP. The consequence of this is that BIRD thinks it has a working local direct route which it then tries to use, but the OS refuses, since it understands that VHID is CARP BACKUP.

Ideally BIRD would understand CARP semantics so when it has a DIRECT protocol it would only consume the routes from CARP MASTER VHIDs, and consider the CARP BACKUP VHID IPs as unusable.

Please consider this a feature request. I am interested getting some BIRD experts opinion on 1) is this a feature you would be willing to include in BIRD and 2) how big a job is it?

I would be willing to pay to have it developed, although I am just myself so I don't have unlimited funds.

Thanks in advance, and thank you for BIRD; even without CARP support it is already awesome.
Part of the problem is that FreeBSD changed their CARP implementation to make CARP addresses part of the parent interface instead of keeping the CARP pseudointerface OpenBSD uses (which would probably work because it's link state goes up/down depending on the CARP state). You can workaround missing integration of the FreeBSD CARP implementation into bird by using FreeBSD's devd hotplug event daemon because CARP state transitions are made available to userspace as messages on /dev/devctl and consumed by the devd daemon (enabled by default). You can drop a config snipped into /etc/devd/carp.conf to match the events and execute a shell script as root to take the appropriate action e.g. run ifconfig to get the CARP address or send a command to bird. Of course it's not as clean as proper CARP supports, but it's flexible and responds quickly without aggressive polling.

Reply via email to