Сетевые технологии · 7 min read · Nov 12, 2025
Как настроить резервирование DHCP на Centos 5.1
Как настроить резервирование DHCP на Centos 5.1
Версия 1.0.0
Автор: Andrew Colin Kissa
Введение
Этот учебник проведет вас через настройку резервирования DHCP на CentOS 5.1 с использованием стандартного ISC dhcp сервера, это можно легко адаптировать для любой другой Linux дистрибуции. Вам, скорее всего, понадобится резервирование в средах, где время простоя сети недопустимо. В моем доме работает DLNA, поэтому мне нужно, чтобы мои устройства могли получать сетевые параметры в любое время.
Поскольку DHCP и DNS часто идут рука об руку, я буду настраивать локальный DNS сервер, который позволяет динамические обновления, так что имена хостов будут автоматически обновляться в DNS всякий раз, когда аренда предоставляется клиенту.
Моя конфигурация будет использовать следующее, пожалуйста, замените на свои собственные сетевые параметры.
- Имя домена - home.topdog-software.com
- Сеть - 192.168.1.0/24
- DHCP сервера - 192.168.1.2,192.168.1.3
- Шлюз - 192.168.1.254
- DNS сервера - 192.168.1.2,192.168.1.3
Установка необходимых пакетов
- DHCP
# yum install dhcp -y - DNS
# yum install bind bind-chroot caching-nameserver -y - NTP
# yum install ntp -y
Конфигурация
DHCP
Создайте резервную копию вашей оригинальной конфигурации на Мастере 192.168.1.2:
Отредактируйте конфигурацию DHCP /etc/dhcpd.conf на мастере 192.168.1.2 и добавьте следующее, прочитайте комментарии, чтобы понять параметры:
authoritative; # сервер является авторитетным
option domain-name "home.topdog-software.com"; # имя домена
option domain-name-servers 192.168.1.2,192.168.1.3; # серверы имен
option netbios-name-servers 192.168.1.2; # netbios серверы
allow booting; # разрешить загрузку по сети
allow bootp; # разрешить загрузку
next-server 192.168.1.2; # TFTP сервер для загрузки
filename "pxelinux.0"; # ядро для сетевой загрузки
ddns-update-style interim; # настройка динамических обновлений DNS
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # имя домена для обновлений DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # получить из файла /etc/rndc.key
}
zone home.topdog-software.com # прямая зона для обновления
{
primary 127.0.0.1; # обновление на локальной машине
key rndckey; # ключ для использования при обновлении
}
zone 1.168.192.in-addr.arpa # обратная зона для обновления
{
primary 127.0.0.1; # обновление на локальной машине
key rndckey; # ключ для обновления
}
failover peer "home-net" { # конфигурация резервирования
primary; # Это первичный
address 192.168.1.2; # ip адрес первичного
port 647;
peer address 192.168.1.3; # ip адрес вторичного
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
split 128;
load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0 # зона для выдачи адресов
{
pool {
failover peer "home-net"; # пул для dhcp аренды с резервированием bootp не разрешено
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # разместите наших bootp клиентов здесь без репликации и резервирования
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
Создайте резервную копию вашей оригинальной конфигурации на Ресивере 192.168.1.3:
Отредактируйте конфигурацию DHCP /etc/dhcpd.conf на ресивере 192.168.1.3 и добавьте следующее, прочитайте комментарии, чтобы понять параметры:
authoritative; # сервер является авторитетным
option domain-name "home.topdog-software.com"; # имя домена
option domain-name-servers 192.168.1.2,192.168.1.3; # серверы имен
option netbios-name-servers 192.168.1.2; # netbios серверы
allow booting; # разрешить загрузку по сети
allow bootp; # разрешить загрузку
next-server 192.168.1.2; # TFTP сервер для загрузки
filename "pxelinux.0"; # ядро для сетевой загрузки
ddns-update-style interim; # настройка динамических обновлений DNS
ddns-updates on;
ddns-domainname "home.topdog-software.com"; # имя домена для обновлений DDNS
key rndckey {
algorithm hmac-md5;
secret "xxxxxxxxxx"; # получить из файла /etc/rndc.key на мастере
}
zone home.topdog-software.com # прямая зона для обновления
{
primary 192.168.1.2; # обновление на локальной машине
key rndckey; # ключ для использования при обновлении
}
zone 1.168.192.in-addr.arpa # обратная зона для обновления
{
primary 192.168.1.2; # обновление на локальной машине
key rndckey; # ключ для обновления
}
failover peer "home-net" { # конфигурация резервирования
secondary; # Это вторичный
address 192.168.1.3; # наш ip адрес
port 647;
peer address 192.168.1.2; # ip адрес первичного
peer port 647;
max-response-delay 60;
max-unacked-updates 10;
mclt 3600;
load balance max seconds 3;
}
subnet 192.168.1.0 netmask 255.255.255.0 # зона для выдачи адресов
{
pool {
failover peer "home-net"; # пул для dhcp аренды с резервированием bootp не разрешено
deny dynamic bootp clients;
option routers 192.168.1.254;
range 192.168.1.25 192.168.1.50;
}
pool { # разместите наших bootp клиентов здесь без репликации и резервирования
option routers 192.168.1.254;
range 192.168.1.51 192.168.1.55;
}
allow unknown-clients;
ignore client-updates;
}
DNS
Создайте резервную копию конфигурации Bind на мастере:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origОтредактируйте конфигурацию, чтобы отразить конфигурацию ниже.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; localnets; };
};
include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
zone "home.topdog-software.com" {
type master;
file "data/home.topdog-software.com.hosts";
allow-transfer { 192.168.1.3; };
allow-update { key "rndckey"; };
allow-query { any; };
};
zone "1.168.192.in-addr.arpa" {
type master;
file "data/1.168.192.in-addr.arpa.hosts";
allow-transfer { 192.168.1.3; };
allow-update { key "rndckey"; };
allow-query { any; };
};
Создайте резервную копию конфигурации Bind на ресивере:
# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.caching-nameserver.conf.origОтредактируйте конфигурацию, чтобы отразить конфигурацию ниже.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
query-source port 53;
query-source-v6 port 53;
allow-query { localhost; localnets; };
};
include "/etc/rndc.key";
include "/etc/named.rfc1912.zones";
zone "home.topdog-software.com" {
type slave;
masters { 192.168.1.2; };
file "data/home.topdog-software.com.hosts";
};
zone "1.168.192.in-addr.arpa" {
type slave;
masters { 192.168.1.2; };
file "data/1.168.192.in-addr.arpa.hosts";
};
Создайте файлы зон на мастере
- /var/named/chroot/var/named/data/home.topdog-software.com.hosts
$ORIGIN . $TTL 38400 home.topdog-software.com IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061629 ; серийный номер 10800 ; обновление (3 часа) 3600 ; повтор (1 час) 604800 ; истечение (1 неделя) 38400 ; минимальный (10 часов 40 минут) ) NS ns1.home.topdog-software.com. NS ns2.home.topdog-software.com. ns1 IN A 192.168.1.2 ns2 IN A 192.168.1.3 - /var/named/chroot/var/named/data/1.168.192.in-addr.arpa.hosts
$ORIGIN . $TTL 38400 ; 10 часов 40 минут 1.168.192.in-addr.arpa IN SOA ns1.home.topdog-software.com. andrew.topdog.za.net. ( 2008061644 ; серийный номер 10800 ; обновление (3 часа) 3600 ; повтор (1 час) 604800 ; истечение (1 неделя) 38400 ; минимальный (10 часов 40 минут) ) NS ns1.home.topdog-software.com. NS ns2.home.topdog-software.com. 2 IN PTR ns1.home.topdog-software.com. 3 IN PTR ns2.home.topdog-software.com.
NTP
NTP необходим, потому что два DHCP сервера должны быть синхронизированы для резервирования, а также для DDNS. Вы можете запустить полноценный NTP сервер, если хотите, я только предоставлю вам инструкции по использованию cron для синхронизации NTP с внешним NTP сервером каждый час. Вам нужно сделать это на ОБОИХ серверах.
- создайте файл /etc/cron.hourly/timesync и добавьте следующее:
#!/bin/bash # tpdate -s 0.rhel.pool.ntp.org - сделайте файл исполняемым и выполните его в первый раз:
# /etc/cron.hourly/timesync
В конце
Ну вот и все, давайте запустим службы и начнем тестирование.
- на мастере: # service named start
- на ресивере: # service named start
Вы должны увидеть следующее в ваших логах на мастере:
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: I move from recover to startup
Jun 16 13:58:56 kudusoft dhcpd: dhcpd startup succeeded
Jun 16 13:58:56 kudusoft dhcpd: failover peer home-net: I move from startup to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer moves from unknown-state to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 kudusoft dhcpd: Sent update request all message to home-net
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer moves from recover to recover
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 kudusoft dhcpd: Update request all from home-net: sending update
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: peer update completed.
Jun 16 13:59:12 kudusoft dhcpd: failover peer home-net: I move from recover to recover-done
Jun 16 13:59:13 kudusoft dhcpd: Sent update done message to home-net
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: peer moves from recover to recover-done
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: I move from recover-done to normal
Jun 16 13:59:13 kudusoft dhcpd: failover peer home-net: peer moves from recover-done to normal
Jun 16 13:59:14 kudusoft dhcpd: pool 914eb10 192.168.1/24 total 26 free 25 backup 0 lts -12
Jun 16 13:59:14 kudusoft dhcpd: pool 914eb10 192.168.1/24 total 26 free 25 backup 0 lts 12
А на ресивере:
Jun 16 13:59:12 shaka dhcpd: Sending on Socket/fallback/fallback-net
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: I move from recover to startup
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: peer moves from unknown-state to recover
Jun 16 13:59:12 shaka dhcpd: dhcpd startup succeeded
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: requesting full update from peer
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: I move from startup to recover
Jun 16 13:59:12 shaka dhcpd: Sent update request all message to home-net
Jun 16 13:59:12 shaka dhcpd: Sent update done message to home-net
Jun 16 13:59:12 shaka dhcpd: Update request all from home-net: nothing pending
Jun 16 13:59:12 shaka dhcpd: failover peer home-net: peer moves from recover to recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: peer update completed.
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: I move from recover to recover-done
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: peer moves from recover-done to normal
Jun 16 13:59:14 shaka dhcpd: failover peer home-net: I move from recover-done to normal
Jun 16 13:59:14 shaka dhcpd: pool 9d78ad8 192.168.1/24 total 26 free 25 backup 0 lts 12
Jun 16 13:59:14 shaka dhcpd: pool response: 12 leases
Get new posts in your inbox
No spam. Unsubscribe anytime.