Сетевые технологии · 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
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.