Отказоустойчивый IP-адрес с использованием ucarp
Dec 10, 2015 15:54 · 369 words · 2 minute read
Одно из самых простых решений для обеспечения отказоустойчивости ip-адреса в debian — утилита ucarp
(user-space реализация протокола отказоустойчивой маршрутизации CARP). Давайте разберемся с настройкой отказоустойчивого ip-адреса в ОС Debian Wheezy!
В нашем примере для решения задачи будем использовать два сервера под управлением ОС Debian Wheezy. Настройки сети на первом:
cat /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.23
netmask 255.255.255.0
gateway 192.168.0.5
dns-nameservers 192.168.0.1 192.168.0.13
на втором:
cat /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.5
dns-nameservers 192.168.0.1 192.168.0.13
Прежде всего установим необходимый пакет ucarp
на оба сервера:
aptitude install ucarp
Теперь приведем конфигурационный файл /etc/network/interfaces
на первом сервере к следующему виду:
auto eth0
iface eth0 inet static
address 192.168.0.23
netmask 255.255.255.0
gateway 192.168.0.5
dns-nameservers 192.168.0.1 192.168.0.13
ucarp-vid 1
ucarp-vip 192.168.0.15
ucarp-password cff9987d8b260afb0
ucarp-advskew 10
ucarp-advbase 1
ucarp-master yes
iface eth0:ucarp inet static
address 192.168.0.15
netmask 255.255.255.255
На втором сервера конфигурационный файл /etc/network/interfaces
должен выглядеть так:
auto eth0
iface eth0 inet static
address 192.168.0.11
netmask 255.255.255.0
gateway 192.168.0.5
dns-nameservers 192.168.0.1 192.168.0.13
ucarp-vid 1
ucarp-vip 192.168.0.15
ucarp-password cff9987d8b260afb0
ucarp-advskew 10
ucarp-advbase 1
ucarp-master no
iface eth0:ucarp inet static
address 192.168.0.15
netmask 255.255.255.255
И выполняем:
/etc/init.d/networking restart
Подробнее об использованных параметрах:
ucarp-vid
— номер группы (число от 1 до 255) одинаковый для всех серверов;ucarp-vip
— отказоустойчивый ip-адрес;ucarp-password
— пароль (ключ) для шифрования сетевого протокола, одинаковый для серверов в пределах группы;ucarp-advskew
— управление приоритетом выбора мастера из нескольких кандидатов группы;ucarp-advbase
— интервал оповещения хостов в группе о своем статусе;ucarp-master
— используется для повышения приоритета при выборе мастера.
Выбор ucarp
-мастера среди нескольких кандидатов происходит следующим образом:
- проверяется директива
ucarp-master
, если установлена в yes — больший приоритет; - рассчитывается формула
advbase + advskew/255
, меньшее значение — больший приоритет; - сравниваются ip-адреса хостов, меньший ip-адрес — больший приоритет.
Проверка правильности настройки отказоустойчивости ip-адреса.
Убедиться, что на обоих серверах запущен экземпляр процесса ucarp
можно с помощью команды:
ps axww | grep ucarp
Убедиться, что на первом сервере появился новый интерфейс можно с помощью команд:
ip a
или
ifconfig
Далее на тестовом компьютере запускаем
ping 192.168.0.15
и при наличии доступа к физической консоли первого сервера выполняем на нем:
/etc/init.d/networking stop
На тестовом компьютере пинг возобновится спустя пару секунд.
На этом все, настройка отказоустойчивого ip-адреса с использованием ucarp
закончена.