CARP (Common Address Redundancy Protocol)

Max Laier max at
Wed Nov 5 09:50:22 PST 2003

You might be aware that OpenBSD has introduced a 2-clause BSD-licensed
high availability and load balancing protocol called CARP:

I have a working patchset to bring CARP to FreeBSD-Current and would
like to hear you opinon:

CARP shows itself as virtual interfaces carpX and works a bit like
vlan interfaces. For comunication between the servers which share a
common address it uses a multicast group.

It supports both IPv4 and IPv6 common addresses and should work on
ETHERNET, FDDI and TOKENRING nets - later two untested, though.

Standing problems:
 - IPv4:
   * Server can't access the common address while MASTER for it.
     OpenBSD has a workaround for this, but we can't add host routes
     with virtual interfaces as gateway, so we need another fix.
 - IPv6:
   * Traffic to the common address on the server is always threated
     locally, even when in BACKUP state.
   * in6_ifattach() will error out - this seems to have no ill
     effects and can easily be fixed by selecting a special if_type
     for CARP interfaces.
 - Locking?!?
 - You tell me!

 Very basic tests for IPv4 and IPv6 performed with OpenBSD as a "known
 good" peer. I have very limited test environment at the moment.
 Perforce: branch mlaier_carp

Best regards,
 Max Laier                    mailto:max at

More information about the freebsd-current mailing list