← Сеть: основы
10 мин · просто · Урок 12 из 13

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 приезжают опции, которых хватает для полной настройки сети:

На современном 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 или статика.

Трек закрывает квиз: проверь, что осталось в голове после всей сетевой части.

Дрилл · вопросы как на собесе

Проверь себя без подсказок

Сформулируй ответ вслух или письменно, потом раскрой и честно отметь: знал или нет.

01

Опиши процесс получения адреса по DHCP. Что выдаётся кроме IP?

NET-107
02

Что такое аренда DHCP и что происходит, когда она истекает?

NET-108

Прошли материал до конца? Отметьте урок пройденным.