Для отказоустойчивости мы развернули два ISC DHCP сервера в режиме failover. Каждый сервер обслуживает свой диапазон адресов, но при падении партнёра забирает его пул.
Конфигурация основного (primary) сервера:
# /etc/dhcp/dhcpd.conf — Primary DHCP Server (10.0.0.5)
authoritative;
default-lease-time 3600;
max-lease-time 7200;
log-facility local7;
# Failover конфигурация
failover peer "dhcp-failover" {
primary;
address 10.0.0.5;
port 647;
peer address 10.0.0.6;
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600; # Maximum Client Lead Time
split 128; # 50/50 split
load balance max seconds 3;
}
# Подсеть серверного зала 1
subnet 10.0.1.0 netmask 255.255.255.0 {
option routers 10.0.1.1;
option domain-name-servers 10.0.0.10, 10.0.0.11;
option domain-name "dc1.dataru.local";
option ntp-servers 10.0.0.10;
pool {
failover peer "dhcp-failover";
range 10.0.1.50 10.0.1.250;
}
}
# Серверный зал 2
subnet 10.0.2.0 netmask 255.255.255.0 {
option routers 10.0.2.1;
option domain-name-servers 10.0.0.10, 10.0.0.11;
option domain-name "dc2.dataru.local";
pool {
failover peer "dhcp-failover";
range 10.0.2.50 10.0.2.250;
}
}
# Серверный зал 3
subnet 10.0.3.0 netmask 255.255.255.0 {
option routers 10.0.3.1;
option domain-name-servers 10.0.0.10, 10.0.0.11;
option domain-name "dc3.dataru.local";
pool {
failover peer "dhcp-failover";
range 10.0.3.50 10.0.3.250;
}
}
Конфигурация secondary-сервера отличается тремя строками:
# Фрагмент /etc/dhcp/dhcpd.conf — Secondary (10.0.0.6)
failover peer "dhcp-failover" {
secondary; # <-- вместо primary
address 10.0.0.6;
port 647;
peer address 10.0.0.5;
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
load balance max seconds 3;
}
После запуска серверы синхронизируют базу leases и начинают работать в паре. Проверка статуса:
# Проверка failover-статуса
dhcpd -t -cf /etc/dhcp/dhcpd.conf # проверка синтаксиса
systemctl restart isc-dhcp-server
# Просмотр leases
cat /var/lib/dhcp/dhcpd.leases | grep -A5 "^lease"
# Мониторинг failover-состояния
omshell << 'EOF'
server 127.0.0.1
port 7911
connect
new failover-state
set name = "dhcp-failover"
open
EOF
Оставить комментарий