Протокол VRRP (CARP) FreeBSD¶
Минимальная конфигурация¶
[PASSWORD] - Пароль
RDS01¶
ifconfig_em0="description TRUNK up"
cloned_interfaces="vlan8"
ifconfig_vlan8="vlan 8 vlandev em0 description SERVERS"
ifconfig_vlan8_alias0="inet 192.168.40.13/24 vhid 100 pass [PASSWORD] advskew 7"
ifconfig_vlan8_alias1="inet 192.168.40.16/24 vhid 101 pass [PASSWORD] advskew 111"
defaultrouter="192.168.40.10"
RDS02¶
ifconfig_em0="description TRUNK up"
cloned_interfaces="vlan8"
ifconfig_vlan8="vlan 8 vlandev em0 description SERVERS"
ifconfig_vlan8_alias0="inet 192.168.40.16/24 vhid 101 pass [PASSWORD] advskew 100"
ifconfig_vlan8_alias1="inet 192.168.40.13/24 vhid 100 pass [PASSWORD] advskew 10"
defaultrouter="192.168.40.10"
/boot/loader.conf
carp_load="YES"
/etc/sysctl.conf
net.inet.carp.preempt=1
можно использовать свой скрипт при изменении состояния
mkdir /usr/local/etc/devd
содержимое /usr/local/etc/devd/carp.conf
notify 0 { match "system" "CARP"; match "subsystem" "[0-9]+@[0-9a-z]+"; match "type" "(MASTER|BACKUP)"; action "/usr/local/scripts/carpcontrol.sh $type $subsystem"; };
скрипт /usr/local/scripts/carpcontrol.sh
#!/usr/bin/env sh
TYPE=${1}
SUBSYS=${2}
logger State change on ${SUBSYS} to ${TYPE}
case ${TYPE} in
MASTER)
# ...
;;
BACKUP)
if echo "${SUBSYS}" | grep -q "121@vlan31"; then
# ...
fi
;;
*)
# ...
;;
esac
/etc/rc.d/devd restart