CARP (Common Address Redundancy Protocol)

From: Max Laier <max_at_love2party.net>
Date: Wed, 5 Nov 2003 18:50:15 +0100
You might be aware that OpenBSD has introduced a 2-clause BSD-licensed
high availability and load balancing protocol called CARP:
http://marc.theaimsgroup.com/?l=openbsd-misc&m=106642790513590&w=2
http://www.deadly.org/article.php3?sid=20031018101733

I have a working patchset to bring CARP to FreeBSD-Current and would
like to hear you opinon: http://pf4freebsd.love2party.net/carp.html

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!

Tests:
 Very basic tests for IPv4 and IPv6 performed with OpenBSD as a "known
 good" peer. I have very limited test environment at the moment.
 
Code:
 http://pf4freebsd.love2party.net/carp.diff
 Perforce: branch mlaier_carp

-- 
Best regards,
 Max Laier                    mailto:max_at_love2party.net
Received on Wed Nov 05 2003 - 08:50:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:27 UTC