linux-labs

Вики / Службы и systemd

DHCP-сервер

Сервис Ubuntu 24.04 · isc-dhcp / kea СлужбыСеть

Раздача адресов в сети — пул, резервации, аренды, диагностика.

DHCP-сервер автоматически выдаёт клиентам IP-адрес, шлюз, DNS и прочее. В Linux — isc-dhcp-server (классика) или kea (новый от ISC). Клиентскую часть см. в ip/netplan.

systemctl status isc-dhcp-server
journalctl -u isc-dhcp-server -f  # видеть DISCOVER/OFFER/REQUEST/ACK

/etc/dhcp/dhcpd.conf:

default-lease-time 3600;
max-lease-time 86400;

subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.100 10.0.0.200;
    option routers 10.0.0.1;
    option domain-name-servers 1.1.1.1, 8.8.8.8;
}

# фиксированный адрес по MAC (резервация)
host printer {
    hardware ethernet aa:bb:cc:dd:ee:ff;
    fixed-address 10.0.0.50;
}

Укажи интерфейс в /etc/default/isc-dhcp-server (INTERFACESv4="eth0"), затем sudo systemctl restart isc-dhcp-server.

cat /var/lib/dhcp/dhcpd.leases     # активные аренды (кто что получил)
sudo dhcpd -t                      # проверить синтаксис конфига
journalctl -u isc-dhcp-server      # лог переговоров DHCP

Клиенты не получают адрес

  • Сервис слушает нужный интерфейс (INTERFACESv4)?
  • Подсеть в dhcpd.conf совпадает с подсетью интерфейса?
  • DHCP использует широковещание — между клиентом и сервером не должно быть блокировки (или нужен dhcp-relay через маршрутизатор).
  • В журнале видно DHCPDISCOVER, но нет DHCPOFFER → нет подходящего subnet/range.

Конфликт адресов / два DHCP в сети

Два сервера выдают из пересекающихся пулов. В сети должен быть один авторитетный DHCP (или строго разделённые пулы).

Резервация по MAC не срабатывает

Точный MAC (hardware ethernet) и адрес вне динамического range.

sudo dhcpd -t                      # проверить конфиг
cat /var/lib/dhcp/dhcpd.leases     # кто что арендовал
journalctl -u isc-dhcp-server      # DISCOVER/OFFER/ACK
# dhcpd.conf: subnet/range/option routers/option domain-name-servers; host{} — резервация