DHCP

Предпосылки: IP и маршрутизация (IP-адрес, маска подсети, шлюз по умолчанию), Ethernet и коммутация (MAC-адрес, широковещание).

IP и маршрутизация | NAT

Для работы в сети устройству нужны три параметра: IP-адрес, маска подсети и шлюз по умолчанию. В предыдущей заметке они просто “были” — теперь вопрос: откуда они берутся?

Можно настроить вручную на каждом устройстве. Для сервера, который годами работает на одном месте, это нормально. Для ноутбука, который подключается к разным сетям — Wi-Fi в офисе, дома, в кафе — ручная настройка нереальна. Нужен протокол, который автоматически выдаёт устройству сетевые параметры при подключении.

DHCP: автоматическая выдача адресов

DHCP (Dynamic Host Configuration Protocol) — протокол, который автоматически назначает IP-адреса и другие сетевые параметры. DHCP-сервер обычно работает на роутере или на выделенном сервере в сети.

DORA: четыре шага получения адреса

Ноутбук подключается к Wi-Fi в офисе. У него есть MAC-адрес, но нет IP — он не знает ни свой адрес, ни адрес DHCP-сервера. Как связаться с сервером, не зная его адреса?

Через широковещание. Процесс получил название DORA — по первым буквам четырёх сообщений:

Discover. Ноутбук отправляет широковещательное сообщение (на адрес 255.255.255.255): “Я MAC:AA:BB:CC:DD:EE:FF, мне нужен IP-адрес”. Все устройства в сети получают это сообщение, но только DHCP-сервер на него реагирует.

Offer. DHCP-сервер отвечает предложением: “Могу дать тебе 192.168.1.42, маска 255.255.255.0, шлюз 192.168.1.1, DNS 8.8.8.8, аренда на 8 часов”. Если в сети несколько DHCP-серверов, клиент получит несколько Offer и выберет первый.

Request. Ноутбук принимает предложение (тоже широковещательно, чтобы другие DHCP-серверы знали, что их предложение отклонено): “Хочу 192.168.1.42 от сервера X”.

Acknowledge. Сервер подтверждает: “Адрес 192.168.1.42 твой на 8 часов”. С этого момента ноутбук работает в сети.

Аренда (Lease)

DHCP не выдаёт адрес навсегда — это аренда (lease) на определённый срок. Типичное время: от 1 часа (публичный Wi-Fi) до 24 часов (офисная сеть) и более.

На середине срока аренды клиент отправляет запрос на продление (напрямую серверу). Если сервер доступен — аренда продлевается. Если сервер недоступен — клиент повторяет попытку. Если аренда истекла, а продлить не удалось — клиент теряет адрес и начинает DORA заново.

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

Relay: DHCP через роутер

DHCP Discover — широковещательный пакет. Роутеры по умолчанию не пропускают широковещание между сетями. Если DHCP-сервер находится в другой подсети, устройства не смогут его найти.

DHCP Relay (relay agent) решает эту проблему: роутер, настроенный как relay, перехватывает DHCP-запросы в своей сети и пересылает их напрямую на DHCP-сервер в другой подсети. Ответ сервера возвращается тем же путём. Это позволяет использовать один DHCP-сервер для нескольких подсетей.

Статический vs динамический

DHCP выдаёт адреса из пула динамически — какой свободен, тот и назначается. Но для некоторых устройств (принтеры, серверы, сетевое оборудование) нужен фиксированный адрес. DHCP поддерживает резервирование (reservation): администратор привязывает конкретный IP к конкретному MAC-адресу. Устройство проходит DORA, но всегда получает один и тот же адрес.

DHCP решает проблему конфигурации для IPv4. В IPv6 есть встроенный механизм автоконфигурации (SLAAC), но DHCPv6 тоже используется: иногда только для дополнительных параметров, а иногда и для централизованной выдачи адресов, если так устроена политика сети.


IP и маршрутизация | NAT