Сервер 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 "adds.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
Сервер готов к работе.