Установка и базовая настройка DHCP сервера на Linux Ubuntu

Обновлено Обновлено: Опубликовано Опубликовано:

Используемые термины: DHCP, Ubuntu.

Инструкция, в большей степени, протестирована на Ubuntu, но также будет работать для других дистрибутивов DEB — Debian и Astra Linux. Для настройки DHCP в системах на базе RPM, читайте инструкцию Установка и настройка DHCP сервера на Linux CentOS.

Установка и настройка

Сервер DHCP в Ubuntu может быть реализован с помощью пакета isc-dhcp-server. Его можно установить из стандартных репозиториев системы.

Выполняем обновления кэша пакетов и установку:

apt update

apt install isc-dhcp-server

Сразу после установки открываем конфигурационный файл:

vi /etc/dhcp/dhcpd.conf

Комментируем строки:

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Добавляем конфигурацию для раздачи сетевых настроек:

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.200;
  option domain-name-servers 192.168.0.10, 192.168.0.11;
  option domain-name "dmosk.local";
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  default-lease-time 600;
  max-lease-time 7200;
}

* где

  • subnet — сеть, для которой будет работать данная группа настроек. Обратите внимание, что она должна соответствовать используемой на одном из сетевых интерфейсов сервера.
  • range — диапазон, из которого будут браться IP-адреса.
  • option domain-name-servers — через запятую перечисленные DNS-сервера.
  • option domain-name — суффикс доменного имени.
  • option routers — шлюз по умолчанию.
  • option broadcast-address — адрес сети для широковещательных запросов.
  • default-lease-time и max-lease-time — время и максимальное время в секундах, на которое клиент получит адрес, по его истечению будет выполнено продление срока.

Проверить корректность конфигурационного файла можно командой:

dhcpd -t -cf /etc/dhcp/dhcpd.conf

Разрешаем автозапуск сервиса:

systemctl enable isc-dhcp-server

и перезапускаем его:

systemctl restart isc-dhcp-server

По умолчанию, брандмауэр в Ubuntu не запрещает входящие соединения. Но если в вашей конфигурации основное правило запрещающее, то добавляем UDP-порт 67:

iptables -I INPUT -p udp --dport 67 -j ACCEPT

Для сохранения настройки можно использовать iptables-persistent:

apt install iptables-persistent

netfilter-persistent save

Сервер готов к работе.

Возможные проблемы

Not configured to listen on any interfaces!

Сервис dhcp не запускается, а в логе можно увидеть ошибки, на подобие:

No subnet declaration for ens18 (192.168.1.10).
...
** Ignoring requests on ens18.  If this is not what
   you want, please write a subnet declaration
   in your dhcpd.conf file for the network segment
   to which interface ens18 is attached. **
...
Not configured to listen on any interfaces

Причина: в конфигурационном файле описана подсеть, которая не настроена ни на одном из сетевых интерфейсов сервера.

Решение: конфигурация subnet должна включать только те подсети, в которых настроен сам сервер DHCP. Посмотреть сетевые настройки можно командой:

ip a

После чего необходимо проверить настройки в конфигурационном файле сервера dhcp.

Читайте также

Другие инструкции, связанные с DHCP:

1. Резервирование IP-адреса на сервере DHCP в Linux.

2. Установка и настройка DHCP сервера на Linux CentOS 7.

3. Как настроить автоматическое получение IP-адреса в Windows.

# Ubuntu # Серверы # Сети
Дмитрий Моск — частный мастер
Была ли полезна вам эта инструкция?

Да            Нет