====== Настройка ISC DHCP Server ======
~ $ ./deploy_dhcp.sh
====== Пошаговое руководство: Настройка ISC DHCP Server (4.4.3-P1 и выше) ======
В этой статье мы разберем процесс установки и правильной конфигурации классического DHCP-сервера, а также решим частую проблему с порядком запуска служб.
01
===== Установка пакетов =====
Для начала необходимо установить сам сервер из официальных репозиториев. Мы будем использовать пакет ''%%dhcp-server%%'':
bash
apt-get update && apt-get install -y dhcp-server
Copy
02
===== Синхронизация служб (Ожидание сети) =====
**Важный нюанс:** По умолчанию DHCP-сервер может попытаться привязаться к сетевым интерфейсам до того, как системная утилита (например, ''%%NetworkManager%%'') успеет их инициализировать. Из-за этого DHCP-сервер выдаст ошибку и упадет при запуске системы.
Чтобы заставить службу DHCP дожидаться полного поднятия сети, включим системное событие ожидания ''%%network-online%%'':
bash
systemctl enable --now NetworkManager-wait-online
Copy
Далее создадим "переопределение" (override) для системного юнита ''%%dhcpd%%''. Команда ниже откроет редактор:
bash
EDITOR=vim systemctl edit dhcpd
Copy
Вставьте следующие строки в файл (обязательно между комментариями //"Anything between here and the comment below"// и //"Lines below this comment will be discarded"//):
override.conf
[Unit]
Wants=network-online.target
After=network-online.target
Copy
Сохраните изменения (в vim: ''%%ESC%%'', затем ''%%:wq%%'' и ''%%Enter%%'').
03
===== Расчет маски подсети =====
Прежде чем писать конфигурацию, нужно правильно указать маску подсети. Длина префикса (например, ''%%/28%%'') определяет количество единичных битов в маске. В последнем октете каждый из 8 битов представляет степень двойки: 128, 64, 32, 16, 8, 4, 2, 1.
* Префикс **/24** (все биты нули): маска ''%%255.255.255.0%%''
* Префикс **/25** (1 бит): ''%%128%%'' = маска ''%%255.255.255.128%%''
* Префикс **/26** (2 бита): 128 + 64 = маска ''%%255.255.255.192%%''
* Префикс **/27** (3 бита): 192 + 32 = маска ''%%255.255.255.224%%''
* Префикс **/28** (4 бита): 224 + 16 = маска ''%%255.255.255.240%%''
В нашей конфигурации ниже мы будем использовать в качестве примера сеть с маской ''%%255.255.255.240%%''.
04
===== Настройка файла dhcpd.conf =====
Откроем главный файл конфигурации DHCP-сервера:
bash
vim /etc/dhcp/dhcpd.conf
Copy
Разберем детально, из чего состоит блок настройки зоны (subnet). Подставьте ваши данные вместо шаблонных переменных:
**Объявление зоны адресов:** Укажите базовый адрес вашей сети и рассчитанную на предыдущем шаге маску:
dhcpd.conf
subnet ваш_адрес_сети netmask ваша_маска_подсети {
Copy
**Диапазон выдачи (пул):** Какие именно адреса сервер будет отдавать клиентам (от начального до конечного):
dhcpd.conf
range начальный_ip конечный_ip;
Copy
**Шлюз по умолчанию:** Адрес роутера (шлюза), через который клиенты будут выходить в интернет или другие сети:
dhcpd.conf
option routers IP_вашего_шлюза;
Copy
**Локальный домен:** Имя домена, которое будет передано клиентам для локальной маршрутизации имен:
dhcpd.conf
option domain-name "ваш_локальный_домен";
Copy
**DNS-серверы:** Адрес DNS-сервера (или нескольких через запятую) для разрешения доменных имен клиентами:
dhcpd.conf
option domain-name-servers IP_адрес_DNS_сервера;
Copy
**Время аренды:** Базовое и максимальное время (в секундах), на которое выдается IP-адрес устройству:
dhcpd.conf
default-lease-time 600;
max-lease-time 3600;
}
Copy
05
===== Применение настроек и проверка =====
Включите автоматический запуск DHCP-сервера вместе с ОС и запустите его прямо сейчас:
bash
systemctl enable --now dhcpd
Copy
Чтобы убедиться, что сервер корректно раздает адреса, перейдите на клиентскую машину (находящуюся в том же сегменте сети), перезагрузите её или переподнимите сетевой интерфейс, а затем проверьте выданные параметры:
bash (на клиенте)
reboot
# после загрузки:
ip -c a
Copy
В выводе команды вы должны увидеть IP-адрес из настроенного пула (от начального до конечного IP).
Nord Admin System Guides © 2026. Powered by Open Source.