Dnsmasq/ru

Dnsmasq — это простой DHCP/DNS сервер, который можно использовать в локальной сети до 1000 клиентов. Его основные особенности — простота настройки и небольшой расход системных ресурсов. Он также поддерживает IPv6.

Установка
Установка dnsmasq полностью поддерживается пакетным менеджером и деревом portage. Сначала выберите нужные USE-флаги.

Затем установите и добавьте его в уровень запуска default, если требуется запускать его автоматически.

Конфигурация
Поведением dnsmasq можно управлять с помощью следующих ресурсов:
 * параметры командной строки, устанавливаемые в файле
 * основной файл конфигурации

Настройка сервиса
В можно настроить параметры командной строки, подаваемые демону dnsmasq при его запуске.

Основной файл конфигурации
Основная настройка dnsmasq осуществляется с помощью его файла конфигурации. Этот файл использует синтаксис вида. Пример файла конфигурации включен в пакет; он хорошо документирован и его рекомендуется прочитать. В этом файле, либо с помощью параметров командной строки, можно обращаться к дополнительным ресурсам (например, файл DHCP hosts).

Пример файла конфигурации:

После редактирования файла конфигурации нужно перезапустить (restart) сервис — перезагрузка (reload) поддерживается, но для других ресурсов.

Файл hosts
Приложение dnsmasq использует файл в качестве одного из источников, предоставляющих сервисы DNS, если не указан параметр командной строки.

После обновления dnsmasq должен получить сигнал SIGHUP, чтобы перезагрузить настройки. Это также можно сделать с помощью команды reload из init-скрипта:

Это поведение можно отключить в файле конфигурации с помощью параметра.

Дополнительный файл hosts
Существует возможность обращения к (дополнительному) файлу hosts в качестве источника запросов DNS. Для этого нужно добавить параметр командной строки. Также можно указать каталог; в этом случае, все файлы в этом каталоге будут рассматриваться, как дополнительные файлы hosts.

Так же как и со стандартным файлом hosts, сигнал SIGHUP перезагружает файл.

Это поведение также можно установить в файле конфигурации с помощью параметра.

Upstream сервера имен
По умолчанию, dnsmasq использует сервера имен, указанные в, в качестве upstream серверов имен.

С помощью параметра командной строки   можно задать другой файл.

Это поведение также можно установить в файле конфигурации с помощью параметра.

Возможности
Dnsmasq поддерживает DNS, TFTP, PXE, router advertisements и сервисы DHCP. Он является гибкой утилитой управления сетью для небольших и средних по размеру сетей.

Сервисы DNS
Для того, чтобы предоставить (только) сервисы DNS, сначала определите upstream nameserver. Если это тот же сервер, который указан в файле, то не требуется предпринимать никаких дополнительных шагов. В противном случае, укажите dnsmasq нужный файл с помощью параметра командной строки. Синтаксис тот же, что и в файле, однако dnsmasq читает только определения nameserver.

Например:

Затем укажите этот файл dnsmasq с помощью файла конфигурации:

Чтобы удостовериться, что сервис работает (после перезапуска, поскольку файл конфигурации был изменен), воспользуйтесь командой  (она входит в пакет ) для того, чтобы попросить сервер DNS (запущенный на localhost в следующем примере) разрешить локальный или удаленный адрес:

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

Trusted anchor можно найти на сайте iana.org. После этих изменений, если проверка достоверности не удастся, dnsmasq вернет SERVFAIL и не вернет никаких данных DNS. Если проверка достоверности завершается успехом, dnsmasq устанавливает флаг ad. В случае, если домен не поддерживает DNSSEC, dnsmasq ведет себя, как и раньше.

Сервисы DHCP
Для того, чтобы включить сервисы DHCP dnsmasq, используйте параметр настройки.

Например, для того, чтобы включить настройку адреса IPv6 посредством router advertisement (RA) с бесконечной арендой, и настройку адреса IPv4 также с бесконечной арендой:

Существует возможность использования статических определений для известных хостов. Это можно реализовать либо посредством основного файла конфигурации (параметр ), либо посредством отдельного файла. Если используется отдельный файл, укажите его dnsmasq с помощью параметра командной строки. Преимущество последнего варианта в том, что для повторного считывания записей достаточно послать сигнал SIGHUP (или перезагрузить сервис), тогда как при использовании определений в файле конфигурации необходимо полностью перезапустить сервис.

Для получения более подробной информации о синтаксисе параметра, обратитесь к странице руководства или к файлу конфигурации, поскольку синтаксис этого параметра весьма пространен.

Использование
Этот раздел содержит описание различных вариантов использования (обслуживания и практических задач) сервиса dnsmasq.

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

Сервис dnsmasq хранит свои аренды в файле. Если требуется быстрее удалить аренду, остановите сервис dnsmasq, удалите аренду из файла и снова запустите сервис.

Перезагрузка неосновных настроек конфигурации
В дополнение к файлу, сервис dnsmasq может использовать внешние определения для следующих сервисов:
 * настройки конфигурации хостов DHCP (посредством параметра командной строки )
 * параметры DHCP (посредством параметра командной строки )

После изменения этих файлов сигнал SIGHUP заставит dnsmasq перезагрузить эти настройки.