Настройка DHCP сервера: полное руководство по установке, конфигурации и управлению пулом IP-адресов | AdminWiki

Настройка DHCP сервера: полное руководство по установке, конфигурации и управлению пулом IP-адресов

29 июля 2026 12 мин. чтения
Содержание статьи

Введение: зачем нужен DHCP и как он работает

Ручное назначение IP-адресов, маски подсети, шлюза и DNS-серверов каждому устройству в сети - это прямой путь к хаосу и ошибкам. Опечатка в одном октете приводит к конфликту адресов и недоступности сервиса. DHCP (Dynamic Host Configuration Protocol) решает эту проблему централизованно: сервер автоматически выдаёт корректные сетевые параметры клиентам при подключении.

Ядро работы DHCP - четырёхшаговый процесс DORA. Клиент отправляет широковещательный запрос Discover на поиск серверов. Один или несколько серверов отвечают сообщением Offer с предложением IP-адреса. Клиент выбирает предложение и отправляет Request для подтверждения. Сервер фиксирует аренду ответом Acknowledge. Вся процедура занимает доли секунды.

Ключевые термины, с которыми вы будете работать: scope (область) - диапазон адресов для конкретной подсети, lease (аренда) - временной интервал, на который выдаётся адрес, и reservation (резервирование) - привязка фиксированного IP к MAC-адресу устройства. Мы разберём настройку на Windows Server и Linux с пошаговыми инструкциями, готовыми к применению.

Перед началом убедитесь, что сервер, на который вы устанавливаете роль DHCP, сам имеет статический IP-адрес. Это обязательное требование - DHCP-сервер с динамическим адресом создаст петлю неопределённости в сети.

Установка и базовая настройка DHCP сервера на Windows Server

Установка роли DHCP на Windows Server выполняется через стандартный мастер добавления ролей и компонентов. Процесс одинаков для Windows Server 2016, 2019, 2022 и 2026. После установки обязательна авторизация сервера в Active Directory - без неё служба не начнёт раздавать адреса клиентам.

Добавление роли DHCP через Server Manager

Откройте Server Manager и выберите Add Roles and Features. На экране Before You Begin нажмите Next. Выберите Role-based or feature-based installation и укажите целевой сервер из пула. В списке ролей отметьте DHCP Server - мастер предложит добавить необходимые компоненты управления, подтвердите.

На шаге Features оставьте значения по умолчанию. Экран DHCP Server содержит краткое описание роли - прочитайте и нажмите Next. Завершите установку кнопкой Install. Процесс занимает одну-две минуты. После завершения в Server Manager появится уведомление о необходимости завершить настройку - нажмите на него для запуска мастера пост-установки.

Мастер пост-установки предложит создать группы безопасности DHCP Administrators и DHCP Users. Первая даёт права на управление конфигурацией DHCP, вторая - только на просмотр. Если вы работаете в доменной среде, делегируйте эти группы через AD для разграничения доступа.

Авторизация DHCP-сервера в Active Directory

Авторизация - это механизм защиты от несанкционированных DHCP-серверов в домене. Неавторизованный сервер не отвечает на запросы клиентов. Откройте консоль DHCP из меню Tools в Server Manager. Если сервер не авторизован, его иконка будет с красной стрелкой вниз. Щёлкните правой кнопкой по имени сервера и выберите Authorize. Через несколько секунд иконка сменится на зелёную стрелку вверх.

Для принудительной авторизации через командную строку используйте netsh:

netsh dhcp add server <имя_сервера> <IP_адрес>

Эта команда требует прав Enterprise Admin. После авторизации сервер готов к созданию областей и раздаче адресов.

Установка и базовая настройка DHCP сервера на Linux

На Linux стандартным решением выступает пакет isc-dhcp-server от Internet Systems Consortium. Он поддерживает все возможности протокола DHCP, включая динамическое обновление DNS и резервирование. Установка и минимальная конфигурация занимают не более десяти минут.

Установка и минимальная конфигурация isc-dhcp-server

Установите пакет через менеджер пакетов вашего дистрибутива:

sudo apt update && sudo apt install isc-dhcp-server -y   # Debian/Ubuntu
sudo dnf install dhcp-server -y                         # RHEL/Rocky Linux

После установки укажите сетевой интерфейс, на котором служба будет слушать запросы. Отредактируйте файл /etc/default/isc-dhcp-server (Debian) или /etc/sysconfig/dhcpd (RHEL):

INTERFACESv4="eth1"

Теперь создайте минимальную рабочую конфигурацию в файле /etc/dhcp/dhcpd.conf:

subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.100 192.168.10.200;
    option routers 192.168.10.1;
    option domain-name-servers 8.8.8.8, 8.8.4.4;
    default-lease-time 600;
    max-lease-time 7200;
}

Этот блок определяет подсеть 192.168.10.0/24, пул адресов от 100 до 200, шлюз по умолчанию и DNS-серверы. Параметр default-lease-time задаёт время аренды в секундах (600 = 10 минут), max-lease-time - максимальное время, которое клиент может запросить.

Запустите службу и добавьте её в автозагрузку:

sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl status isc-dhcp-server

Статус должен показывать active (running). Если запуск не удался, проверьте логи: sudo journalctl -u isc-dhcp-server -f.

Настройка файрвола для DHCP-трафика

DHCP использует порты 67/UDP (сервер) и 68/UDP (клиент). Если файрвол блокирует эти порты, клиенты не получат адреса. Для UFW откройте порты командой:

sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo ufw reload

Для iptables добавьте правила:

sudo iptables -A INPUT -p udp --dport 67 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 68 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

Проверьте, что правила применились: sudo iptables -L -v | grep -E "67|68". После открытия портов клиенты в подсети начнут получать адреса из настроенного пула.

Создание и управление областями (Scopes) и пулом IP-адресов

Область (scope) - это логическая единица конфигурации DHCP, привязанная к одной подсети. Она определяет диапазон раздаваемых адресов, исключения, время аренды и дополнительные параметры. Грамотное проектирование областей исключает конфликты адресов и упрощает диагностику.

Создание новой области (Scope) в Windows Server

В консоли DHCP раскройте дерево сервера, щёлкните правой кнопкой по IPv4 и выберите New Scope. Мастер проведёт вас через пять шагов:

  1. Имя и описание: укажите понятное имя, например «Офисная подсеть 2-й этаж».
  2. Диапазон адресов: введите начальный и конечный IP. Маска подсети подставится автоматически по классу, но вы можете указать свою через CIDR-нотацию.
  3. Исключения: добавьте адреса, которые не должны выдаваться динамически - например, статические IP серверов и сетевого оборудования.
  4. Длительность аренды: значение по умолчанию - 8 дней. Измените при необходимости.
  5. Настройка параметров DHCP: укажите шлюз (003 Router), DNS-серверы (006 DNS Servers) и доменное имя (015 DNS Domain Name).

На последнем шаге мастер предложит активировать область - выберите Yes, I want to activate this scope now. Неактивная область не раздаёт адреса.

Определение подсети и пула адресов в dhcpd.conf

В Linux конфигурация области задаётся блоком subnet в файле dhcpd.conf. Синтаксис строгий - каждая директива заканчивается точкой с запятой, блоки обрамляются фигурными скобками. Пример расширенной конфигурации:

subnet 10.0.1.0 netmask 255.255.255.0 {
    range 10.0.1.50 10.0.1.150;
    range 10.0.1.200 10.0.1.220;
    option routers 10.0.1.1;
    option domain-name-servers 10.0.1.10, 10.0.1.11;
    option domain-name "office.local";
    default-lease-time 86400;
    max-lease-time 604800;
}

Директива range может повторяться для создания несмежных пулов. Адреса, не попавшие ни в один range, автоматически считаются исключёнными. После изменения конфигурации перезапустите службу: sudo systemctl restart isc-dhcp-server.

Управление временем аренды адресов (Lease Time)

Время аренды определяет, как долго клиент может использовать выданный IP без повторного запроса. Слишком короткий интервал создаёт лишний трафик, слишком длинный - истощает пул адресами отключённых устройств.

Рекомендации по выбору длительности:

  • Стационарные ПК в офисе: 8 дней (691200 секунд). Минимизирует служебный трафик, адреса стабильны.
  • Гостевые Wi-Fi сети: 1–2 часа (3600–7200 секунд). Освобождает адреса ушедших посетителей.
  • Серверная подсеть: 30 дней с резервированиями для критичных узлов.

В Windows время аренды настраивается в свойствах области на вкладке General. В Linux - параметрами default-lease-time и max-lease-time в секундах. Просмотреть активные аренды в Windows можно через консоль DHCP в разделе Address Leases, в Linux - командой dhcp-lease-list из пакета isc-dhcp-server.

Если вы переносите DHCP-сервер на новую платформу, изучите наше руководство по миграции DHCP на Windows Server 2026 - там детально разобран экспорт и импорт базы аренд с сохранением всех резервирований.

Резервирование IP-адресов (Reservations) для статических устройств

