Сервер dhcp на debian

В статье рассмотрим установку и настройку сервера раздачи ip адресов в сети (dhcp) на операционной системе debian. Начальная настройка сервера производилась по статье Начальная настройка сервера debian

Установка dhcp сервера

sudo apt install isc-dhcp-server

Настройка интерфейса для сервера dhcp

sudo nano /etc/default/isc-dhcp-server

Необходимо изменить значение INTERFACEv4 и INTERFACEv6 если используется ipv6, если не используется, то закомментировать

# Defaults for isc-dhcp-server (sourced by /etc/init.d/isc-dhcp-server)

# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPDv4_CONF=/etc/dhcp/dhcpd.conf
#DHCPDv6_CONF=/etc/dhcp/dhcpd6.conf

# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPDv4_PID=/var/run/dhcpd.pid
#DHCPDv6_PID=/var/run/dhcpd6.pid

# Additional options to start dhcpd with.
#       Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""

# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
#       Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="enp3s0"
#INTERFACESv6=""

Настройка самого сервера dhcp, настройки разложены по отдельным файлам. Главный файл

sudo nano /etc/dhcp/dhcpd.conf
authoritative;
log-facility local7;
ddns-update-style interim;
update-static-leases    on;
include "/etc/dhcp/dhcpd.d/ddns.conf";
include "/etc/dhcp/dhcpd.d/subnet_lan.conf";
include "/etc/dhcp/dhcpd.d/static.conf";

Создадим и отредактируем остальные файлы. Первый это настройки динамической записи dns, т.е. при получении клиентом ip адреса в прямой и обратной зонах dns также автоматически будут сделаны соответствующие записи

sudo nano /etc/dhcp/dhcpd.d/ddns.conf
key DHCP_UPDATER {
        algorithm hmac-md5;
        secret "hi/CIXoy+pGalrBzxmNYNQ==";
        }

zone lct.loc. {
        primary 127.0.0.1;
        key DHCP_UPDATER;
        }

zone 5.5.10.in-addr.arpa. {
        primary 127.0.0.1;
        key DHCP_UPDATER;
        }
  • secret — ключ, сгенерированный при настройке dns сервера
  • 127.0.0.1 — наш сервер dns

Файл настроек для клиентской сети с комментариями

sudo nano /etc/dhcp/dhcpd.d/subnet_lan.conf
#lan
        option domain-name "lct.loc";
        option domain-name-servers 10.5.5.5;
        # переменная для определения архитектуры клиента:
        option arch code 93 = unsigned integer 16;
        # пространство имен для ipxe
        option space ipxe;
        option ipxe.no-pxedhcp code 176 = unsigned integer 8;
        default-lease-time 600;
        max-lease-time 7200;
        authoritative;
        # Выделение подсети
        subnet 10.5.5.0 netmask 255.255.255.0 {
        range 10.5.5.21 10.5.5.100;
        option domain-name-servers 10.5.5.5;
        option domain-name "lct.loc";
        option routers 10.5.5.5;
        option broadcast-address 10.5.5.255;
        default-lease-time 600;
        option domain-search "lct.loc";
        option subnet-mask 255.255.255.0;
        default-lease-time 3600;
        max-lease-time 36000;
        ddns-updates on;
        }
        # отключение задержки в iPXE ожидания прокси DHCP.
        option ipxe.no-pxedhcp = 1;
        # Используя ранее установленную переменную,
        # в зависимости от режима загрузки клиента,
        # идет выбор, какой загрузчик отправить клиенту:
        if option arch = 00:07 {
        filename "ipxe.efi";
        } else {
        filename "undionly.kpxe";
        }
        # Установка корневой директории с загрузчиками и конфигурациями
        next-server 10.5.5.5;
        option tftp-server-name "10.5.5.5";
        option root-path "tftp://10.5.5.5:/srv/pxe/";

Опционально, файл для настроек статического ip адреса клиенту

sudo nano /etc/dhcp/dhcpd.d/static.conf
host pc0 {
        hardware ethernet xx:xx:xx:xx:xx:xx;
        fixed-address 10.5.5.11;
        }

host pc1 {
        hardware ethernet yy:yy:yy:yy:yy:yy;
        fixed-address 10.5.5.12;
        }

На этом настройка dhcp сервера окончена.