Вики / Службы и systemd
DHCP-сервер
Раздача адресов в сети — пул, резервации, аренды, диагностика.
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{} — резервация
См. также
- ip (адреса и маршруты) — Сеть
- Файрвол (nftables / ufw) — Сеть
- DNS и разрешение имён — Сеть