Настройка DCHP сервера в Debian/Ubuntu Linux
Сервер DHCP в сети занимается выдачей IP адресов устройствам. Одновременно с выдачей адресов.
Установка сервера DHCP
Этот пакет скорее всего один из старейших резидентов всевозможных репозиториев. Устанавливаем из стандартного:
apt install isc-dhcp-server
Настройка сервера DHCP
Первая настройка в файле /etc/default/isc-dhcp-server, в котором нужно указать необходимые для прослушивания интерфейсы системы, физические и виртуальные.
INTERFACESv4="ens18,eth0,vlan1"
Файл записей аренды адресов располагается по умолчанию /var/lib/dhcp/dhcpd.leases
Дальнейшая настройка производится в основном конфигурационном файле /etc/dhcp/dhcpd.conf,
где необходимо указать основное имя домена и DNS
option domain-name "antroot.ru"; option domain-name-servers 10.0.2.1, 10.0.2.2;
Если устанавливается DHCP сервер, значит планируется раздавать IP адреса этим сервером, поэтому указываем, что он уполномочен это делать:
authoritative;
Следует указать все подсети, к которым подключен сервер, чтобы он понимал конфигурацию сети, указывая только в нужной параметры раздачи IP адресов
subnet 10.0.1.0 netmask 255.255.255.0 { }
subnet 10.0.2.0 netmask 255.255.255.0 { }
subnet 10.0.3.0 netmask 255.255.255.0 {
    range 10.0.3.50 10.0.3.99;
    option subnet-mask 255.255.255.0;
    option routers 10.0.3.2;
    option domain-name-servers 10.0.2.1;
}Для фиксации IP адреса определенному устройству в сети можно указать его MAC адрес
host some-client {
  hardware ethernet fe:ce:12:34:56:78;
  fixed-address 10.0.3.11;
  option host-name "antroot-1";
  ddns-hostname "antroot-1";
}Несколько хостов можно объединить в группу group, чтобы задать общие для группы параметры:
group {
  # общие для группы параметры
  option domain-name "antroot.lan";
  option domain-name-servers 10.0.3.2;
  option routers 10.0.3.2;
  host srv1 {
    # параметры хоста srv1
    hardware ethernet fe:ce:12:34:56:78;
    fixed-address 10.0.3.11;
  }
  host srv2 {
    # параметры хоста srv2
    hardware ethernet fe:ce:12:34:56:79;
    fixed-address 10.0.3.12;
  }
}Для определенной подсети subnet пула pool группы group можно указать время аренды IP адреса в секундах - это бывает нужно для тестовых машин, когда их создается очень много на короткое время, чтобы пул адресов быстрее освобождался:
max-lease-time 300; default-lease-time 300;
Подсеть subnet может быть разделена на пулы pool, каждому из которых можно определить свои дополнительные параметры:
subnet 10.0.3.0 netmask 255.255.255.0 {
  option routers 10.0.3.2;
  pool {
    range 10.0.3.150 10.0.3.199;
    option domain-name-servers 10.0.3.2;
    max-lease-time 300;
    default-lease-time 300;
    allow unknown-clients;
  }
  pool {
    range 10.0.3.50 10.0.3.99;
    option domain-name-servers 10.0.2.1, 10.0.3.2;
    deny unknown-clients;
  }
}Журналирование сервера DHCP
Включаем маркирование логов в файле dhcpd.conf
log-facility local7;
Затем необходимо добавить в конфигурацию syslog перенаправление в отдельный файл, для чего в директории /etc/rsyslog.d/ добавить файл isc-dhcp-server.conf с таким содержимым:
local7.* /var/log/dhcpd.log & ~
и в основном файле конфигурации отключить запись в /var/log/syslog этих сообщений
*.*;auth,authpriv.none -/var/log/syslog # заменить на *.*;auth,authpriv.none;local7.none -/var/log/syslog
systemctl restart rsyslog
Запуск сервера DHCP
systemctl start isc-dhcp-server systemctl enable isc-dhcp-server systemctl status isc-dhcp-server