CARP (Common Address Redundancy Protocol)
Max Laier
max at love2party.net
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:
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
More information about the freebsd-net
mailing list