
DHCP (Dynamic Host Configuration Protocol) — это протокол, который автоматически выдаёт устройству в сети IP-адрес, маску подсети, адрес шлюза и DNS-серверы. Компьютер или телефон при подключении сам спрашивает эти параметры у DHCP-сервера — обычно им работает роутер, — получает их во временную аренду и сразу выходит в сеть без ручной настройки.
Что такое DHCP простыми словами
Чтобы устройство могло общаться с другими, ему нужны четыре параметра: собственный IP-адрес, маска подсети, основной шлюз (куда отправлять трафик за пределы локальной сети) и адреса DNS-серверов. Раньше администратор прописывал их вручную на каждом компьютере и вёл таблицу, чтобы адреса не повторялись. DHCP снимает эту работу: сервер держит пул свободных адресов и раздаёт их по запросу, а когда устройство уходит из сети, адрес возвращается в пул.
Дома DHCP-сервер встроен в роутер, в офисе им бывает Windows Server, Linux-сервер или маршрутизатор MikroTik, у провайдера — отдельная система, которая выдаёт адрес вашему роутеру на WAN-порту. Сам протокол описан в RFC 2131, а для IPv6 существует отдельный вариант — DHCPv6.
Коротко о ролях:
- DHCP-сервер — хранит пул адресов, настройки сети и список выданных аренд.
- DHCP-клиент — служба в операционной системе (в Windows она так и называется — «DHCP-клиент»), которая запрашивает и продлевает адрес.
- DHCP relay — ретранслятор, который пересылает запросы клиентов из одного сегмента на сервер в другом сегменте.
Как работает протокол DHCP: процесс DORA
Получение адреса занимает четыре сообщения, по первым буквам их называют DORA. Обмен идёт по UDP: сервер слушает порт 67, клиент — порт 68.
- Discover. У клиента ещё нет адреса, поэтому он отправляет широковещательный пакет с адреса 0.0.0.0 на 255.255.255.255: «Есть в сети DHCP-сервер?» В пакете указан MAC-адрес клиента.
- Offer. Каждый сервер, получивший запрос, предлагает свободный адрес из пула вместе с маской, шлюзом, DNS и сроком аренды.
- Request. Клиент выбирает одно предложение (обычно первое пришедшее) и снова широковещательно сообщает, какой адрес и у какого сервера он берёт. Так остальные серверы понимают, что их предложение отклонено.
- Acknowledge. Выбранный сервер подтверждает аренду. С этого момента адрес закреплён за клиентом.
Кроме этих четырёх есть служебные сообщения: DHCPNAK (сервер отказывает, например, если клиент просит адрес из чужой подсети), DHCPDECLINE (клиент обнаружил, что предложенный адрес уже кем-то занят), DHCPRELEASE (клиент досрочно освобождает адрес) и DHCPINFORM (у клиента уже есть адрес, ему нужны только дополнительные параметры).
Что сервер передаёт кроме IP-адреса
Параметры передаются в виде нумерованных опций. Знать номера полезно: они фигурируют в настройках MikroTik, Windows Server и в дампах трафика.
| Опция | Что передаёт | Где встречается |
|---|---|---|
| 1 | Маска подсети | Всегда |
| 3 | Основной шлюз (router) | Всегда в сетях с выходом в интернет |
| 6 | DNS-серверы | Почти всегда |
| 15 | DNS-суффикс домена | Офисные сети, Active Directory |
| 42 | NTP-серверы | Сети с IP-телефонами и камерами |
| 51 | Срок аренды | Всегда |
| 66 / 67 | TFTP-сервер и имя загрузочного файла | Сетевая загрузка PXE, автонастройка IP-телефонов |
| 82 | Информация от relay-агента (порт, коммутатор) | Сети провайдеров, привязка абонента к порту |
Аренда IP-адреса DHCP и её срок
Адрес выдаётся не навсегда, а в аренду (lease) на заданный срок. Клиент не ждёт окончания: по RFC 2131 на половине срока (таймер T1) он пытается продлить аренду напрямую у того же сервера, а если сервер молчит, на 87,5% срока (T2) обращается широковещательно к любому серверу. Если продлить не удалось до конца аренды, адрес теряется и клиент начинает DORA заново.
Длину аренды выбирают по характеру сети. В гостевом Wi-Fi, где устройства постоянно меняются, срок делают коротким — несколько часов, чтобы пул не забивался ушедшими телефонами. В офисе со стационарными компьютерами можно ставить несколько суток: меньше служебного трафика и меньше шанс, что короткий сбой сервера оставит людей без сети. У Windows Server срок по умолчанию — 8 дней.
DHCP в роутере: что настраивать
В веб-интерфейсе домашнего роутера (как в него войти, описано в статье про 192.168.0.1 и 192.168.1.1) DHCP-сервер обычно находится в разделе «Локальная сеть», LAN или «Домашняя сеть». Названия пунктов у производителей разные, смысл одинаковый:
- Включить DHCP-сервер — должен быть включён на единственном устройстве в сети.
- Начальный и конечный адрес пула, например 192.168.1.100–192.168.1.199. Пул должен лежать внутри подсети роутера — проверить границы поможет таблица масок подсети.
- Время аренды — в минутах, часах или секундах, в зависимости от прошивки.
- Шлюз и DNS — по умолчанию роутер указывает себя; свои DNS-серверы можно прописать здесь, и они разойдутся по всем устройствам (подробнее — в руководстве по настройке DNS).
- Резервирование адресов (статический DHCP, привязка по MAC) — принтер, NAS или видеорегистратор получают через DHCP всегда один и тот же адрес. Это удобнее, чем прописывать адрес на самом устройстве: вся схема адресов хранится в одном месте.
Адреса, которые вы прописываете устройствам вручную, держите вне пула. Если принтеру вручную дан 192.168.1.120, а пул 100–199, рано или поздно роутер выдаст этот адрес ноутбуку, и начнётся конфликт IP.
DHCP на MikroTik
В Winbox мастер находится в IP → DHCP Server → DHCP Setup: выбираете интерфейс (обычно bridge), подсеть, шлюз, пул, DNS и срок аренды. То же из терминала:
/ip dhcp-server setup
/ip dhcp-server lease print
/ip dhcp-server lease make-static [find address=192.168.88.50]
Последняя команда превращает выданную динамическую аренду в постоянное резервирование. Чтобы MikroTik сам получал адрес от провайдера на WAN-порту, нужен DHCP-клиент: /ip dhcp-client add interface=ether1 disabled=no.
Свой DHCP-сервер на Linux или Windows Server
Для небольшой сети на Linux достаточно dnsmasq. Минимальная конфигурация в /etc/dnsmasq.conf:
interface=eth1
dhcp-range=192.168.10.100,192.168.10.200,255.255.255.0,12h
dhcp-option=option:router,192.168.10.1
dhcp-option=option:dns-server,192.168.10.1
dhcp-host=aa:bb:cc:dd:ee:ff,192.168.10.50
В Windows Server роль ставится и настраивается из PowerShell:
Install-WindowsFeature DHCP -IncludeManagementTools
Add-DhcpServerv4Scope -Name "Office" -StartRange 192.168.10.100 -EndRange 192.168.10.200 -SubnetMask 255.255.255.0
Set-DhcpServerv4OptionValue -ScopeId 192.168.10.0 -Router 192.168.10.1 -DnsServer 192.168.10.1
В домене Active Directory сервер ещё нужно авторизовать (Add-DhcpServerInDC), иначе он не будет выдавать адреса. Подробности — в основы DHCP в документации Microsoft.
DHCP или статический IP: что выбрать
DHCP не означает, что адрес будет каждый раз новым: с резервированием он постоянный, просто задаётся централизованно. Основные различия:
| Критерий | DHCP (динамический) | DHCP с резервированием | Статический, вручную |
|---|---|---|---|
| Настройка устройства | Не нужна | Не нужна | На каждом устройстве |
| Адрес постоянный | Не гарантированно | Да | Да |
| Риск конфликта IP | Минимальный | Минимальный | Высокий при ошибке |
| Смена DNS или шлюза | Один раз на сервере | Один раз на сервере | На каждом устройстве |
| Работа без DHCP-сервера | Нет | Нет | Да |
| Где уместно | Ноутбуки, телефоны, гости | Принтеры, NAS, камеры | Сам роутер, серверы, DHCP-сервер |
Не путайте адрес в локальной сети с внешним: статический или динамический IP от провайдера — отдельная история, она разобрана в статье о статическом и динамическом IP.
Как включить DHCP на сетевом адаптере в Windows
В Windows 11: Параметры → Сеть и Интернет → Ethernet (или Wi-Fi → свойства сети) → Назначение IP-адреса → Изменить → Автоматически (DHCP). То же для DNS-серверов.
Способ, который работает во всех версиях: нажмите Win+R, введите ncpa.cpl, откройте свойства адаптера, выберите IP версии 4 (TCP/IPv4) → Свойства и отметьте «Получить IP-адрес автоматически» и «Получить адрес DNS-сервера автоматически».
Из командной строки от имени администратора (имя адаптера посмотрите в ipconfig):
netsh interface ip set address name="Ethernet" source=dhcp
netsh interface ip set dns name="Ethernet" source=dhcp
Или в PowerShell:
Set-NetIPInterface -InterfaceAlias "Ethernet" -Dhcp Enabled
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses
Проверить результат: ipconfig /all. В блоке адаптера должно стоять «DHCP включен: Да», а в строке «DHCP-сервер» — адрес роутера. Там же видны время получения и окончания аренды.
Ошибка DHCP: «DHCP не включен на сетевом адаптере»
Это сообщение выдаёт средство диагностики сетей Windows, когда на адаптере вручную прописан адрес или DNS, а подключиться всё равно не получается. Порядок действий:
- Включите автоматическое получение адреса и DNS одним из способов выше.
- Проверьте, что служба «DHCP-клиент» запущена:
services.mscили командаsc query dhcp. Тип запуска — «Автоматически». - Обновите аренду:
ipconfig /release ipconfig /renew - Если адаптер по-прежнему без адреса, сбросьте стек TCP/IP и Winsock и перезагрузите компьютер:
netsh int ip resetиnetsh winsock reset.
«DHCP-сервер не найден» и адрес 169.254.x.x
Если ipconfig /renew отвечает «Не удается связаться с DHCP-сервером. Истекло время ожидания запроса», а в ipconfig адрес вида 169.254.x.x — клиент не дождался ответа. Такой адрес Windows назначает сама (механизм APIPA, RFC 3927), чтобы устройство могло хотя бы видеть соседей в том же сегменте. В интернет с ним не выйти. Причины, от частых к редким:
- кабель не вставлен до конца, повреждён или воткнут не в тот порт роутера;
- на роутере выключен DHCP-сервер или исчерпан пул — все адреса розданы;
- Wi-Fi подключён, но роутер завис — помогает его перезагрузка;
- включена фильтрация по MAC-адресам, и новое устройство в список не внесено;
- антивирус или сторонний файрвол блокирует UDP 67/68;
- в корпоративной сети порт коммутатора не пропускает запросы, либо между сегментами не настроен DHCP relay.
Если ошибку с упоминанием DHCP показывает ТВ-приставка или роутер провайдера (такие жалобы часто связаны с Ростелекомом), значит устройство не получило адрес от сети оператора. Проверьте, в какой порт роутера включена приставка — для IPTV часто выделяется отдельный порт, — и сделайте перезагрузку. Если не помогло, проблема на стороне провайдера, звоните в поддержку.
Два DHCP-сервера в одной сети
Коварная ситуация: второй роутер или точку доступа подключили кабелем LAN–LAN и забыли выключить на нём DHCP. Клиенты получают адреса то от одного, то от другого сервера, и часть устройств оказывается в чужой подсети с неправильным шлюзом. Симптом — интернет «то есть, то нет» у разных людей. Посмотрите поле «DHCP-сервер» в ipconfig /all на проблемном компьютере. Перечислить все отвечающие серверы можно через nmap:
sudo nmap --script broadcast-dhcp-discover
Лишний сервер отключите или переведите второй роутер в режим точки доступа. В управляемых сетях от этого защищает DHCP snooping — функция коммутатора, которая пропускает ответы DHCP только с доверенных портов и отбрасывает ответы «самозваного» сервера.
Обновить адрес в Linux и macOS
Linux с классическим клиентом ISC:
sudo dhclient -r eth0
sudo dhclient -v eth0
Первая команда освобождает аренду, вторая запрашивает новую и выводит весь обмен DORA. На современных дистрибутивах сетью чаще управляет NetworkManager или systemd-networkd:
nmcli connection modify "Wired connection 1" ipv4.method auto
nmcli connection up "Wired connection 1"
networkctl renew eth0
macOS: sudo ipconfig set en0 DHCP переводит интерфейс на DHCP, а ipconfig getpacket en0 показывает, что именно прислал сервер — адрес, шлюз, DNS и срок аренды. В графическом интерфейсе: Системные настройки → Сеть → Wi-Fi → Подробнее → TCP/IP → Запросить аренду DHCP.
Как проверить сеть после настройки DHCP
Локальный адрес покажут ipconfig или ip addr, а как проверить внешний адрес и адрес роутера, расписано в статье как узнать IP-адрес. Инструменты enterno.io помогут с остальным:
- IP-калькулятор — проверьте, что пул DHCP целиком лежит в подсети и не пересекается с адресом шлюза и широковещательным адресом.
- Проверка IP — внешний адрес, провайдер и ASN: так видно, что роутер получил адрес от оператора и вышел в интернет.
- Ping — доступен ли нужный сайт или сервер после обновления аренды.
Частые вопросы
Нужно ли включать DHCP в роутере?
Да, если в сети нет другого DHCP-сервера. Без него каждому телефону и ноутбуку придётся прописывать адрес вручную. Выключают DHCP только на втором роутере, работающем точкой доступа.
Какой DHCP-адрес выставить?
Пул выбирают внутри подсети роутера, не включая адрес самого роутера. Для сети 192.168.1.0/24 типичный вариант — 192.168.1.100–192.168.1.199, а адреса ниже оставляют для устройств с ручной настройкой.
Чем DHCP отличается от DNS?
DHCP выдаёт устройству сетевые настройки, в том числе адреса DNS-серверов. DNS переводит доменные имена в IP-адреса. Это разные протоколы, которые работают друг за другом.
Безопасен ли DHCP?
В протоколе нет аутентификации: любой узел в сегменте может назваться сервером и раздать свой шлюз и DNS. В домашней сети это решается паролем на Wi-Fi, в корпоративной — DHCP snooping на коммутаторах.
Что такое DHCP relay?
Широковещательные запросы не проходят через маршрутизатор. Relay-агент на маршрутизаторе принимает их в своём сегменте и пересылает на центральный сервер, поэтому один сервер обслуживает много подсетей. На Cisco это команда ip helper-address на интерфейсе.