DHCP
Оригинальное название: DHCP (Dynamic Host Configuration Protocol)
Коротко
Сетевой протокол, по которому устройство при подключении автоматически получает IP-адрес, маску подсети, шлюз и адреса DNS-серверов.
Что такое «DHCP»
Когда ноутбук подключается к офисному Wi-Fi, ему нужно знать свой адрес в сети, через какой маршрутизатор выходить в интернет и у кого спрашивать адреса сайтов. Вводить это вручную на каждом телефоне и принтере никто не хочет, да и ошибиться легко: два устройства с одинаковым адресом мешают друг другу. DHCP раздаёт эти настройки автоматически.
В домашней сети роль DHCP-сервера выполняет роутер, в офисе — роутер или отдельный сервер, у хостинг-провайдера — его инфраструктура. Протокол работает поверх UDP: сервер слушает порт 67, клиент — порт 68.
Как проходит выдача адреса
- Discover — новое устройство широковещательно спрашивает: «Есть тут DHCP-сервер?»
- Offer — сервер предлагает свободный адрес из пула.
- Request — клиент просит закрепить предложенный адрес.
- Acknowledge — сервер подтверждает и сообщает срок аренды.
По первым буквам последовательность называют DORA. До истечения аренды клиент продлевает её, и адрес обычно сохраняется. Если устройство пропало, адрес после окончания срока возвращается в пул.
Пример настройки сервера
Фрагмент конфигурации ISC DHCP для небольшой сети:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 192.168.1.1;
default-lease-time 86400;
}
Устройства получат адреса со 100 по 200, шлюз и DNS по адресу роутера, аренду на сутки. Подробнее о том, как записывается диапазон сети, — в статье про маску подсети.
Когда DHCP не нужен
Серверам, принтерам и камерам удобнее постоянный адрес: на него настроены правила файрвола, проброс портов и DNS-записи. Для этого используют либо статическую настройку, либо резервирование — DHCP-сервер всегда выдаёт устройству с конкретным MAC-адресом один и тот же адрес. Если компьютер получил адрес вида 169.254.x.x, значит, DHCP-сервер не ответил и система назначила адрес сама. Проверить текущие настройки можно командой ipconfig /all в Windows или ip addr в Linux. Чем публичный IP-адрес отличается от внутреннего, выданного роутером, разобрано отдельно.

