Установка и базовая настройка 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.