Базовая настройка DHCP-сервера в Linux

Оцените статью

Давно я DHCP-сервера не настраивал и все уже забыл, а раньше записать не удосужился. Исправим это досадное упущение и рассмотрим несколько вариантов настройки применительно к нашей «любимой RedOS 8».

Простейшая конфигурация DHCP-сервера

Выбор и установка пакета

В большинстве дистрибутивов используется ISC DHCP Server (isc-dhcp-server) или dnsmasq (проще для малых сетей).

Для ISC DHCP (Debian/Ubuntu):

# apt install isc-dhcp-server # Debian/Ubuntu
# dnf install dhcp-server.x86_64 # RHEL/CentOS

Для dnsmasq (универсально):

# apt install dnsmasq # Debian/Ubuntu
# yum install dnsmasq # RHEL/CentOS

Настройка конфигурации для ISC DHCP Server

Укажите интерфейс в /etc/sysconfig/dhcpd:

DHCPDARGS="eth0" # замените на ваш интерфейс

Настройте диапазон IP в /etc/dhcp/dhcpd.conf:

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "localnet";
default-lease-time 600;
max-lease-time 7200;
}
  • subnet — подсеть сервера.
  • range — пул выдаваемых IP.
  • routers — шлюз по умолчанию.
  • domain-name-servers — DNS‑серверы.

Запускаем и настраиваем автозапуск:

# systemctl enable dhcpd
# systemctl start dhcpd

Для dnsmasq

Отредактируйте /etc/dnsmasq.conf:

interface=eth0
dhcp-range=192.168.1.10,192.168.1.100,12h
dhcp-option=3,192.168.1.1 # шлюз
dhcp-option=6,8.8.8.8,8.8.4.4 # DNS

Запускаем и настраиваем автозапуск:

# systemctl start dnsmasq
# systemctl enable dnsmasq

Проверяем, что в нашей сети появился DHCP-сервер.

Для обнаружения DHCP-сервера в сети можно восрользоваться утилитой nmap.

# nmap --script broadcast-dhcp-discover

Результат выполнения:

# nmap --script broadcast-dhcp-discover
Starting Nmap 7.94 ( https://nmap.org ) at 2026-01-23 13:51 MSK
Pre-scan script results:
| broadcast-dhcp-discover: 
|   Response 1 of 1: 
|     Interface: enp1s0
|     IP Offered: 10.101.5.20
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 10.101.5.2
|     IP Address Lease Time: 10m00s
|     Subnet Mask: 255.255.255.0
|     Router: 10.101.5.1
|     Domain Name Server: 8.8.8.8, 8.8.4.4
|_    Domain Name: internal.rain.shiskitech.ru
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 10.31 seconds

Дополнительно можно указать интерфейс для сканирования.

# nmap --script broadcast-dhcp-discover -e lxd-br

Интеграция DHCP и LDAP (Неудачный эксперимент вернемся к нему позже)

Использовать будем встроенный LDAP в FreeIPA.

Создаем пользователя в LDAP. Пользователь будет _dhcp с правами администратора (для редактирования данных в LDAP).

Сервисный пользователь FreeIPA

Параметры LDAP (сервиса slapd) хранятся в каталоге /etc/dirsrv/slapd-RAIN-SHISKITECH-RU где RAIN-SHISKITECH-RU это наш FreeIPA домен. Параметры схемы соответственно находятся в каталоге /etc/dirsrv/slapd-RAIN-SHISKITECH-RU/schema.

Авторизуемся и проверяем корректность работы запросов.

# kinit admin
# kilst
# ldapsearch -x uid=admin

Файл схемы для dhcpd находится в каталоге /etc/openldap/schema и имеет устаревший формат schema и нам надо его преобразовать в формат ldif.

Есть два варианта. Первый это преобразовать его вручную.

# dnf install openldap-servers openldap-clients
# mkdir -p /tmp/ldif_convert
# cd /tmp/ldif_convert
# echo "include /etc/openldap/schema/dhcp.schema" > /tmp/convert.conf
# slaptest -f /tmp/convert.conf -F /tmp/ldif_convert
# cp /tmp/ldif_convert/cn\=config/cn\=schema/cn\=\{0\}dhcp.ldif /etc/dirsrv/slapd-RAIN-SHISKITECH-RU/schema/60dhcp.ldif

Второй использовать готовый файл схемы:

https://github.com/Turgon37/freeipa-plugin-dhcp/tree/master/schema

Этот плагин и схема уже 10 лет не обновлялись.

Перезапускаем FreeIPA.

# systemctl restart ipa

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования