Использование CARP
CARP ( Common Address Redundancy Protocol ) - протокол дублирования общего адреса ( см. Wikipedia ), позволяет нескольким хостам использовать один IP-адрес. Протокол часто применяется для увеличения отказоустойчивости, доступности сервисов. Рассмотрим настройку CARP в FreeBSD 10 на примере построения отказоустойчивого сервера доступа ( BRAS ).
В случае использования NAT желательна синхронизация таблиц трансляции с помощью pfsync, но это тема для отдельной заметки.
Модуль CARP
Для загрузки модуля при старте системы добавить опцию в /boot/loader.conf
carp_load="YES"Также модуль можно внести в состав ядра, собрав его с опцией
device carpНастройки sysctl
Разрешить CARP автоматически обрабатывать пропадания хостов и менять роль.
net.inet.carp.allow=1
net.inet.carp.preempt=1Настройки интерфейсов
Для определения принадлежности к группе используется параметр vhid. Для определения значимости хоста - advskew, от 0 до 240, чем меньше - тем приоритет выше.
Настройка внешних интерфейсов хостов em0 в /etc/rc.conf. Общий адрес 1.1.1.1, id хоста 1.
#Хост 1
ifconfig_em0="inet 1.1.1.2 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 1.1.1.1 netmask 255.255.255.255 vhid 1 advskew 100 pass carppassword"
#Хост 2
ifconfig_em0="inet 1.1.1.3 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 1.1.1.1 netmask 255.255.255.255 vhid 1 advskew 200 pass carppassword"Настройка внутренних интерфейсов хостов em1 в /etc/rc.conf. Общий адрес 10.0.0.1, id хоста 2.
Мониторинг и работа системы
Для мониторинга состояния интерфейсов используется ifconfig
В случае пропадания хоста, выбранного как MASTER, второй хост изменит свое состояние с BACKUP на MASTER. Данные переходы журналируются в /var/log/messages.
Также возможна принудительная смена роли на одно из значений INIT MASTER BACKUP
Last updated
Was this helpful?