335
0
0
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
Назад

Создаем свой DHCP-сервер на ОС Ubuntu 22.04 для локальной сети

Время чтения 2 минуты
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники
335
0
0
Нет времени читать?
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники

Привет! На связи Александр Бархатов — DevOps-инженер в крупнейшем продуктовом холдинге. Каждому устройству для взаимодействия по сети, будь это компьютер, смартфон, сетевой принтер и даже камера видеонаблюдения, необходим свой уникальный идентификатор в сети — IP-адрес. Существует два способа назначения IP-адресов: ручной — его прописываем на каждом устройстве, и автоматический — с помощью протокола DHCP. В этой статье мы установим DHCP-сервер на операционную систему Ubuntu 22.04. Он будет автоматически выдавать IP-адреса новым устройствам, подключаемым к сети.

Создаем свой DHCP-сервер на ОС Ubuntu 22.04 для локальной сети

Установка сервера 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-адрес при подключении. Если у вас много устройств, это позволит сохранить немало времени, избежать конфликтов и ошибок.

Комментарии0
Тоже интересно
Комментировать
Поделиться
Скопировать ссылку
Telegram
WhatsApp
Vkontakte
Одноклассники