Если в системе между виртуальными машинами поддерживается IPv4 multicast, то проще всего настроить кластеризацию через утилиту ucarp и multicast-протокол VRRP. Необходимо установить ucarp на двух серверах - primary и secondary. Сервер-арбитр участвует только в выборах активного узла БД MongoDB, но не в IP-кластере, поэтому на нём дополнительные настройки не требуются. Команда для установки утилиты ucarp:
apt-get install ucarp
Настройка утилиты ucarp проста и требует изменения только конфигурационного файла /etc/network/interfaces. Для примера используем кластерный адрес 1.2.3.91. На него можно зарегистрировать DNS-имя сервиса wnam.domain.net.
На первом (активном) сервере следует привести конфигурационный файл к виду:
iface eth0 inet static
address 1.2.3.89
netmask 255.255.255.192
network 1.2.3.64
broadcast 1.2.3.127
gateway 1.2.3.65
dns-nameservers 1.2.3.5
dns-search domain.net
ucarp-vid 1
ucarp-vip 1.2.3.91
ucarp-password WNAMpassword
ucarp-advskew 0
ucarp-advbase 1
ucarp-master yes
iface eth0:ucarp inet static
address 1.2.3.91
netmask 255.255.255.255
На втором (резервном) сервере следует привести конфигурационный файл к виду:
iface eth0 inet static
address 1.2.3.90
netmask 255.255.255.192
network 1.2.3.64
broadcast 1.2.3.127
gateway 1.2.3.65
dns-nameservers 1.2.3.5
dns-search domain.net
ucarp-vid 1
ucarp-vip 1.2.3.91
ucarp-password WNAMpassword
ucarp-advskew 30
ucarp-advbase 1
ucarp-master no
iface eth0:ucarp inet static
address 1.2.3.91
netmask 255.255.255.255
Далее необходимо сделать так, чтобы исходящие в сторону вашего контроллера Wi-Fi RADIUS-пакеты уходили с кластерного, а не с основного IP-адреса. Предположим, что Wi-Fi контроллер имеет IP-адрес 10.113.1.11. Тогда на обоих серверах кластера необходимо скорректировать скрипты vip-down и vip-up, которые расположены в каталоге /usr/share/ucarp/. Корректировка скриптов заключается в выставлении SRC IP для всех исходящих пакетов на кластерный адрес при его активации через маршрутизацию:
root@vm1:/usr/share/ucarp# cat vip-up
#!/bin/sh/sbin/ifup $1:ucarp
/usr/sbin/ip route del 10.113.1.0/24
/usr/sbin/ip route add 10.113.1.0/24 via 1.2.3.1 src 1.2.3.91
root@vm1:/usr/share/ucarp# cat vip-down
#!/bin/sh/sbin/ifdown $1:ucarp
/usr/sbin/ip route del 10.113.1.0/24
/usr/sbin/ip route add 10.113.1.0/24 via 1.2.3.1
Затем необходимо перезапустить сетевую службу на обоих серверах (service networking restart) и проверить, что первый сервер получил требуемый кластерный адрес. Далее запустить в одном окне команду:
tcpdump -i eth0 -nv
а в другом команду:
ping 10.113.1.11
и убедиться, что SRC IP пинг-пакетов выставлены в кластерный адрес.