Что такое DHCP и как он работает?

«Что такое DHCP и как он работает?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DHCP (Dynamic Host Configuration Protocol) — это сетевой протокол для автоматической выдачи IP-адресов и других сетевых параметров (маска, шлюз, DNS-серверы) клиентским устройствам. В инфраструктуре DevOps он используется для автоматизации настройки виртуальных машин, контейнеров и физических серверов.

Принцип работы (DORA):

  1. Discover: Клиент, заходя в сеть, отправляет широковещательный запрос DHCPDISCOVER с вопросом "Есть ли DHCP-сервер?"
  2. Offer: DHCP-сервер отвечает DHCPOFFER, предлагая свободный IP-адрес из своего пула.
  3. Request: Клиент принимает предложение и отправляет DHCPREQUEST запрос на аренду этого адреса.
  4. Acknowledge: Сервер подтверждает аренду пакетом DHCPACK, передавая клиенту полную конфигурацию.

Пример настройки и диагностики в Linux:

# Проверить полученную конфигурацию
ip addr show eth0
# Или
dhclient -v eth0  # Принудительно запросить адрес

# Посмотреть аренды на сервере (ISC DHCP Server)
cat /var/lib/dhcp/dhcpd.leases

# Пример конфигурации сервера (dhcpd.conf)
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 8.8.8.8, 1.1.1.1;
  default-lease-time 600;
  max-lease-time 7200;
}

В DevOps-практике:

  • В облачных средах (AWS VPC, GCP) DHCP встроен и управляется самой платформой.
  • Для инфраструктуры в bare-metal или частном облаке часто используется dnsmasq или isc-dhcp-server.
  • Важно резервировать (static lease) IP-адреса для критичных серверов (например, DNS, шлюзов), чтобы их адреса не менялись.