Product SiteDocumentation Site

6.9.2. Настройка переключения DHCP

Для обеспечения отказоустойчивости, следует на втором контроллере домена также поднять DHCP-сервер.
Связь между двумя DHCP-серверами осуществляется через интерфейс прикладного программирования управления объектами (OMAPI). Этот API контролирует работу протокола переключения DHCP. Этот API будет настроен на следующих шагах.
На ведущем (master) DHCP-сервере необходимо сгенерировать случайный ключ OMAPI:
# tsig-keygen -a hmac-md5 omapi_key
key "omapi_key" {
    algorithm hmac-md5;
    secret "KKkAspinSr/nXYXhAv7CTQ==";
};
Как на ведущем, так и на ведомом устройстве должен быть настроен специальный раздел, путём добавления следующих строк в файл /etc/dhcp/dhcpd.conf:
omapi-port 7911;
omapi-key omapi_key;
key "omapi_key" {
    algorithm hmac-md5;
    secret "Секретный_ключ";
};
«Секретный_ключ» следует заменить на ключ, полученный на предыдущем шаге.
Для настройки аварийного переключения на первом сервере в файл /etc/dhcp/dhcpd.conf перед разделом subnet следует добавить строки:
omapi-port 7911;
omapi-key omapi_key;
key "omapi_key" {
    algorithm hmac-md5;
    secret "KKkAspinSr/nXYXhAv7CTQ==";
};

failover peer "dhcp-failover" {
  primary;
  address dc1.test.alt; # Полное DNS-имя основного DHCP-сервера
  port 847;
  peer address dc2.test.alt; # Полное DNS-имя имя резервного DHCP-сервера
  peer port 647;
  max-response-delay 60;
  max-unacked-updates 10;
  mclt 3600;
  split 128;
  load balance max seconds 3;
}
И добавить ссылку на подсеть/пул, которые будут выполнять аварийное переключение в раздел pool:
pool {
    failover peer "dhcp-failover"; # Add for failover
    max-lease-time 1800; #30 минут
    range 192.168.0.150 192.168.0.200;
    }
На втором DC выполнить следующие действия:
  1. Скопировать скрипт и keytab-файл с первого DC на второй:
    # scp dc1:/usr/local/bin/dhcp-dyndns.sh /usr/local/bin/
    # scp dc1:/etc/dhcp/dhcpduser.keytab /etc/dhcp/
    # chown dhcpd:dhcp /etc/dhcp/dhcpduser.keytab
    

    Примечание

    Для возможности копирования файлов должно быть настроено беспарольное взаимодействие между rootами контроллеров домена (см. Настройка беспарольного доступа по ssh).
  2. Создать резервную копию исходного файла конфигурации DHCP-сервера и скопировать файл конфигурации с первого сервера:
    # cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
    # scp dc1:/etc/dhcp/dhcpd.conf /etc/dhcp/
    
  3. В файле /etc/dhcp/dhcpd.conf внести изменения в раздел «failover peer "dhcp-failover"»:
    failover peer "dhcp-failover" {
      secondary;
      address dc2.test.alt; # Полное DNS-имя имя резервного DHCP-сервера
      port 647;
      peer address dc1.test.alt; # Полное DNS-имя основного DHCP-сервера
      peer port 847;
      max-response-delay 60;
      max-unacked-updates 10;
      load balance max seconds 3;
    }
    
  4. Отключить chroot для DHCP-сервера:
    # control dhcpd-chroot disabled
    

Примечание

Параметр split должен быть установлен только на ведущем DHCP-сервере. Этот параметр управляет балансировкой нагрузки двух серверов. Параметр может принимать значения от 0 до 255. Если установлено значение «255», основной сервер, если он не отключен (по какой-либо причине), будет отвечать на все запросы DHCP. Если установить значение «128», то оба DHCP-сервера будут использоваться одинаково. Подробности смотрите на man-странице dhcpd.conf.
Далее следует перезапустить оба DHCP-сервера:
# systemctl restart dhcpd
В системном журнале на обоих серверах должны появиться записи вида:
dhcpd[7879]: failover peer dhcp-failover: peer moves from recover-done to normal
dhcpd[7879]: failover peer dhcp-failover: Both servers normal
Если OMAPI работает правильно, можно проверить переход на другой ресурс, остановив основной сервер.