Отказоустойчивый IP-адрес с использованием ucarp

Dec 10, 2015 15:54 · 369 words · 2 minute read ucarp debian

Одно из самых простых решений для обеспечения отказоустойчивости 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 закончена.

tweet Share