Проект

Общее

Профиль

Протокол 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