Настройка Dnsmasq как DHCP‑сервера

Быстрые ссылки
- Подготовка Dnsmasq
- Конфигурация DHCP
- Настройка статических IP
- Использование DHCP сервера
- Авторитетный режим
- Дополнительные настройки
- Безопасность и отладка
- Плейбук развертывания
- Критерии приёмки
- Краткое резюме
Dnsmasq — это лёгкий сетевой сервер, который предоставляет функции DNS, DHCP, TFTP и PXE. В этом руководстве описано, как настроить свежую установку Dnsmasq в качестве автономного DHCP‑сервера для локальной сети.
Определение: DHCP (Dynamic Host Configuration Protocol) — протокол, по которому устройства в сети получают IP‑адреса и сопутствующие параметры (шлюз, DNS и т. д.).
Подготовка Dnsmasq
Dnsmasq включён во многие дистрибутивы Linux. Если пакет не установлен, добавьте его через менеджер пакетов вашего дистрибутива:
# Debian/Ubuntu
sudo apt update && sudo apt install dnsmasq
# CentOS/RHEL
sudo yum install dnsmasqСтандартный файл конфигурации:
/etc/dnsmasq.confДля отдельных настроек используйте каталог:
/etc/dnsmasq.dПо умолчанию Dnsmasq слушает все сетевые интерфейсы. Если хотите ограничить работу конкретным интерфейсом, укажите его в конфиге:
# Only operate on eth0
interface=eth0Если DNS‑функциональность не нужна, отключите её, установив порт в 0:
port=0После этих шагов Dnsmasq готов работать в режиме только DHCP.
Конфигурация DHCP
Для включения DHCP укажите диапазон выдаваемых IP‑адресов:
dhcp-range=192.168.0.101,192.168.0.150,255.255.255.0,6hЭта строка заставляет Dnsmasq предлагать адреса от 192.168.0.101 до 192.168.0.150 в сети 255.255.255.0. Время аренды — 6 часов. Подбирайте значения под вашу сеть и избегайте пересечения с адресами, которые планируете назначать статически.
По умолчанию Dnsmasq будет предлагать себя в качестве шлюза. Если вы хотите, чтобы шлюзом оставался роутер, укажите его явно:
dhcp-option=3,192.168.0.1Замените IP на адрес вашего роутера. Клиенты будут использовать роутер как шлюз после получения аренды от Dnsmasq.
Настройка статических IP
Чтобы централизованно резервировать IP для конкретных устройств, используйте dhcp-host с MAC‑адресом:
dhcp-host=ab:cd:ef:12:34:56,example-host,192.168.0.10,infiniteВ этом примере устройство с MAC ab:cd:ef:12:34:56 получит имя example-host и фиксированный IP 192.168.0.10. Параметр infinite делает аренду бессрочной.
Можно добавлять столько строк dhcp-host, сколько нужно. Рекомендуется явно зарезервировать IP для роутера и критичных серверов.
Для удобства поддержания списка можно хранить хосты в отдельном файле или каталоге:
--dhcp-hostsfile=/etc/dnsmasq.d/hosts
--dhcp-hostsdir=/etc/dnsmasq.d/hosts.dПри использовании каталога Dnsmasq автоматически подхватывает изменения без перезапуска.
Использование DHCP сервера
После изменения конфигурации проверьте её корректность:
dnsmasq --testЗатем примените изменения перезапуском службы:
sudo systemctl restart dnsmasqОтключите встроенный DHCP на роутере. Настройте роутер или клиентские устройства на использование IP вашего Dnsmasq для DHCP. Шаги зависят от производителя роутера — см. документацию устройства.
Чтобы принудительно получить новую аренду на клиенте, перезапустите сетевой сервис на устройстве:
sudo systemctl restart networking
# или
sudo ifdown eth0 && sudo ifup eth0DNSMasq хранит текущие аренды в файле аренды. Посмотреть активные устройства можно так:
cat /var/lib/misc/dnsmasq.leasesЛоги службы покажут ошибки при возникновении проблем:
sudo journalctl -u dnsmasq.serviceАвторитетный режим
При добавлении нового DHCP‑сервера в существующую сеть устройства могут пытаться восстановить ранее выданные IP. Свежая инстанция Dnsmasq об этом не знает и может отклонять такие запросы — клиент повторит запрос позже и возможна задержка в подключении.
Если Dnsmasq будет единственным DHCP‑сервером в сети, добавьте:
dhcp-authoritativeВ этом режиме Dnsmasq принимает запросы от клиентов, даже если у него нет записи о предыдущих арендах, и быстрее выдаёт адрес, избегая длительных таймаутов.
Дополнительные настройки
Несколько полезных опций и пояснений:
- Последовательная выдача IP
dhcp-sequential-ipПо умолчанию Dnsmasq хеширует MAC и обычно выдаёт одинаковые IP. Опция dhcp-sequential-ip заставит сервер выдавать адреса по порядку.
- Максимум арендуемых адресов
dhcp-lease-max=100Контролирует число одновременных аренд. По умолчанию — 1000. Для малой сети имеет смысл уменьшить значение, чтобы защититься от атак, где злоумышленник создаёт много фиктивных аренд.
- Альтернативные порты DHCP
dhcp-alternate-port=8068,8068Меняет порты для DHCP‑серверов и клиентов (по умолчанию 67 и 68). Обычно менять не нужно.
- Файл аренды
dhcp-leasefile=/dhcp-leasesПереопределяет путь к файлу с арендами. По умолчанию /var/lib/misc/dnsmasq.leases.
Безопасность и жёсткая конфигурация
Встраивание Dnsmasq в сеть повышает требования к безопасности. Рекомендуемые практики:
- Ограничьте интерфейсы через
interface=илиbind-interfaces. - Запускайте Dnsmasq под отдельным системным пользователем по умолчанию (обычно уже так поставляется).
- Ограничьте
dhcp-lease-maxдля защиты от DoS‑атак. - Контролируйте доступ к файлам конфигурации и каталогу
/etc/dnsmasq.dчерез права доступа. - Логируйте события и подключайте систему централизованного логирования для анализа.
- В сетях с гостевыми пользователями используйте VLAN или отдельный интерфейс, чтобы ограничить доступ к административным ресурсам.
Конфиденциальность и соответствие
Dnsmasq хранит MAC‑адреса и соответствующие IP в файле аренды. Если в вашей организации действуют политики по защите персональных данных:
- Оцените необходимость хранения MAC и ведите журнал только столько, сколько требуется по политике.
- При необходимости автоматизируйте удаление старых записей аренды.
- Для GDPR‑совместимости обеспечьте доступ к логам только уполномоченным администраторам и документируйте процесс обработки данных.
Отладка и частые проблемы
Когда может не работать:
- Конфликт DHCP: одновременно работает встроенный DHCP роутера и Dnsmasq. Решение: отключите один из серверов.
- Неверный интерфейс: Dnsmasq слушает не тот интерфейс. Решение: проверьте
interface=иbind-interfaces. - Неверные права на файлы: сервис не может читать конфиги или писать файл аренды.
- Порт 67 занят другим процессом. Найдите процесс и освободите порт.
Быстрые команды для проверки:
# Проверка конфигурации
dnsmasq --test
# Проверка прослушиваемых портов
sudo ss -ltnp | grep :67
# Просмотр арен
cat /var/lib/misc/dnsmasq.leases
# Просмотр логов
sudo journalctl -u dnsmasq.service -n 200Плейбук развертывания (шаг за шагом)
- Подготовка среды
- Обновите систему и установите
dnsmasq. - Создайте резервную копию
/etc/dnsmasq.confи любых файлов в/etc/dnsmasq.d.
- Обновите систему и установите
- Базовая конфигурация
- Укажите
interface=. - Отключите DNS, если нужен только DHCP:
port=0. - Настройте
dhcp-rangeиdhcp-option=3,.
- Укажите
- Статические аренды
- Добавьте
dhcp-hostдля критичных устройств. - Разместите их в отдельном файле, например
/etc/dnsmasq.d/hosts.
- Добавьте
- Тестирование и запуск
- Выполните
dnsmasq --test. - Перезапустите службу
sudo systemctl restart dnsmasq. - Отключите DHCP на роутере.
- Выполните
- Мониторинг
- Проверьте файл арен и логи.
- Настройте алерты или мониторинг при массовом росте аренд.
- Пост‑внедрение
- Документируйте все статические назначения.
- Планируйте регулярный аудит файлов конфигурации и прав доступа.
Роль‑ориентированные чек‑листы
Администратор сети
- Проверить установку пакета.
- Настроить
interface=,dhcp-range,dhcp-option. - Зарезервировать IP ключевым устройствам.
- Включить
dhcp-authoritativeпри необходимости. - Настроить логирование.
Домашний пользователь
- Использовать узкий DHCP‑диапазон.
- Не менять стандартные порты.
- Резервировать роутер и NAS.
ИТ‑инфраструктура предприятия
- Разделить трафик по VLAN.
- Интегрировать логи в SIEM.
- Документировать политику хранения логов и доступов.
Критерии приёмки
- Клиенты получают адреса в заданном диапазоне.
- Статические аренды соответствуют заданным MAC и именам хостов.
- При рестарте сервиса активные клиенты получают IP без длительных таймаутов (если включён
dhcp-authoritative). - Логи не содержат ошибок при старте Dnsmasq.
- Резервный DHCP отключён (если Dnsmasq единственный сервер).
Диаграмма принятия решения
flowchart TD
A[Начало] --> B{Есть ли в сети другой DHCP?}
B -- Да --> C[Отключить встроенный DHCP роутера или перевести в режим моста]
B -- Нет --> D[Включить dhcp-authoritative]
C --> E[Настроить dhcp-range и dhcp-option]
D --> E
E --> F{Нужны статические IP?}
F -- Да --> G[Добавить dhcp-host для каждого устройства]
F -- Нет --> H[Применить конфигурацию и протестировать]
G --> H
H --> I[Мониторинг и аудит]Когда это не годится
- В больших корпоративных сетях с тысячами клиентов Dnsmasq может оказаться слишком простым. Рассмотрите специализированные DHCP‑решения с централизованным управлением и репликацией.
- Если требуется сложная интеграция с AD/LDAP для динамического присвоения имен и политик, лучше использовать решение уровня DHCP‑сервера в корпоративном стеке.
Миграция и совместимость
- Перед переключением отключите старый DHCP и убедитесь, что у вас есть план отката.
- Синхронизируйте диапазоны и зарезервированные адреса между старым и новым серверами.
- В средах с несколькими подсетями используйте DHCP relay или устанавливайте Dnsmasq на каждом сегменте.
Короткое объявление для пользователей сети
Dnsmasq теперь обслуживает DHCP в нашей сети. Ожидайте, что устройства получат новые IP после перезапуска сетевого подключения. В случае проблем обратитесь в службу поддержки.
Факт‑бокс
- Стандартные DHCP‑порты: 67 (сервер) и 68 (клиент)
- Файл арен по умолчанию: /var/lib/misc/dnsmasq.leases
- Значение dhcp-lease-max по умолчанию: 1000
- Опция для авторитетного режима: dhcp-authoritative
Краткое резюме
Dnsmasq — простой и гибкий инструмент для управления DHCP в малых и средних сетях. Он позволяет централизовать статические аренды, гибко настраивать диапазоны и защищать сервис от базовых атак. Для крупных производственных сред может потребоваться более сложная система, но для домашних и офисных сетей Dnsmasq остаётся оптимальным выбором.
Важное: сохраняйте резервные копии конфигураций и документируйте статические назначения, чтобы избежать конфликтов IP в будущем.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента