Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Nov 2003 18:50:15 +0100
From:      Max Laier <max@love2party.net>
To:        current@freebsd.org, net@freebsd.org
Subject:   CARP (Common Address Redundancy Protocol)
Message-ID:  <1443355500.20031105185015@love2party.net>

next in thread | raw e-mail | index | archive | help
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@love2party.net



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1443355500.20031105185015>