Резервирование привязывает конкретный IP-адрес к MAC-адресу устройства. Принтер, сервер или IP-камера всегда получают один и тот же адрес, но при этом управляются централизованно через DHCP. Это удобнее ручного назначения статики на каждом устройстве - вы меняете параметры (DNS, шлюз) в одном месте, и они применяются ко всем зарезервированным узлам.

Создание резервирования в Windows Server

В консоли DHCP раскройте нужную область и щёлкните правой кнопкой по папке Reservations. Выберите New Reservation. Заполните поля:

  • Reservation name: имя устройства, например «Принтер бухгалтерии».
  • IP address: желаемый адрес из пула области.
  • MAC address: физический адрес устройства без дефисов и двоеточий.

MAC-адрес можно узнать через ipconfig /all на Windows или ip link на Linux. Для сетевых принтеров он обычно указан на наклейке или в веб-интерфейсе. После создания резервирования устройство всегда будет получать заданный IP - даже если его выключить на месяц.

Настройка статического IP через DHCP в Linux

В dhcpd.conf резервирование задаётся блоком host внутри соответствующего блока subnet:

subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.100 192.168.10.200;
    option routers 192.168.10.1;

    host printer-accounting {
        hardware ethernet 00:1A:2B:3C:4D:5E;
        fixed-address 192.168.10.50;
    }
}

Директива hardware ethernet указывает MAC-адрес, fixed-address - закрепляемый IP. Адрес из fixed-address должен находиться внутри подсети, но вне диапазона range, иначе возможен конфликт с динамической выдачей. После редактирования конфигурации выполните sudo systemctl restart isc-dhcp-server.

Интеграция DHCP с DNS: настройка динамического обновления записей

Динамическое обновление DNS (DDNS) автоматически создаёт и удаляет прямые (A) и обратные (PTR) записи при выдаче и освобождении аренды. Без этой настройки вы не узнаете имя хоста по IP-адресу, а клиенты не найдут друг друга по имени. В средах с Active Directory DDNS критически важен - контроллеры домена регистрируют через него служебные SRV-записи.

Для глубокой настройки DNS в смешанных средах обратитесь к нашему руководству по DNS-маршрутизации Linux, Windows и BSD - там разобрана интеграция BIND с Active Directory и автоматическое обновление через DHCP.

Настройка динамического обновления DNS в Windows Server

Откройте свойства области в консоли DHCP и перейдите на вкладку DNS. Включите опцию Enable DNS dynamic updates according to the settings below. Доступны три режима:

  • Dynamically update DNS records only if requested by the DHCP clients: обновление выполняется, только если клиент явно запросил его. Режим по умолчанию, подходит для большинства сред.
  • Always dynamically update DNS records: сервер обновляет записи принудительно, даже если клиент не запрашивал. Полезно для устаревших клиентов, не поддерживающих DDNS.
  • Discard A and PTR records when lease is deleted: автоматически удаляет записи при истечении или удалении аренды. Рекомендуется включить для предотвращения мёртвых записей.

Для безопасного обновления в доменной среде настройте учётную запись на вкладке AdvancedCredentials. Создайте отдельного пользователя в AD с минимальными правами и укажите его здесь - DHCP-сервер будет выполнять обновление DNS от его имени.

Интеграция DHCP с BIND DNS в Linux

Связка isc-dhcp-server и BIND требует генерации TSIG-ключа для аутентификации обновлений. Сгенерируйте ключ:

dnssec-keygen -a HMAC-SHA256 -b 256 -n HOST dhcp-update

Скопируйте содержимое ключа из сгенерированного файла .private в оба конфигурационных файла. В /etc/bind/named.conf.local добавьте:

key "dhcp-update" {
    algorithm hmac-sha256;
    secret "ваш_сгенерированный_ключ";
};

zone "office.local" {
    type master;
    file "/etc/bind/db.office.local";
    allow-update { key dhcp-update; };
};

В /etc/dhcp/dhcpd.conf добавьте глобальные директивы и описание зон:

ddns-updates on;
ddns-update-style interim;
update-static-leases on;

key dhcp-update {
    algorithm hmac-sha256;
    secret "ваш_сгенерированный_ключ";
}

zone office.local {
    primary 127.0.0.1;
    key dhcp-update;
}

zone 10.168.192.in-addr.arpa {
    primary 127.0.0.1;
    key dhcp-update;
}

После перезапуска обеих служб проверьте логи на наличие ошибок аутентификации. Успешное обновление записей подтвердит появление A и PTR записей в зонах BIND.

Диагностика и устранение типовых ошибок DHCP

Даже правильно настроенный DHCP-сервер может столкнуться с проблемами. Конфликты адресов, истощение пула и ошибки авторизации - три самые частые причины сбоев. Разберём каждую с конкретными методами диагностики.

