Dnsmasq — легкий сетевой сервер предоставляющий функционал , DHCP, TFTP и PXE. В этой статье мы рассмотрим только настройку как отдельного DHCP-сервера.

DHCP (Dynamic Host Configuration Protocol) — сетевой протокол благодаря которому сетевые устройства получают IP-адреса. DHCP-сервер вашей сети отвечает за присвоение каждому новому сетевому устройству уникального адреса. Адреса могут быть статическими или динамическими, последнее означает, что они выдаются на краткосрочной основе, поэтому IP-адрес устройства может меняться с течением времени.

В большинстве небольших сетей маршрутизатор выполняет функции DHCP-сервера. Настройка Dnsmasq под даст вам контроль над процессом, а также улучшает контроль любых возникающих ошибок.

Подготовим Dnsmasq

Dnsmasq включен в состав большинства дистрибутивов Linux. В противном случае вы можете установить пакет dnsmasq, если его нет в вашем по-умолчанию. Стандартный конфигурационный файл находится в каталоге /etc/dnsmasq.conf; вы также можете добавить файлы в каталог /etc/dnsmasq.d, если хотите сохранить свои настройки отдельно от настроек по умолчанию.

Dnsmasq обычно прослушивает все ваши сетевые интерфейсы. Если вы хотите использовать определенный интерфейс, настроить это можно добавив или раскомментировав следующую строку в файле конфигурации:

# Only operate on eth0
interface=eth0

Функциональность DNS-сервера в Dnsmasq включена по-умолчанию. Вы можете отключить его, изменив порт на 0:

port=0

Dnsmasq теперь будет ть в режиме только DCHP.

Настроим свой DHCP-сервер

DHCP-сервер активируется путем указания диапазона IP-адресов DHCP:

dhcp-range=192.168.0.101,192.168.0.150,255.255.255.0,6h

В примере мы предписываем Dnsmasq предлагать IP-адреса между 192.168.0.101 и 192.168.0.150 в подсети 255.255.255.0. Срок аренды выданных IP-адресов составит шесть часов, после чего клиентам необходимо будет запросить продление аренды.

Не забудьте изменить вышеуказанные параметры в соответствии с требованиями вашей сети. Рекомендуется настроить диапазон DHCP таким образом, чтобы он исключал любые IP-адреса, которые вы планируете статически назначать устройствам. Это гарантирует, что устройству, получающему динамический IP, никогда не будет выдан “зарезервированный” статический адрес.

Интересно:  6 самых легких дистрибутивов Linux в 2021 году

При таком использовании ваш сервер Dnsmasq станет шлюзом по умолчанию на ваших сетевых устройствах, когда они получат IP-адрес. Если вы одновременно не настраиваете DNS, вам следует изменить строку так, чтобы Dnsmasq перестал предлагать себя в качестве шлюза.

dhcp-option=3,192.168.0.50

Измените IP-адрес на IP-адрес вашего маршрутизатора или роутера. Теперь ваши устройства смогут использовать маршрутизатор в обычном режиме после того, как они получат IP-адрес от Dnsmasq.

Настроим статические IP

Статические IP-адреса настраиваются в конфигурационном файле Dnsmasq. Это позволяет централизовать резервирование IP-адресов вместо того, чтобы разбрасывать их по сетевым файлам на отдельных устройствах.

Чтобы назначить статический IP-адрес, используйте инструкцию dhcp-host. Для этого необходим MAC-адрес, имя хоста и IP-адрес который вы решите назначить:

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. Срок аренды установлен бесконечным, чтобы гарантировать, что продление не потребуется и IP-адрес никогда не изменится.

Чтобы настроить дополнительные статические IP-адреса, просто повторите инструкцию dhcp-host столько раз, сколько вам нужно. Например, рассмотрите возможность добавления определенного хоста DHCP для вашего маршрутизатора, чтобы вы могли стопроцентно получить к нему доступ по фиксированному IP-адресу. Его адрес вписывается в конфигурационный файл аналогично тому, как вы назначали IP в строке dhcp-host выше.

Использование Вашего DHCP-сервера

Как только вы закончите настройку Dnsmasq, проверьте его конфигурацию, чтобы убедиться, что ваши правки корректны:

dnsmasq --test

Затем перезапустите службу Dnsmasq, чтобы применить внесенные изменения:

sudo systemctl restart dnsmasq

Отключите встроенный DHCP-сервер вашего маршрутизатора. Затем настройте свой маршрутизатор и клиентские устройства на использование IP-адреса вашего linux-сервера Dnsmasq для DHCP. Настройки будут варьироваться в зависимости от производителя маршрутизатора, поэтому обратитесь к документации вашего устройства, если вы затрудняетесь.

Интересно:  Linux Fedora вот-вот станет новой Ubuntu, обзор

Теперь ваш linux-сервер работает в качестве DHCP-сервера вашей сети и вы должны иметь возможность принудительно обновлять IP-адрес на своих устройствах, чтобы получить от Dnsmasq указания (аренду). Можно либо перезапустить сетевую службу systemctl restart networking, либо использовать ifdown и ifup, чтобы прервать и восстановить сетевое соединение.

Dnsmasq записывает выданные IP-адреса в свой файл аренды. Вы можете просмотреть этот файл, чтобы увидеть активные устройства в вашей сети и проверить правильность аренды IP-адресов:

cat /var/lib/misc/dnsmasq.leases

Если вы столкнулись с ошибками, просмотрите журналы службы Dnsmasq, чтобы узнать, что не так и принять меры:

sudo journalctl -u dnsmasq.service