Для FreeBSD вполне хватит встроенной документации (carp(4), sysctl(3), ifconfig(8)). Для общего развития можно прочитать документ “Firewall Failover with pfsync and CARP” Ryan McBride. В принципе этих статьей (как всегда) вполне достаточно для работы, приведу небольшую выдержку из основных настроек.
Стоить отметить, что возможны два режима работы: для обеспечения отказоустойчивости (второй узел находится в состоянии ожидания) и в режиме балансировки нагрузки.
Процедура настройки состоит из следующих этапов
На сетевом интерфейсе уже должен присутствовать IP адрес из настраиваемой сети.
Пример, создаем виртуальный адрес 192.168.1.10:
Настраиваем ядро sysctl net.inet.carp.arpbalance=1
На 1 машине: ifconfig carp0 create ifconfig carp0 vhid 1 pass SecretPassword 192.168.1.10/24 ifconfig carp1 create ifconfig carp1 vhid 2 advskew 100 pass SecretPassword 192.168.1.10/24
на 2 машине ifconfig carp0 create ifconfig carp0 vhid 1 advskew 100 pass SecretPassword 192.168.1.10/24 ifconfig carp1 create ifconfig carp1 vhid 2 pass SecretPassword 192.168.1.10/24
И на последнем этапе определяем arp адрес и прописываем его на маршрутизаторе.