Установка сервера DHCP
Все команды, которые используются в статье, необходимо выполнять из-под учетной записи root-пользователя или от имени обычного пользователя с правами sudo.
Первый шаг заключается в установке самого DHCP-сервера. Пакет называется isc-dhcp-server. Для его установки достаточно выполнить команду:
apt update && apt -y install isc-dhcp-server
Настройка сервера DHCP
После того как пакет DHCP установлен, приступаем к настройке сервера. Для начала необходимо выбрать сетевой интерфейс, которым он будет пользоваться. Для этого выполняем команду:
ip a
Кроме того, можно использовать команду ifconfig при условии, что у вас установлен пакет net-tools:
ifconfig
Если нет, установите его с помощью команды apt -y install net-tools.
Выберите необходимый интерфейс, если у вас их более одного. В этом примере в качестве сетевого интерфейса я использую интерфейс с именем eth0 и подсетью 192.168.32.4/24.
Запоминаем имя выбранного сетевого интерфейса и открываем на редактирование файл isc-dhcp-server с помощью любого текстового редактора:
nano /etc/default/isc-dhcp-server
Ищем параметр INTERFACESv4 и в его значение прописываем имя выбранного сетевого интерфейса:
INTERFACESv4="eth0"
Не перепутайте этот параметр с похожим, который находится ниже — INTERFACESv6. Он используется для адресов формата IPv6. Сохраняем изменения и выходим из файла.
Далее открываем следующий конфигурационный файл — dhcpd.conf:
nano /etc/dhcp/dhcpd.conf
Находим в нем 2 параметра — option domain-name и option domain-name-servers — и комментируем их с помощью символа #. Мы не используем DNS-сервер, и у нас отсутствуют какие-либо доменные имена:
# option domain-name "example.org";
# option domain-name-servers ns1.example.org, ns2.example.org;
В этом же файле раскомментируем (удаляем символ #) параметр authoritative, который объявляет сервер «ответственным» (главным) в обслуживаемой сети:
authoritative;
В самый конец файла добавляем диапазон для IP-адресов, которые будут назначаться автоматически. Еще необходимо задать подсеть и адрес маршрутизатора. Все эти параметры можно узнать с помощью команд ip a или ifconfig.
В примере я использую следующие значения:
subnet 192.168.32.0 netmask 255.255.255.0 {
range 192.168.32.5 192.168.32.50;
option routers 192.168.32.1;
}
Где:
subnet 192.168.32.0 — используемая подсеть;
netmask 255.255.255.0 — маска подсети;
range 192.168.32.5 192.168.32.50 — диапазон IP-адресов, который будет использоваться для автоматического назначения: начиная с 192.168.32.5 по 192.168.32.50 включительно;
option routers 192.168.32.1 — адрес, на котором располагается маршрутизатор.
А еще обратите внимание на такие важные параметры, как:
default-lease-time — срок аренды, на который DHCP-сервер назначает IP-адрес клиенту. Измеряется в секундах.
max-lease-time — максимальный промежуток времени, на который DHCP-сервер назначает адрес клиенту. Измеряется в секундах.
После того как все необходимые изменения внесены, сохраняем их и выходим из файла. Далее запускаем сервис isc-dhcp и добавляем его в автозагрузку:
systemctl start isc-dhcp-server && systemctl enable isc-dhcp-server
Проверяем, что сервер DHCP успешно запущен командой:
systemctl status isc-dhcp-server
Если в статусе отображается active (running), то DHCP запустился и работает.
Проверка работоспособности DHCP-сервера
Для проверки воспользуемся другим сервером с Ubuntu, который находится в той же подсети. В последних версиях Ubuntu для работы с сетевой конфигурацией используется утилита netplan. Открываем на редактирование основной конфигурационный файл с именем 00-installer-config.yaml, в котором задаются сетевые настройки для интерфейса:
nano /etc/netplan/00-installer-config.yaml
Приводим файл к следующему виду:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: true
Где eth0 — это имя используемого сетевого интерфейса. Сохраняем изменения и выходим из файла. Применяем внесенные изменения с помощью команды:
netplan apply
C помощью команд ip a или ifconfig проверяем, чтобы интерфейсу был назначен IP-адрес из ранее выделенного диапазона:
ifconfig
Серверу автоматически назначен IP-адрес 192.168.32.5.
В этой статье мы рассмотрели создание своего DHCP-сервера. Благодаря использованию DHCP все устройства в локальной сети будут автоматически получать IP-адрес при подключении. Если у вас много устройств, это позволит сохранить немало времени, избежать конфликтов и ошибок.