Конфликты IP-адресов и как их обнаружить

Конфликт возникает, когда два устройства получают одинаковый IP. На Windows-клиенте появляется сообщение «Обнаружен конфликт IP-адресов», сетевое соединение работает нестабильно или отключается. Причина - статический адрес, вручную назначенный внутри пула DHCP, или два DHCP-сервера в одной подсети.

Для обнаружения конфликтов в Windows Server включите логирование конфликтов в свойствах сервера DHCP на вкладке Advanced. События записываются в Event Viewer в раздел Applications and Services Logs → Microsoft → Windows → DHCP-Server. Утилита dhcploc.exe (доступна в составе Windows Support Tools) показывает все DHCP-пакеты в сети и помогает найти несанкционированный сервер.

На Linux используйте tcpdump для захвата DHCP-трафика:

sudo tcpdump -i eth1 -n port 67 or port 68

Если видите ответы от двух разных IP на порт 67 - в сети два DHCP-сервера. Отключите или авторизуйте только один из них.

Истощение пула адресов: мониторинг и расширение

Истощение пула происходит, когда все адреса из диапазона range выданы клиентам. Новые устройства не могут подключиться к сети. Симптом: клиент получает APIPA-адрес вида 169.254.x.x.

В Windows Server проверьте статистику области: правый клик по области → Display Statistics. Поля In Use и Available показывают занятые и свободные адреса. Если свободных меньше 10%, расширьте диапазон или добавьте дополнительный range. В Linux используйте скрипт для подсчёта аренд:

grep "lease" /var/lib/dhcp/dhcpd.leases | wc -l

Для расширения пула добавьте ещё одну директиву range в dhcpd.conf или измените существующую. Не забудьте проверить, что новые адреса не конфликтуют со статическими назначениями в сети.

Проблемы с авторизацией DHCP-сервера в домене

Неавторизованный сервер в Windows-домене не раздаёт адреса. Иконка в консоли DHCP горит красной стрелкой. Причины: сервер не был авторизован после установки, утратил авторизацию после переименования или смены IP, либо учётная запись, выполнявшая авторизацию, не имела прав Enterprise Admin.

Решение - повторная авторизация через консоль DHCP или принудительно через netsh:

netsh dhcp add server <FQDN_сервера> <IP_адрес>

Проверьте, что сервер присутствует в списке авторизованных в Active Directory Sites and Services → Services → NetServices. Если запись отсутствует, создайте её вручную или выполните авторизацию заново с правами администратора домена.

На Linux проблемы с запуском службы чаще всего связаны с синтаксическими ошибками в dhcpd.conf. Перед перезапуском всегда проверяйте конфигурацию:

sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf

Команда выведет строку с ошибкой и её описание. Частая проблема - отсутствие блока subnet для интерфейса, указанного в INTERFACESv4. DHCP-сервер требует явного описания подсети для каждого интерфейса, на котором он слушает запросы.

Для комплексной настройки сетевых служб на Linux изучите наше практическое руководство по Linux для IT-специалистов - там разобраны все аспекты сетевой конфигурации, от базовых утилит до VPN.

Заключение: чек-лист для проверки работоспособности DHCP-сервера

После завершения настройки пройдите по этому чек-листу. Каждый пункт подтверждает корректность одного из ключевых компонентов.

  1. Сервер авторизован (Windows) или служба запущена (Linux). Зелёная стрелка в консоли DHCP или статус active (running) в systemctl.
  2. Область активирована. В Windows область должна быть в состоянии Active, в Linux - блок subnet присутствует в конфигурации и не закомментирован.
  3. Клиент получает IP из нужного диапазона. Подключите тестовый компьютер, выполните ipconfig /all (Windows) или ip addr show (Linux). Адрес должен быть из заданного range.
  4. DNS-записи обновляются. Проверьте наличие A и PTR записей для тестового клиента в DNS-зоне. На Windows используйте оснастку DNS, на Linux - dig <имя_клиента> @<DNS-сервер>.
  5. Резервирования работают. Устройство с зарезервированным MAC-адресом всегда получает заданный IP, даже после перезагрузки и истечения аренды.

Если все пять пунктов пройдены, DHCP-сервер настроен корректно и готов к промышленной эксплуатации. Для углублённого изучения смежных тем - настройки DNS и сетевой маршрутизации - обратитесь к соответствующим разделам базы знаний. Регулярно проверяйте статистику областей и обновляйте конфигурацию при изменении топологии сети.

Поделиться:
Сохранить гайд? В закладки браузера