CARP - Common Address Redundancy Protocol
This was so simple. In fact I imagine the lack of what I would consider proper documentation is precicely because it's so easy.
First I needed to recompile the kernel on both my test boxes. The kernel config is simple enough:
# # /usr/src/sys/i386/conf/CARP # include GENERIC device carp
Then the standard kernel build:
cd /usr/src make -j4 buildkernel KERNCONF=CARP make -j4 installkernel KERNCONF=CARP reboot
Setting-up carp manually was simply a case of copying the config out of the man page. Permanent configuration via /etc/rc.onf wasn't much harder. First on the Host A, the preferred master:
cloned_interfaces="carp0" ifconfig_carp0="vhid 1 pass p4ssword 192.168.0.112"
Then on Host B:
cloned_interfaces="carp0" ifconfig_carp0="vhid 1 advskew 100 pass p4ssword 192.168.0.112"
And that's it. Ping the IP, reboot at random, and it just works.





