Что такое DHCP?
Вы подключаете новую IP-камеру к сети. Втыкаете Ethernet-кабель — и через пару секунд камера появляется в локальной сети с IP-адресом, маской подсети, шлюзом и DNS-сервером. Вы не вводили ничего вручную. Не заходили в настройки камеры. Не назначали адрес. Всё произошло автоматически. Это сделал DHCP.
DHCP (Dynamic Host Configuration Protocol) — протокол, который автоматически назначает сетевые параметры устройствам при подключении к сети. IP-адрес, маска подсети, адрес шлюза (маршрутизатора), адреса DNS-серверов — всё это устройство получает от DHCP-сервера без какого-либо ручного вмешательства.
Без DHCP каждому устройству пришлось бы задавать сетевые настройки вручную. В сети из пяти устройств — неудобно, но терпимо. В умном доме с пятьюдесятью — невозможно. А если учесть, что многие IoT-устройства (розетки, датчики, ESP-модули) не имеют удобного интерфейса для ввода настроек — DHCP становится не просто удобством, а необходимостью.
Протокол стандартизирован в RFC 2131 (для IPv4). Для IPv6 существует DHCPv6 (RFC 8415), но в домашних сетях пока доминирует IPv4, и в этой статье мы говорим о нём.
Процесс получения адреса называется DORA — по первым буквам четырёх сообщений.
Discover. Устройство подключается к сети и не знает ничего — ни своего адреса, ни адреса сервера. Оно отправляет широковещательный запрос: «Есть тут DHCP-сервер? Мне нужен IP-адрес».
Offer. DHCP-сервер слышит запрос и отвечает предложением: «Вот тебе адрес 192.168.1.42, маска 255.255.255.0, шлюз 192.168.1.1, DNS 192.168.1.1. Адрес твой на 24 часа».
Request. Устройство принимает предложение и подтверждает: «Хочу именно этот адрес, 192.168.1.42».
Acknowledge. Сервер фиксирует: «Адрес 192.168.1.42 закреплён за тобой до завтра». Устройство настраивает сетевой интерфейс и начинает работать.
Весь процесс занимает доли секунды. Устройство даже не успевает мигнуть светодиодом.
В домашней сети DHCP-сервер — это, как правило, маршрутизатор. Встроенный DHCP-сервер включён по умолчанию на всех домашних роутерах: TP-Link, ASUS, Keenetic, MikroTik, OpenWrt — везде.
Но DHCP-сервер может работать и на отдельном устройстве: на Home Assistant (аддон), на Pi-hole или AdGuard Home, на выделенном Linux-сервере. В профессиональных сетях DHCP нередко выносят на отдельный сервер для гибкости и отказоустойчивости.
Критически важно: в одной сети (в одном VLAN / в одной подсети) должен быть только один DHCP-сервер. Два DHCP-сервера — это конфликт: устройства получают адреса от разных серверов, адреса пересекаются, сеть ломается. Типичная ошибка — подключить второй роутер в режиме маршрутизатора (а не в режиме точки доступа) и получить два DHCP-сервера в одной сети.
DHCP-сервер раздаёт адреса из заданного диапазона — пула (pool). Например, с 192.168.1.100 по 192.168.1.200. Это 101 адрес. Каждое новое устройство получает следующий свободный.
Срок аренды (lease time) — время, на которое адрес закрепляется за устройством. По умолчанию — обычно 24 часа или 12 часов (зависит от прошивки роутера). По истечении половины срока устройство автоматически запрашивает продление. Если устройство отключилось и не продлило аренду — адрес через время возвращается в пул и может быть выдан другому.
Для умного дома рекомендуется увеличить срок аренды до нескольких дней или недели. IoT-устройства работают круглосуточно и редко отключаются — короткий срок аренды создаёт лишний трафик от постоянных обновлений. Длинный — снижает нагрузку и уменьшает вероятность кратковременных проблем при обновлении аренды.
Динамический DHCP удобен: подключил — получил адрес — работает. Но для некоторых устройств важно, чтобы адрес не менялся. Если Home Assistant находит Mosquitto по адресу 192.168.1.10, а завтра DHCP выдаст Mosquitto адрес 192.168.1.57 — всё сломается.
Решение — DHCP Reservation (резервирование). DHCP-сервер назначает конкретному устройству один и тот же адрес каждый раз. Устройство идентифицируется по MAC-адресу (уникальному аппаратному адресу сетевого интерфейса). Устройство отправляет DHCP-запрос, сервер видит знакомый MAC и выдаёт зарезервированный адрес.
Какие устройства стоит закрепить:
Резервирование настраивается в веб-интерфейсе роутера: указываете MAC-адрес устройства и желаемый IP. В OpenWrt — через LuCI (Network → DHCP and DNS → Static Leases) или через конфигурационный файл /etc/config/dhcp.
Адреса для резервирования лучше выбирать за пределами динамического пула. Пул — 192.168.1.100–200, резервированные — 192.168.1.2–99. Так динамические и статические адреса не пересекутся.
Если в сети настроены VLAN — каждому VLAN нужен свой DHCP-сервер (или один сервер, обслуживающий несколько подсетей). Каждый VLAN — отдельная подсеть с собственным диапазоном адресов.
Пример:
Маршрутизатор с поддержкой VLAN (OpenWrt, MikroTik, pfSense) создаёт виртуальный интерфейс для каждого VLAN и запускает на нём DHCP-сервер с соответствующими настройками.
Устройство подключается к Wi-Fi-сети «IoT» → попадает в VLAN 20 → получает адрес из пула 192.168.20.x → видит только устройства в своём VLAN. Всё автоматически, без ручной настройки на стороне устройства.
DHCP-сервер, помимо IP-адреса, сообщает устройству адрес DNS-сервера. По умолчанию — адрес самого маршрутизатора (который использует DNS провайдера). Но это можно изменить.
Если в сети работает AdGuard Home или Pi-hole — укажите его адрес как DNS-сервер в настройках DHCP. Все устройства в сети автоматически начнут использовать фильтрующий DNS. Реклама и трекеры блокируются для всех — включая устройства, на которые нельзя установить блокировщик (телевизоры, IoT).
Для разных VLAN можно указать разные DNS-серверы. Основная сеть — AdGuard Home. IoT — AdGuard Home с другими правилами (или без фильтрации, если устройства ломаются при блокировке). Гостевая — публичный DNS (Google, Cloudflare).
DHCP может передавать устройству не только адрес, маску и DNS. Стандарт определяет десятки «опций» (DHCP Options), позволяющих передать дополнительную информацию.
Наиболее полезные в домашнем контексте:
Option 6 (DNS Servers). Адреса DNS-серверов. Можно указать несколько.
Option 15 (Domain Name). Имя домена для локальной сети (например, home.local или lan). Устройства смогут обращаться друг к другу по имени: homeassistant.lan вместо 192.168.1.10.
Option 42 (NTP Servers). Адрес сервера времени. Полезно для IoT-устройств, которые не умеют определять NTP-сервер автоматически.
Option 66/67 (TFTP Server / Bootfile). Используются для сетевой загрузки (PXE boot). Экзотика для дома, но если вы загружаете Home Assistant или другую ОС по сети — вот он.
Устройство не получает IP-адрес. Проверьте: работает ли DHCP-сервер? Не исчерпан ли пул адресов? Не заблокирован ли MAC-адрес устройства? Нет ли второго DHCP-сервера в сети? В OpenWrt — логи dnsmasq в системном журнале покажут все DHCP-запросы и ответы.
Два DHCP-сервера в сети. Частая причина хаоса. Подключили второй роутер или включили DHCP на устройстве, которое не должно его раздавать. Симптомы: часть устройств получает «правильные» адреса, часть — «чужие». Решение: оставьте один DHCP-сервер, на остальных — отключите.
Конфликт IP-адресов. Два устройства получили один адрес. Обычно это следствие ручного назначения адреса (статического IP на устройстве) в диапазоне DHCP-пула. Решение: статические адреса — вне пула, или используйте DHCP Reservation вместо ручной настройки.
Устройство «теряет» адрес. Короткий срок аренды + нестабильная связь = устройство не успевает продлить аренду, адрес уходит в пул, устройство получает новый. Решение: увеличить срок аренды или зарезервировать адрес.
DHCP — один из тех сервисов, которые работают настолько незаметно, что о них вспоминают только когда они ломаются. Включил устройство — оно в сети. Никаких настроек. Никаких ручных адресов. Просто работает.
Для умного дома DHCP — фундамент. Без него каждое из пятидесяти устройств пришлось бы настраивать вручную, помнить адреса, разруливать конфликты. С DHCP — подключил и забыл. А для устройств, адрес которых должен быть постоянным, — резервирование решает задачу элегантно: устройство по-прежнему получает адрес автоматически, но каждый раз один и тот же.
Настройте DHCP один раз, зарезервируйте адреса для ключевых устройств, увеличьте срок аренды — и больше к этой теме возвращаться не придётся.
Статья подготовлена на основе стандартов RFC 2131, документации OpenWrt и материалов сообщества. Все упомянутые торговые марки принадлежат их правообладателям. Материал носит информационный характер и не является рекламой.