DHCP: как хост получает адрес
Последовательность DORA, что кроме IP выдаёт DHCP-сервер и как живёт аренда адреса.
Четыре шага DORA
Хост без адреса не может просто «спросить сервер»: он ещё не знает ни своего адреса, ни адреса сервера. Поэтому DHCP начинается с широковещательных запросов. Обмен из четырёх шагов называют DORA:
клиент сервер
DISCOVER (broadcast) -------> "кто тут DHCP? мне нужен адрес"
<------- OFFER "предлагаю 192.168.1.42"
REQUEST (broadcast) -------> "беру 192.168.1.42"
<------- ACK "твой, аренда 12 часов"
REQUEST идёт широковещательно не случайно: DHCP-серверов в сети может быть несколько, и так все видят, чьё предложение клиент принял.
Что выдаётся кроме адреса
Вместе с адресом в ACK приезжают опции, которых хватает для полной настройки сети:
- маска подсети;
- шлюз по умолчанию (default gateway);
- DNS-серверы;
- иногда домен поиска, NTP-серверы и другое.
На современном Linux адресами обычно заведует systemd-networkd, и выданное
показывает networkctl:
$ networkctl status eth0
Address: 192.168.1.42
Gateway: 192.168.1.1
DNS: 192.168.1.1
Сырую аренду со всеми опциями systemd-networkd складывает в
/run/systemd/netif/leases/, файл называется по индексу интерфейса:
$ sudo cat /run/systemd/netif/leases/2
ADDRESS=192.168.1.42
ROUTER=192.168.1.1
DNS=192.168.1.1
На десктопах и там, где сетью рулит NetworkManager, то же самое смотрят
через nmcli:
$ nmcli device show eth0
Старый клиент ISC dhclient с лизами в /var/lib/dhcp/dhclient.leases
встречается на legacy-системах: проект закрыт, в Ubuntu 24.04 его уже нет.
Аренда
Адрес выдаётся не навсегда, а в аренду (lease) на срок. На половине срока клиент просит продление у того же сервера; получил ACK и живёт дальше с тем же адресом. Если сервер молчит, клиент пробует ещё, а по истечении аренды обязан отпустить адрес и начать DORA заново.
Отсюда практические следствия. Сервер обычно закрепляет адрес за MAC-адресом, поэтому машина из раза в раз получает один и тот же IP. А для серверов и сетевого оборудования адрес либо фиксируют на DHCP-сервере (reservation), либо задают статикой: сервис, который внезапно сменил IP, входит в классику ночных инцидентов.
Попросить адрес заново вручную под systemd-networkd:
$ sudo networkctl renew eth0
$ networkctl status eth0 # проверить, что приехало
Под NetworkManager то же делает переподнятие соединения (имя берётся из
nmcli con show):
$ sudo nmcli con up "Wired connection 1"
Что важно запомнить
DORA: Discover -> Offer -> Request -> Ack, первые шаги широковещательные.
DHCP выдаёт не только IP: маску, шлюз, DNS.
Адрес живёт в аренде; продление начинается с половины срока, потерянная аренда запускает DORA заново.
Серверам — фиксированный адрес: reservation на DHCP или статика.
Трек закрывает квиз: проверь, что осталось в голове после всей сетевой части.
Дрилл · вопросы как на собесе
Проверь себя без подсказок
Сформулируй ответ вслух или письменно, потом раскрой и честно отметь: знал или нет.
Опиши процесс получения адреса по DHCP. Что выдаётся кроме IP?
NET-107Что такое аренда DHCP и что происходит, когда она истекает?
NET-108Прошли материал до конца? Отметьте урок пройденным.
Прогресс сохранён в этом браузере
Почистишь историю или откроешь с телефона, и отметки пропадут. Оставь почту, они переедут в аккаунт. Пароль придумывать не нужно.
Готово. теперь в аккаунте: прогресс виден с любого устройства. Мой прогресс