dnsmasq

Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

dnsmasq

Сообщение Артём Мамзиков »

Dnsmasq
Debian dnsmasq
archlinux Dnsmasq

Dnsmasq предоставляет сетевую инфраструктуру для небольших сетей: DNS, DHCP, объявление маршрутизатора и сетевая загрузка.
Он разработан легким, небольшого размера, подходит для маршрутизаторов и брандмауэров с ограниченными ресурсами.
Он также широко используется для привязки на смартфонах и портативных точках доступа, а также для поддержки виртуальных сетей в фреймворках виртуализации.
Поддерживаемые платформы включают Linux (с glibc и uclibc), Android, *BSD и Mac OS X. Dnsmasq включен в большинство дистрибутивов Linux и системы портов FreeBSD, OpenBSD и NetBSD. Dnsmasq обеспечивает полную поддержку IPv6.

Подсистема DNS предоставляет локальный DNS-сервер для сети с пересылкой всех типов запросов на вышестоящие рекурсивные DNS-серверы и кэшированием общих типов записей (A, AAAA, CNAME и PTR, а также DNSKEY и DS при включенном DNSSEC).

* Локальные DNS-имена можно определить путем чтения /etc/hosts, путем импорта имен из подсистемы DHCP или путем настройки широкого спектра полезных типов записей.
* Вышестоящие серверы можно настраивать различными удобными способами, включая динамическую конфигурацию, которая изменяется при перемещении вышестоящей сети.
* Режим Authoritive DNS позволяет экспортировать локальные DNS-имена в зону в глобальном DNS. Dnsmasq выступает в качестве авторитарного сервера для этой зоны, а также обеспечивает передачу зоны на вторичные серверы для этой зоны, если это необходимо.
* Проверка DNSSEC может выполняться на основе ответов DNS от вышестоящих серверов имен, обеспечивая защиту от подмены и отравления кэша.
* Указанные поддомены могут быть направлены на собственные вышестоящие DNS-серверы, что упрощает настройку VPN.
* Поддерживаются интернационализированные доменные имена.

Подсистема DHCP поддерживает DHCPv4, DHCPv6, BOOTP и PXE.
* Поддерживаются как статическая, так и динамическая аренда DHCP, а также режим без сохранения состояния в DHCPv6.
* Система PXE — это полноценный сервер PXE, поддерживающий меню сетевой загрузки и поддержку нескольких архитектур. Она включает в себя режим proxy, в котором система PXE взаимодействует с другим сервером DHCP.
* Имеется встроенный TFTP-сервер, доступный только для чтения, для поддержки сетевой загрузки.
* Имена машин, настроенных с помощью DHCP, автоматически включаются в DNS, и имена могут быть указаны каждой машиной или централизованно путем связывания имени с MAC-адресом или UID в файле конфигурации dnsmasq.

Подсистема Router Advertisement обеспечивает базовую автоконфигурацию для хостов IPv6. Она может использоваться автономно или в сочетании с DHCPv6.
* Биты M и O настраиваются для управления использованием DHCPv6 хостами.
* Объявления маршрутизатора могут включать опцию RDNSS.
* Существует режим, который использует информацию об имени из конфигурации DHCPv4 для предоставления записей DNS для автоматически настроенных адресов IPv6, которые в противном случае были бы анонимными.

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

Получить код.
Загрузите dnsmasq здесь. В архиве tarball есть эта документация, исходный код и manpage . Также есть CHANGELOG и FAQ . У Dnsmasq есть репозиторий git, который содержит полную историю релизов версии 2 и историю разработки с 2.60. Вы можете просмотреть репозиторий или получить копию с помощью протокола git с помощью команды
git clone git://thekelleys.org.uk/dnsmasq.git
или
git clone http://thekelleys.org.uk/git/dnsmasq.git
Лицензия.
Dnsmasq распространяется по лицензии GPL версии 2 или 3 по вашему выбору. Подробности смотрите в файлах COPYING и COPYING-v3 в дистрибутиве.
Контакт.
Список рассылки dnsmasq находится по адресу http://lists.thekelleys.org.uk/mailman/ ... sq-discuss , который должен быть первым местом для запросов, отчетов об ошибках, предложений и т. д. Список зеркалирован, с возможностью поиска, по адресу https://www.mail-archive.com/dnsmasq-di ... ys.org.uk/ . Вы можете связаться со мной по адресу simon@thekelleys.org.uk .

Мануал
Раздел: Команды технического обслуживания (8)
Обновлено: 2021-08-16
НАЗВАНИЕ
dnsmasq - это облегченный DHCP и кэширующий DNS-сервер.

КРАТКИЙ ОБЗОР
dnsmasq [ОПЦИЯ]...

ОПИСАНИЕ
dnsmasq - это упрощенный сервер DNS, TFTP, PXE, router advertisement и DHCP. Он предназначен для предоставления связанных служб DNS и DHCP в локальной сети.

Dnsmasq принимает DNS-запросы и либо отвечает на них из небольшого локального кэша, либо пересылает их на реальный рекурсивный DNS-сервер. Он загружает содержимое файла /etc/hosts, чтобы можно было разрешить имена локальных хостов, которые не отображаются в глобальном DNS, а также отвечает на запросы DNS для хостов, настроенных по DHCP. Он также может выступать в качестве авторитетного DNS-сервера для одного или нескольких доменов, позволяя отображать локальные имена в глобальной DNS. Его можно настроить для проверки DNSSEC.

DHCP-сервер dnsmasq поддерживает назначение статических адресов и работу в нескольких сетях. Он автоматически отправляет разумный набор параметров DHCP по умолчанию и может быть настроен на отправку любого желаемого набора параметров DHCP, включая параметры, инкапсулированные поставщиком. Он включает в себя защищенный TFTP-сервер, доступный только для чтения, позволяющий загружать DHCP-хосты по протоколу net/ PXE, а также поддерживает BOOTP. Поддержка PXE является полнофункциональной и включает в себя режим прокси-сервера, который предоставляет клиентам информацию о PXE, в то время как распределение DHCP-адресов выполняется другим сервером.

Сервер DHCPv6 dnsmasq предоставляет тот же набор функций, что и сервер DHCPv4, и, кроме того, он включает в себя рекламу маршрутизатора и удобную функцию, которая позволяет присваивать имена клиентам, использующим DHCPv4 и автоконфигурацию без учета состояния только для конфигурации IPv6. Поддерживается распределение адресов (как DHCPv6, так и RA) из подсетей, которые динамически делегируются с помощью делегирования префикса DHCPv6.

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

ОПЦИИ-ПАРАМЕТРЫ
Обратите внимание, что в целом допустимы отсутствующие параметры и отключающие функции, например, "--pid-файл" отключает запись PID-файла.
В BSD, если не подключена библиотека GNU getopt, длинная форма параметров не работает в командной строке; она по-прежнему распознается в файле конфигурации.

--test / --тест
Прочитайте конфигурационный файл(ы) и проверьте синтаксис. Завершите работу с кодом 0, если все в порядке, или с ненулевым кодом в противном случае. Не запускайте dnsmasq.

-w, --help / --справка
Отобразите все параметры командной строки. --help dhcp отобразит известные параметры конфигурации DHCPv4, а --help dhcp6 отобразит параметры DHCPv6.

-h, --no-hosts / --нет-хостов
Не читайте имена хостов в /etc/hosts.

-H, --addn-hosts=<файл> / -H, --добавить n-хостов=<файл>
Дополнительный файл hosts. Прочитать указанный файл, а также /etc/hosts. Если задано --no-hosts , прочитать только указанный файл. Эту опцию можно повторить для нескольких дополнительных файлов hosts. Если задан каталог, прочитать все файлы, содержащиеся в этом каталоге, в алфавитном порядке.

--hostsdir=<путь> / --хостпуть=<путь>
Прочитать все файлы hosts, содержащиеся в каталоге. Новые или измененные файлы считываются автоматически, а измененные и удаленные файлы имеют удаленные записи, которые автоматически удаляются.

-E, --expand-hosts --развернуть-хосты
Добавьте домен к простым именам (без точки) в /etc/hosts таким же образом, как и для имен, производных от DHCP. Обратите внимание, что это не относится к доменным именам в cnames, PTR-записях, TXT-записях и т.д.

-T, --loc=<al-ttltime> /--loc=<ttl время ожидания>
При отправке ответа с информацией из файла /etc/hosts или configuration или файла DHCP leases dnsmasq по умолчанию устанавливает значение поля time-to-live равным нулю, что означает, что запрашивающая сторона не должна сама кэшировать информацию. Это правильный подход практически во всех ситуациях. Эта опция позволяет задать время ожидания (в секундах) для этих ответов. Это снизит нагрузку на сервер за счет того, что клиенты при некоторых обстоятельствах будут использовать устаревшие данные.

--dhcp-ttl=<time>
Что касается --local-ttl, то он влияет только на ответы с информацией из договоров аренды DHCP. Если заданы оба параметра, то для информации DHCP применяется --dhcp-ttl, а для других - --local-ttl. Установка этого значения равным нулю устраняет эффект --local-ttl для DHCP.

--neg-ttl=<time>
Отрицательные ответы от вышестоящих серверов обычно содержат информацию о сроке службы в записях SOA, которые dnsmasq использует для кэширования. Если в ответах от вышестоящих серверов эта информация отсутствует, dnsmasq не кэширует ответ. Этот параметр задает значение по умолчанию для времени ожидания (в секундах), которое dnsmasq использует для кэширования отрицательных ответов даже при отсутствии записи SOA.

--max-ttl=<time>
Установите максимальное значение TTL, которое будет выдаваться клиентам. Указанное максимальное значение TTL будет выдаваться клиентам вместо истинного значения TTL, если оно ниже. Однако истинное значение TTL сохраняется в кэше, чтобы избежать переполнения вышестоящих DNS-серверов.

--max-cache-ttl=<time>
Установите максимальное значение TTL для записей в кэше.

--min-cache-ttl=<time>
Увеличьте короткие значения TTL до времени, указанного при их кэшировании. Обратите внимание, что искусственное увеличение значений TTL, как правило, является плохой идеей, не делайте этого, если у вас нет веской причины и вы не понимаете, что делаете. Dnsmasq ограничивает значение этого параметра одним часом, если только он не будет скомпилирован повторно.

--auth-ttl=<time>
Установите значение TTL, возвращаемое в ответах от авторитетного сервера.

--fast-dns-retry=[<initial retry delay in ms>[,<time to continue retries in ms>]] / --fast-dns-retry=[<задержка начальной попытки в мс>[,<время для продолжения попыток в мс>]]
При обычных обстоятельствах dnsmasq использует DNS-клиенты для выполнения повторных попыток; он сам не генерирует тайм-ауты. Установка этого параметра позволяет dnsmasq генерировать свои собственные повторные попытки, начиная с задержки, которая по умолчанию составляет 1000 мс. Если задан второй параметр, он определяет продолжительность повторных попыток, в противном случае значение по умолчанию равно 10000 мс. Повторные попытки повторяются с экспоненциальным замедлением. Использование этого параметра увеличивает использование памяти и пропускную способность сети.

-k, --keep-in-foreground / -k, --держать-на-переднем плане
Не переходите в фоновый режим при запуске, а в остальном работайте в обычном режиме. Это предназначено для использования, когда dnsmasq запускается под управлением daemontools или launchd.

-d, --no-daemon / -d, -нет-демон
Режим отладки: не переключайтесь в фоновый режим, не записывайте pid-файл, не меняйте идентификатор пользователя, генерируйте полный дамп кэша при получении в SIGUSR1, регистрируйтесь в stderr, а также в системном журнале, не подключайте новые процессы для обработки TCP-запросов. Обратите внимание, что этот параметр предназначен только для использования при отладке, чтобы остановить демонстрацию dnsmasq в рабочей среде, используйте --keep-in-foreground.

-q, --log-queries / -q, --лог-запросы
Записывайте в журнал результаты DNS-запросов, обработанных dnsmasq. Включите полный дамп кэша при получении SIGUSR1. Если указан аргумент "extra", т.е. --log-queries=extra, то в начале каждой строки журнала содержится дополнительная информация. Он состоит из серийного номера, который связывает воедино строки журнала, связанные с отдельным запросом, и IP-адреса отправителя запроса.

-8, --log-facility=<facility> /=<объект>
Установите средство, на которое dnsmasq будет отправлять записи системного журнала, по умолчанию это DAEMON, а при работе в режиме отладки - LOCAL0. Если указанное средство содержит хотя бы один символ "/", оно принимается за имя файла, и dnsmasq записывает данные в данный файл, а не в системный журнал. Если средство имеет значение "-", то dnsmasq записывает данные в stderr. (Ошибки при чтении конфигурации по-прежнему будут отображаться в системном журнале, но все выходные данные, полученные при успешном запуске, и все выходные данные, полученные во время работы, будут передаваться исключительно в файл.) При входе в файл dnsmasq закроет и снова откроет файл, когда получит SIGUSR2. Это позволяет изменять формат файла журнала без остановки dnsmasq.

--log-debug / --журнал-отладка
Включите дополнительное ведение журнала, предназначенное скорее для отладки, чем для получения информации.

--log-async[=<lines>] /--log-асинхронный[=<строки>]
Включите асинхронное ведение журнала и при необходимости установите ограничение на количество строк, которые будут помещаться в очередь dnsmasq при медленной записи в системный журнал. Dnsmasq может выполнять асинхронный вход в систему: это позволяет ему продолжать функционировать, не будучи заблокированным системным журналом, и позволяет системному журналу использовать dnsmasq для DNS-запросов без риска взаимоблокировки. Если очередь строк журнала заполняется, dnsmasq регистрирует переполнение и количество потерянных сообщений. Длина очереди по умолчанию равна 5, разумным значением было бы 5-25, а максимальное ограничение - 100.

-x, --pid-file=<path>
Укажите альтернативный путь для записи идентификатора процесса в dnsmasq. Обычно это /var/run/dnsmasq.pid.

-u, --user=<username>
Укажите идентификатор пользователя, на который будет изменен dnsmasq после запуска. Обычно Dnsmasq запускается от имени пользователя root, но после запуска он теряет права суперпользователя, меняя идентификатор на другого пользователя. Обычно этот пользователь является "никем", но это можно изменить с помощью этого параметра.

-g, --group=<groupname>
Укажите группу, от имени которой будет запускаться dnsmasq. Значение по умолчанию - "dip", если оно доступно, чтобы облегчить доступ к файлу /etc/ppp/resolv.conf, который обычно недоступен для чтения во всем мире.

-v, --version
Выведите номер версии.

-p, --port=<port>
Прослушивайте через <порт> вместо стандартного DNS-порта (53). Установка этого значения на ноль полностью отключает функцию DNS, оставляя только DHCP и/или TFTP.

-P, --edns-packet-max=<size> / -P, Edns-пакет-макс.=<размер>
Укажите самый большой UDP-пакет EDNS.0, который поддерживается DNS-пересылщиком. По умолчанию используется значение 1232, что является рекомендуемым размером после дня установления флага DNS в 2020 году. Увеличивайте размер только в том случае, если вы знаете, что делаете.

-Q, --query-port=<query_port> / -Q, --запрос-порт=<порт_запроса>
Отправляйте исходящие DNS-запросы с определенного UDP-порта <query_port> и прослушивайте ответы на них, вместо того чтобы использовать случайные порты. ОБРАТИТЕ внимание, что использование этой опции сделает dnsmasq менее защищенным от атак, связанных с подменой DNS, но это может быть быстрее и использовать меньше ресурсов. Установка этого параметра равным нулю приводит к тому, что dnsmasq использует один порт, выделенный ему операционной системой: это было поведение по умолчанию в версиях до 2.43.

--port-limit=<#ports> / --ограничение порта=<#порты>
По умолчанию при отправке запроса через случайные порты на несколько вышестоящих серверов или повторных попытках запроса dnsmasq будет использовать один случайный порт для всех попыток. Эта опция позволяет использовать большее количество портов, что может повысить надежность в определенных конфигурациях сети. Обратите внимание, что увеличение этого числа более чем до двух или трех может иметь последствия для безопасности и ресурсов и должно осуществляться только с пониманием этих последствий.

--min-port=<port> / --мин-порт=<порт>
Не используйте порты, размер которых меньше указанного в качестве источника для исходящих DNS-запросов. Dnsmasq выбирает случайные порты в качестве источника для исходящих запросов: при выборе этого параметра количество используемых портов всегда будет больше указанного. Полезно для систем, защищенных брандмауэрами. Если не указано, то по умолчанию используется значение 1024.

--max-port=<port> / --макс-порт=<порт>
Используйте порты ниже, чем указано в качестве источника для исходящих DNS-запросов. Dnsmasq выбирает случайные порты в качестве источника для исходящих запросов: при выборе этого параметра используемые порты всегда будут ниже указанного. Полезно для систем, защищенных брандмауэрами.

-i, --interface=<interface name> / -i, --интерфейс=<имя интерфейса>
Прослушивайте только указанные интерфейсы. Dnsmasq автоматически добавляет локальный интерфейс обратной связи в список интерфейсов для использования, если используется параметр --interface. Если параметры --interface или --listen-address не заданы, dnsmasq прослушивает все доступные интерфейсы, за исключением любого, указанного в параметрах --except-interface. В Linux, когда действуют --bind-interfaces или --bind-dynamic, проверяются метки интерфейсов с псевдонимами IP (например, "eth1:0"), а не имена интерфейсов. В вырожденном случае, когда интерфейс имеет один адрес, это означает то же самое, но когда интерфейс имеет несколько адресов, это позволяет контролировать, какие из этих адресов принимаются. Тот же эффект достигается в режиме по умолчанию с помощью --listen-address. Простой подстановочный знак, состоящий из завершающего символа "*", можно использовать в параметрах --interface и --except-interface.

-I, --except-interface=<interface name> / -I, --кроме-интерфейса=<имя интерфейса>
Не прослушивайте указанный интерфейс. Обратите внимание, что порядок следования параметров --listen-address-interface и --except-interface не имеет значения и что параметры --except-interface всегда переопределяют остальные. Здесь применимы комментарии к меткам интерфейса для --listen-address.

--auth-server=<domain>,[<interface>|<ip-address>...] / --сервер-аутентификации=<домен>,[<интерфейс>|<ip-адрес>...]
Включите режим авторизации DNS для запросов, поступающих на интерфейс или адрес. Обратите внимание, что интерфейс или адрес необязательно указывать в настройках --interface или --listen-address, на самом деле --auth-server переопределит их и предоставит другую службу DNS на указанном интерфейсе. <Домен> - это "связующая запись". В глобальной системе DNS она должна преобразоваться в запись A и/или AAAA, которая указывает на адрес, прослушиваемый dnsmasq. Когда указан интерфейс, его можно дополнить "/4" или "/6", чтобы указать только адреса IPv4 или IPv6, связанные с интерфейсом. Поскольку любые определенные авторитетные зоны также доступны как часть обычной службы DNS, предоставляемой dnsmasq, может иметь смысл использовать объявление --auth-server без интерфейсов или адреса, а просто с указанием основного внешнего сервера имен.

--local-service[=net|host] / --локальный сервис[=сеть|хост]
Без параметра или с параметром net, ограничивает обслуживание подключенной сетью. Принимайте DNS-запросы только от хостов, адрес которых находится в локальной подсети, т.е. подсети, для которой на сервере существует интерфейс. С параметром host прослушивает только интерфейс lo и принимает запросы только от localhost. Этот параметр действует только в том случае, если нет параметров --interface, --except-interface, --listen-address или --auth-server. Предполагается, что он будет установлен по умолчанию при установке, чтобы сделать неконфигурированные установки полезными, а также защитить их от использования для атак с усилением DNS.

-2, --no-dhcp-interface=<interface name> / -2, --нет-dhcp-интерфейса=<имя интерфейса>
Не предоставляйте рекламу DHCP, TFTP или маршрутизатора на указанном интерфейсе, но предоставляйте службу DNS.

--no-dhcpv4-interface=<interface name> / --нет-dhcpv4-интерфейс=<имя интерфейса>
Отключите только IPv4 DHCP на указанном интерфейсе.

--no-dhcpv6-interface=<interface name> / --нет-dhcpv6-интерфейс=<имя интерфейса>
Отключите рекламу IPv6 DHCP и маршрутизатора на указанном интерфейсе.

-a, --listen-address=<ipaddr> / -a, --адрес-прослушивания=<ip-адрес>
Прослушивание по указанным IP-адресам. Могут быть указаны как параметры --interface, так и параметры --listen-address, и в этом случае используется набор как интерфейсов, так и адресов. Обратите внимание, что если параметр --interface не указан, но указан --listen-address, dnsmasq не будет автоматически прослушивать интерфейс обратной связи. Для достижения этой цели его IP-адрес, 127.0.0.1, должен быть явно указан в качестве параметра --listen-address.

-z, --bind-interfaces / -z, Bind-интерфейсы
В системах, которые его поддерживают, dnsmasq привязывает подстановочный адрес, даже если он прослушивает только некоторые интерфейсы. Затем он отбрасывает запросы, на которые не следует отвечать. Преимущество этого заключается в том, что он работает, даже когда интерфейсы приходят и уходят и меняют адрес. Этот параметр заставляет dnsmasq действительно привязывать только те интерфейсы, которые он прослушивает. Это полезно, пожалуй, только при запуске другого сервера имен (или другого экземпляра dnsmasq) на том же компьютере. Установка этого параметра также позволяет запускать несколько экземпляров dnsmasq, предоставляющих службу DHCP, на одном компьютере.

--bind-dynamic / -z, Bind-динамический
Включите сетевой режим, который является гибридом --bind-interfaces и стандартного. Dnsmasq связывает адреса отдельных интерфейсов, позволяя использовать несколько экземпляров dnsmasq, но при появлении новых интерфейсов или адресов он автоматически прослушивает их (в зависимости от конфигурации управления доступом). Это позволяет динамически создаваемым интерфейсам работать так же, как и по умолчанию. Для реализации этой опции требуются нестандартные сетевые API, и она доступна только в Linux. На других платформах она возвращается к режиму привязки интерфейсов --bind-interfaces.

-y, --localise-queries / -y, --локализовать-запросы
Возвращает ответы на DNS-запросы от /etc/hosts и --interface-name и --dynamic-host, которые зависят от интерфейса, через который был получен запрос. Если с именем связано более одного адреса, и по крайней мере один из этих адресов находится в той же подсети, что и интерфейс, на который был отправлен запрос, то возвращает только адреса в этой подсети и возвращает все доступные адреса в противном случае. Это позволяет серверу иметь несколько адресов в /etc/hosts, соответствующих каждому из его интерфейсов, и хосты получат правильный адрес в зависимости от того, к какой сети они подключены. В настоящее время эта возможность ограничена IPv4.

-b, --bogus-priv / -b, -фиктивный-приватный
Поддельные частные обратные запросы. Все обратные запросы для частных IP-адресов (например, 192.168.x.x и т.д.), которые не найдены в /etc/hosts или файле DHCP leases, вместо того, чтобы перенаправляться вверх по потоку, получают ответ "такого домена нет". Набор используемых префиксов соответствует списку, приведенному в RFC6303, для IPv4 и IPv6.

-V, --alias=[<old-ip>]|[<start-ip>-<end-ip>],<new-ip>[,<mask>] / -V, --псевдоним=[<старый ip>]|[<начальный ip>-<конечный ip>],<новый ip>[,<маска>]
Измените IPv4-адреса, возвращаемые вышестоящими серверами имен; старый ip-адрес будет заменен на новый. Если задана необязательная маска, то любой адрес, соответствующий замаскированному старому ip-адресу, будет переписан. Так, например, --alias=1.2.3.0,6.7.8.0,255.255.255.0 сопоставит значения 1.2.3.56 с 6.7.8.56 и 1.2.3.67 с 6.7.8.67. Это то, что маршрутизаторы Cisco PIX называют "DNS-коррекцией". Если старый IP указан как диапазон, то переписываются только адреса в диапазоне, а не во всей подсети. Итак, --alias=192.168.0.10-192.168.0.40,10.0.0.0,255.255.255.0 сопоставляет значения 192.168.0.10->192.168.0.40 с 10.0.0.10->10.0.0.40

-B, --bogus-nxdomain=<ipaddr>[/prefix] / --B, --фиктивный-домен-nx=<ip-адрес>[/префикс]
Преобразуйте ответы, содержащие указанный адрес или подсеть, в ответы "Такого домена нет". Поддерживаются протоколы IPv4 и IPv6. Это сделано для противодействия хитрому шагу, предпринятому Verisign в сентябре 2003 года, когда они начали возвращать адрес рекламной веб-страницы в ответ на запросы о незарегистрированных именах вместо правильного ответа NXDOMAIN. Этот параметр указывает dnsmasq подделать правильный ответ, когда он увидит такое поведение. По состоянию на сентябрь 2003 года Verisign возвращает IP-адрес 64.94.110.11

--ignore-address=<ipaddr>[/prefix] / --игнорировать-адрес=<ip-адрес>
Игнорируйте ответы на запросы A или AAAA, которые содержат указанный адрес или подсеть. Ошибка не генерируется, dnsmasq просто продолжает прослушивать другой ответ. Это полезно для устранения стратегий блокировки, которые основаны на быстром предоставлении поддельного ответа на запрос DNS для определенного домена, прежде чем может быть получен правильный ответ.

-f, --filterwin2k / -f, --фильтр win2k
Более поздние версии Windows периодически отправляют DNS-запросы, которые не получают разумных ответов от общедоступного DNS-сервера и могут вызывать проблемы, вызывая ссылки на удаленный доступ по запросу. Этот флажок включает возможность фильтрации таких запросов. Заблокированные запросы относятся к записям типа ANY, в которых запрашиваемое имя имеет подчеркивания, для перехвата запросов LDAP и для всех all записей типов SOA и SRV.

--filter-A / --фильтр-A
Удалите записи A из ответов. Адреса IPv4 возвращены не будут.

--filter-AAAA / --фильтр-AAAA
Удалите записи AAAA из ответов. Адреса IPv6 возвращены не будут.

--filter-rr=<rrtype>[,<rrtype>...] / --фильтр-rr=<типrr>[,<типrr>...]
Удалите записи указанного типа(ов) из ответов. Бессмысленный в противном случае параметр --filter-rr=ANY имеет особое значение: он фильтрует ответы на запросы по типу ANY. Все записи, кроме A, AAAA, MX и CNAME, будут удалены. Поскольку ЛЮБЫЕ запросы с поддельными адресами источника могут быть использованы в атаках с усилением DNS (ответы на ЛЮБЫЕ запросы могут быть большими), это предотвращает такие атаки, сохраняя при этом единственное возможное использование ЛЮБЫХ запросов. Подробности см. в RFC 8482, пункт 4.3.

--cache-rr=<rrtype>[,<rrtype>...] / --кэш-rr=<типrr>[,<типrr>...]
По умолчанию dnsmasq кэширует типы записей DNS A, AAAA, CNAME и SRV. Эта опция добавляет в кэш другие типы записей. RR-тип может быть задан в виде имени, например TXT или MX, или десятичного числа. Один параметр --cache-rr может содержать список типов RR, разделенных запятыми, и допускается более одного параметра --cache-rr. Используйте --cache-rr=ANY, чтобы включить кэширование для всех типов RR.

-r, --resolv-file=<file> / --r, --разрешить-файл=<файл>
Считывайте IP-адреса вышестоящих серверов имен из <file>, а не из /etc/resolv.conf. Формат этого файла смотрите в resolv.conf(5). Единственные строки, относящиеся к dnsmasq, - это строки сервера имен. Dnsmasq может быть запрошен для опроса более чем одного файла resolv.conf, первое указанное имя файла отменяет значение по умолчанию, последующие добавляются в список. Это разрешено только при опросе; используется файл с последним на данный момент временем изменения.

-R, --no-resolv / --R, -не-разрешать
Не читайте файл /etc/resolv.conf. Подключайтесь к вышестоящим серверам только из командной строки или файла конфигурации dnsmasq.

-1, --enable-dbus[=<service-name>] / --1, --включить-dbus[=<имя службы>]
Разрешить обновление конфигурации dnsmasq с помощью вызовов метода DBus. Конфигурация, которую можно изменить, - это вышестоящие DNS-серверы (и соответствующие домены) и очистка кэша. Требуется, чтобы dnsmasq был создан с поддержкой DBus. Если указано имя службы, dnsmasq предоставляет службу с этим именем, а не с именем по умолчанию, которым является uk.org.thekelleys.dnsmasq

--enable-ubus[=<service-name>] / --включить-ubus[=<имя службы>]
Включите интерфейс dnsmasq UBus. Он отправляет уведомления через UBus о событиях DHCPACK и DHCPRELEASE. Кроме того, он предоставляет метрики и позволяет настраивать фильтрацию на основе меток отслеживания подключений Linux. Если включена фильтрация DNS-запросов на основе меток отслеживания подключений Linux, уведомления UBus генерируются для каждого разрешенного или отфильтрованного DNS-запроса. Требуется, чтобы dnsmasq был создан с поддержкой UBus. Если указано имя службы, dnsmasq предоставляет службу в этом пространстве имен, а не в dnsmasq по умолчанию

-o, --strict-order / -o, --строгий-Порядок
По умолчанию dnsmasq отправляет запросы на любой из известных ему вышестоящих серверов и старается отдавать предпочтение серверам, о которых известно, что они работают. Установка этого флага заставляет dnsmasq выполнять каждый запрос на каждом сервере строго в том порядке, в котором они отображаются в /etc/resolv.conf

--all-servers / --все-серверы
По умолчанию, если у dnsmasq доступно более одного вышестоящего сервера, он будет отправлять запросы только на один сервер. Установка этого флага заставляет dnsmasq отправлять все запросы на все доступные серверы. Ответ от сервера, который ответит первым, будет возвращен первоначальному отправителю запроса.

--dns-loop-detect / --обнаружение-dns-цикла
Включите код для обнаружения циклов переадресации DNS, т.е. ситуации, когда запрос, отправленный на один из вышестоящих серверов, в конечном итоге возвращается в виде нового запроса к экземпляру dnsmasq. Процесс работает путем генерации текстовых запросов вида <hex>.test и отправки их на каждый вышестоящий сервер. Шестнадцатеричный код - это UID, который кодирует экземпляр dnsmasq, отправляющий запрос, и вышестоящий сервер, на который он был отправлен. Если запрос возвращается на сервер, который его отправил, то вышестоящий сервер, через который он был отправлен, отключается, и это событие регистрируется. Каждый раз, когда меняется набор вышестоящих серверов, тест выполняется повторно на всех из них, включая те, которые ранее были отключены.

--stop-dns-rebind / --остановка-dns-повторная-привязка
Отклонять (и регистрировать) адреса от вышестоящих серверов имен, которые находятся в закрытых диапазонах. Это блокирует атаку, при которой браузер за брандмауэром используется для проверки компьютеров в локальной сети. Для IPv6 приватный диапазон охватывает адреса, сопоставленные с IPv4 в приватном пространстве, а также все адреса локальных ссылок (LL) и локальных сайтов (ULA).

--rebind-localhost-ok / --повторная привязка-localhost-ок
Освободите 127.0.0.0/8 и ::1 от повторных проверок привязки. Этот диапазон адресов возвращается серверами black hole в реальном времени, поэтому его блокировка может привести к отключению этих служб.

--rebind-domain-ok=[<domain>]|[[/<domain>/[<domain>/] / --повторная привязка-домен-ok=[<домен>]|[[/<домен>/[<домен>/]
Не обнаруживайте и не блокируйте повторную привязку dns при запросах к этим доменам. Аргументом может быть либо один домен, либо несколько доменов, обозначенных символом "/", как в синтаксисе --server, например. --rebind-domain-ok=/domain1/domain2/domain3/

-n, --no-poll / -n, --нет-опроса
Не запрашивайте изменения в файле /etc/resolv.conf.

--clear-on-reload / --очистить-при-перечитать
Всякий раз, когда файл /etc/resolv.conf перечитывается или вышестоящие серверы настраиваются через DBus, очищайте кэш DNS. Это полезно, когда новые серверы имен могут содержать данные, отличные от тех, что хранятся в кэше.

-D, --domain-needed / -D, --домен-требуется
Указывает dnsmasq никогда не пересылать запросы A или AAAA для простых имен, без точек или доменных частей, вышестоящим серверам имен. Если имя неизвестно из /etc/hosts или DHCP, то возвращается ответ "не найдено/not found".

-S, --local, --server=[/[<domain>]/[domain/]][<server>[#<port>]][@<interface>][@<source-ip>[#<port>]]
-S, --локальный, --сервер=[/[<домен>]/[домен/]][<сервер>[#<порт>]][@<интерфейс>][@<ip-адрес источника>[#<порт>]]
Укажите вышестоящие серверы напрямую. Установка этого флага не запрещает чтение файла /etc/resolv.conf, для этого используйте --no-resolv. Если указан один или несколько необязательных доменов, этот сервер используется только для этих доменов, и запросы к ним выполняются только с использованием указанного сервера. Это предназначено для частных серверов имен: если в вашей сети есть сервер имен, который обрабатывает имена вида xxx.internal.thekelleys.org.uk в 192.168.1.1, то присвоение флага --server=/internal.thekelleys.org.uk/192.168.1.1 приведет к отправке всех запросов для внутренних компьютеров на этот сервер имен, все остальное будет отправлено на серверы в /etc/resolv.conf. Проверка DNSSEC отключена для таких частных серверов имен, если только для соответствующего домена не указан --trust-anchor. Пустая спецификация домена, // имеет специальное значение "только неквалифицированные имена", т.е. имена без каких-либо точек. Нестандартный порт может быть указан как часть IP-адреса с помощью символа #. Допускается использование более одного флага --server с повторяющимися частями домена или ipaddr по мере необходимости.

Более специфичные домены имеют приоритет над менее специфичными доменами, поэтому: --server=/google.com/1.2.3.4 --server=/www.google.com/2.3.4.5 будет отправлять запросы на google.com и gmail.google.com к пункту 1.2.3.4, но www.google.com перейдет к 2.3.4.5

Сопоставление доменов обычно выполняется по полным меткам, поэтому /google.com/ соответствует google.com и www.google.com, но НЕ supergoogle.com. Это может быть заменено символом * только в начале шаблона: /*google.com/ будет соответствовать google.com и www.google.com И supergoogle.com. Форма без подстановочного знака имеет приоритет, поэтому, если указаны /google.com/ и /*google.com/, то google.com и www.google.com будут соответствовать /google.com/, а /*google.com/ будут соответствовать только supergoogle.com.

По историческим причинам шаблон /.google.com/ эквивалентен /google.com/ если вы хотите сопоставить любой поддомен из google.com, но не сам google.com, используйте /*.google.com/

Специальный адрес сервера "#" означает "использовать стандартные серверы", поэтому --server=/google.com/1.2.3.4 --server=/www.google.com/# будет отправлять запросы на google.com и его поддоменов до 1.2.3.4, за исключением www.google.com (и его поддоменов), которые будут перенаправлены как обычные.

Также разрешен флаг -S, который указывает домен, но не IP-адрес; это сообщает dnsmasq, что домен является локальным и он может отвечать на запросы из /etc/hosts или DHCP, но никогда не должен пересылать запросы из этого домена на какие-либо вышестоящие серверы. --local - это синоним --server, чтобы в данном случае сделать файлы конфигурации более понятными.

Адреса IPv6 могут содержать идентификатор области действия %интерфейса, например fe80::202:a412:4512:7bbf%eth0.

Необязательная строка после символа @ указывает dnsmasq, как установить источник запросов на этот сервер имен. Это может быть либо ip-адрес, либо имя интерфейса, либо и то, и другое. IP-адрес должен принадлежать компьютеру, на котором запущен dnsmasq, в противном случае эта строка сервера будет записана в журнал и затем проигнорирована. Если указано имя интерфейса, то запросы к серверу будут отправляться принудительно через этот интерфейс; если указан ip-адрес, то исходный адрес запросов будет установлен на этот адрес; и если заданы оба параметра, то для направления запросов на сервер будет использоваться комбинация ip-адреса и имени интерфейса. Флаг порта запроса игнорируется для любых серверов, у которых указан адрес источника, но порт может быть указан непосредственно как часть адреса источника. Принудительное выполнение запросов к интерфейсу реализовано не на всех платформах, поддерживаемых dnsmasq.

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

--rev-server=<ip-address>[/<prefix-len>][,<server>][#<port>][@<interface>][@<source-ip>[#<port>]]
--rev-сервер=<ip-адрес>[/<префикс-len>][,<сервер>][#<порт>][@<интерфейс>][@<исходный ip-адрес>[#<порт>]]
Функционально это то же самое, что и --server, но предоставляет некоторый синтаксический набор, упрощающий задание запросов типа "адрес-имя". Например, --rev-сервер=1.2.3.0/24,192.168.0.1 в точности эквивалентно --server=/3.2.1.in-addr.arpa/192.168.0.1 Допустимые длины префикса - 1-32 (IPv4) и 1-128 (IPv6). Если длина префикса не указана, dnsmasq подставляет либо 32 (IPv4), либо 128 (IPv6).

-A, --address=/<domain>[/<domain>...]/[<ipaddr>]
-A, --адрес=/<домен>[/<домен>...]/[<ip-адрес>]
Укажите IP-адрес, который будет возвращен для любого хоста в указанных доменах. Запросы A (или AAAA) в доменах никогда не пересылаются, и на них всегда отправляется ответ с указанным IP-адресом, который может быть IPv4 или IPv6. Чтобы указать несколько адресов или оба адреса IPv4 и IPv6 для домена, используйте повторяющиеся флаги --address. Обратите внимание, что /etc/hosts и DHCP-серверы переопределяют это для отдельных имен. Обычно это используется для перенаправления всего домена doubleclick.net на какой-нибудь удобный локальный веб-сервер, чтобы избежать баннерной рекламы. Спецификация домена работает так же, как и для --server, с дополнительной возможностью, которая /#/ соответствует любому домену. Таким образом, --address=/#/1.2.3.4 всегда будет возвращать значение 1.2.3.4 для любого запроса, на который не был получен ответ от /etc/hosts или DHCP и который не был отправлен вышестоящему серверу имен с помощью более конкретной директивы --server. Что касается --server, то один или несколько доменов без адреса возвращают ответ "такого домена нет", поэтому --address=/example.com/ эквивалентен --server=/example.com/ и возвращает NXDOMAIN для example.com и всех его поддоменов. Адрес, указанный как "#", преобразуется в нулевой адрес 0.0.0.0, а его IPv6-эквивалент :: so --address=/example.com/# вернет нулевые адреса для example.com и его поддоменов. Это отчасти синтаксический сахар для --address=/example.com/0.0.0.0 и --address=/example.com/::, но также более эффективно, чем включать их в качестве отдельных строк конфигурации. Обратите внимание, что нулевые адреса обычно работают так же, как и localhost, поэтому будьте осторожны, что клиенты, просматривающие эти имена, скорее всего, в конечном итоге будут разговаривать сами с собой.

Обратите внимание, что поведение запросов, которые не соответствуют указанному литералу адреса, изменилось в версии 2.86. Предыдущие версии, настроенные с помощью (например) --address=/example.com/1.2.3.4, а затем запрошенные для типа RR, отличного от A, возвращали бы ответ NoData. Начиная с версии 2.86, запрос отправляется вверх по потоку. Чтобы восстановить работу до версии 2.86, используйте конфигурацию --address=/example.com/1.2.3.4 --local=/example.com/

--ipset=/<domain>[/<domain>...]/<ipset>[,<ipset>...] / --ipset=/<домен>[/<домен>...]/<ipset>[,<ipset>...]
Помещает разрешенные IP-адреса запросов для одного или нескольких доменов в указанный набор IP-адресов Netfilter. Если задано несколько наборов имен, то адреса помещаются в каждый из них с учетом ограничений, налагаемых набором IP-адресов (адреса IPv4 не могут быть сохранены в наборе IPv6, и наоборот). Домены и поддомены сопоставляются таким же образом, как и --address. Эти наборы IP-адресов должны уже существовать. Более подробную информацию смотрите в разделе ipset(8).

--nftset=/<domain>[/<domain>...]/[(6|4)#[<family>#]<table>#<set>[,[(6|4)#[<family>#]<table>#<set>]...]
--nftset=/<домен>[/<домен>...]/[(6/4)#[<семейство>#]<таблица>#<набор>[,[(6/4)#[<семейство>#]<таблица>#<набор>]...]
Аналогично параметру --ipset, но поддерживает один или несколько наборов nftables для добавления IP-адресов. Эти наборы должны уже существовать. Более подробную информацию смотрите в nft(8). Семейство, таблица и набор передаются непосредственно в nft. Если спецификация начинается с 4# или 6#, то в набор добавляются только записи A или AAAA соответственно. Поскольку набор nft может содержать только адреса IPv4 или IPv6, это позволяет избежать ошибок при регистрации адресов неправильного типа.

--connmark-allowlist-enable[=<mask>] / --список-разрешенных-подключений-включить[=<маска>]
Позволяет фильтровать входящие DNS-запросы с соответствующими отметками отслеживания подключений к Linux в соответствии с отдельными списками разрешений, настроенными с помощью ряда параметров --connmark-allowlist. Запрещенные запросы не пересылаются; они отклоняются с кодом ошибки REFUSED. Запросы DNS разрешены только в том случае, если с ними не связана метка отслеживания подключений к Linux или если запрашиваемые домены соответствуют настроенным шаблонам DNS для соответствующей метки отслеживания подключений к Linux. Если для метки отслеживания подключений к Linux не настроен список разрешений, все запросы DNS, связанные с этой меткой, отклоняются. Если указана маска, метки дорожек соединений Linux сначала сопоставляются побитово с заданной маской, а затем обрабатываются.

--connmark-allowlist=<connmark>[/<mask>][,<pattern>[/<pattern>...]]
--список-разрешенных-подключений=<подключаемая метка>[/<маска>][,<шаблон>[/<шаблон>...]]
Настраивает шаблоны DNS, которые разрешены в DNS-запросах, связанных с заданной меткой отслеживания соединений Linux. Если указана маска, метки отслеживания соединений Linux сначала сопоставляются побитово с заданной маской, а затем сравниваются с заданной меткой отслеживания соединений. Шаблоны соответствуют синтаксису DNS-имен, но дополнительно позволяют использовать подстановочный знак "*" до двух раз для каждой метки, чтобы соответствовать 0 или более символам в этой метке. Обратите внимание, что подстановочный знак никогда не совпадает с точкой (например, "*.example.com" совпадает с "api.example.com", но не с "api.us.example.com"). Шаблоны должны быть полными, т.е. состоять как минимум из двух меток. Конечная метка не должна быть полностью числовой и не должна быть "локальным" ПСЕВДОДВУО. Шаблон должен заканчиваться как минимум двумя буквенными (без подстановочных знаков) метками. Вместо шаблона можно указать "*", чтобы полностью отключить фильтрацию списка разрешений для данной метки отслеживания подключений к Linux.

-m, --mx-host=<mx name>[[,<hostname>],<preference>] / -m, --mx-хост=<имя mx>[[,<имя хоста>],<настройки>]
Возвращает запись MX с именем <имя mx>, указывающую на заданное имя хоста (если оно задано), или на хост, указанный в параметре --mx-target, или, если этот параметр не задан, на хост, на котором запущен dnsmasq. Значение по умолчанию используется для отправки почты из систем локальной сети на центральный сервер. Значение параметра является необязательным и по умолчанию равно 1, если оно не задано. Для хоста может быть задано более одной MX-записи.

-t, --mx-target=<hostname> / -t, --mx-target=<имя хоста>
Укажите целевой объект по умолчанию для записи MX, возвращаемой dnsmasq. Смотрите раздел --mx-host. Если указан --mx-target, но не --mx-host, то dnsmasq возвращает запись MX, содержащую MX-target для запросов MX на имя хоста компьютера, на котором запущен dnsmasq.

-e, --selfmx /-e, --самостоятельный mx
Возвращает MX-запись, указывающую на себя, для каждой локальной машины. Локальные машины - это те, которые находятся в /etc/hosts или с правами аренды DHCP.

-L, --localmx / -L, --Локальный mx
Возвращает запись MX, указывающую на хост, указанный в --mx-target (или на компьютер, на котором запущен dnsmasq), для каждой локальной машины. Локальными машинами являются те, которые находятся в /etc/hosts или с правами аренды DHCP.

-W, --srv-host=<_service>.<_prot>.[<domain>],[<target>[,<port>[,<priority>[,<weight>]]]]
-W, --srv-хост=<_сервис>.<_порт>.[<домен>],[<цель>[,<порт>[,<приоритет>[,<вес>]]]]
Возвращает DNS-запись SRV. Подробности смотрите в RFC2782. Если она не указана, домен по умолчанию будет соответствовать домену, указанному в --domain. Значение по умолчанию для целевого домена пустое, порт по умолчанию равен единице, а значения по умолчанию для веса и приоритета равны нулю. Будьте осторожны при переносе данных из файлов зоны привязки: номера портов, веса и приоритета указаны в другом порядке. Допускается использование более одной записи SRV для данной службы/домена, возвращаются все совпадающие записи.

--host-record=<name>[,<name>....],[<IPv4-address>],[<IPv6-address>][,<TTL>]
--запись хоста=<имя>[,<имя>....],[<IPv4-адрес>],[<IPv6-адрес>][,<TTL>]
Добавьте в DNS записи A, AAAA и PTR. Это добавит в DNS одно или несколько имен с соответствующими записями IPv4 (A) и IPv6 (AAAA). Имя может содержаться более чем в одной --host-record, и, следовательно, ему может быть присвоено более одного адреса. Только первый адрес создает запись PTR, связывающую адрес с именем. Это то же правило, которое используется при чтении файлов hosts. параметры --host-record считаются прочитанными перед файлами хоста, поэтому имя, появляющееся там, препятствует созданию PTR-записи, если оно также появляется в файле хостов. В отличие от файлов хостов, имена не раскрываются, даже если активирован параметр --expand-hosts. Короткие и длинные имена могут отображаться в одной и той же --host-record, например. --host-record=laptop,laptop.thekelleys.org,192.168.0.1,1234::100

Если указано время жизни, оно переопределяет значение по умолчанию, равное нулю, или значение --local-ttl. Значение является положительным целым числом и указывает время жизни в секундах.

--dynamic-host=<name>,[IPv4-address],[IPv6-address],<interface>
--динамический-хост=<имя>,[IPv4-адрес],[IPv6-адрес],<интерфейс>
Добавьте записи A, AAAA и PTR в DNS в той же подсети, что и указанный интерфейс. Адрес определяется из сетевой части каждого адреса, связанного с интерфейсом, а хост-часть - из указанного адреса. Например --dynamic-host=example.com,0.0.0.8,eth0 будет, когда eth0 будет иметь адрес 192.168.78.x, а маска сети 255.255.255.0 выдаст имя example.com запись A для 192.168.78.8. Тот же принцип применим к адресам IPv6. Обратите внимание, что если интерфейс имеет более одного адреса, будет создано более одной записи A или AAAA. TTL записей всегда равен нулю, и любые изменения адресов интерфейса будут немедленно отражены в них.

-Y, --txt-record=<name>[[,<text>],<text>]
-Y, --txt-запись=<имя>[[,<текст>],<текст>]
Возвращает запись DNS TXT. Значение записи TXT представляет собой набор строк, поэтому можно включить любое число, разделенное запятыми; используйте кавычки для помещения запятых в строку. Обратите внимание, что максимальная длина одной строки составляет 255 символов, более длинные строки разбиваются на фрагменты по 255 символов.

--ptr-record=<name>[,<target>] / --ptr-запись=<имя>[,<цель>]
Верните PTR DNS-запись.

--naptr-record=<name>,<order>,<preference>,<flags>,<service>,<regexp>[,<replacement>]
--naptr-запись=<имя>,<порядок>,<предпочтение>,<флаги>,<служба>,<регулярное выражение>[,<замена>]
Верните запись DNS NAPTR, как указано в RFC3403.

--caa-record=<name>,<flags>,<tag>,<value>
--caa-запись=<имя>,<флаги>,<тег>,<значение>
Возвращает запись DNS CAA, как указано в RFC6844.

--cname=<cname>,[<cname>,]<target>[,<TTL>]
--cимя=<cимя>,[<cимя>,]<цель>[,<TTL>]
Возвращает запись CNAME, которая указывает, что <cname> на самом деле является <target>. На цель накладывается существенное ограничение: это должна быть запись DNS, известная dnsmasq, а НЕ запись DNS, которая исходит от вышестоящего сервера. Имя cname должно быть уникальным, но допускается наличие более одного имени cname, указывающего на одну и ту же цель. Действительно, можно объявить несколько имен cname для цели в одной строке, например: --cname=cname1,cname2,target

Если указано время жизни, оно переопределяет значение по умолчанию, которое равно нулю или значению --local-ttl . Значение является положительным целым числом и указывает время жизни в секундах.

--dns-rr=<name>,<RR-number>,[<hex data>] / --dns-rr=<имя>,<RR-номер>,[<шестнадцатеричные данные>]
Возвращает произвольную запись ресурса DNS. Число — это тип записи (который всегда находится в классе C_IN). Значение записи задается шестнадцатеричными данными, которые могут иметь форму 01:23:45 или 01 23 45 или 012345 или любую их смесь.

--interface-name=<name>,<interface>[/4|/6] / --интерфейс-имя=<имя>,<интерфейс>[/4|/6]
Возвращает записи DNS, связывающие имя с адресом(ами) указанного интерфейса. Этот флаг указывает запись A или AAAA для указанного имени так же, как строка /etc/hosts, за исключением того, что адрес не является постоянным, а берется из указанного интерфейса. За интерфейсом может следовать "/4" или "/6", чтобы указать, что следует использовать только адреса IPv4 или IPv6 интерфейса. Если интерфейс отключен, не настроен или не существует, возвращается пустая запись. Также создается соответствующая запись PTR, сопоставляющая адрес интерфейса с именем. С адресом интерфейса можно связать более одного имени, повторив флаг; в этом случае первый экземпляр используется для обратного сопоставления адреса с именем. Обратите внимание, что имя, используемое в --interface-name, может не отображаться в /etc/hosts.

--synth-domain=<domain>,<address range>[,<prefix>[*]][/b]
--synth-domain=<домен>,<диапазон адресов>[,<префикс>[*]]
Создать искусственные записи A/AAAA и PTR для диапазона адресов. Записи либо последовательных чисел, либо адреса, с точками (или двоеточиями для IPv6), замененными на тире.

Примеры должны прояснить это. Сначала последовательные числа. --synth-domain=thekelleys.org.uk,192.168.0.50,192.168.0.70,internal-* приводит к имени internal-0.thekelleys.org.uk. возвращает 192.168.0.50, internal-1.thekelleys.org.uk возвращает 192.168.0.51 и т. д. (обратите внимание на *) Тот же принцип применим к адресам IPv6 (где числа могут быть очень большими). ​​Обратный поиск от адреса к имени ведет себя так, как и ожидалось.

Во-вторых, --synth-domain=thekelleys.org.uk,192.168.0.0/24,internal- (no*) приведет к запросу internal-192-168-0-56.thekelleys.org.uk, возвращающему 192.168.0.56, и обратному запросу, возвращающему наоборот. То же самое относится к IPv6, но адреса IPv6 могут начинаться с '::', но метки DNS не могут начинаться с '-', поэтому в этом случае, если префикс не настроен, перед меткой добавляется ноль. ::1 становится 0--1.

Сопоставленные с V4 IPv6-адреса, имеющие представление типа ::ffff:1.2.3.4, обрабатываются особым образом и становятся такими: 0--ffff-1-2-3-4

Диапазон адресов может быть в форме <начальный адрес>,<конечный адрес> или <IP-адрес>/<длина-префикса> в обеих формах опции. Для IPv6 начальный и конечный адреса должны находиться в одной и той же сети /64, или длина-префикса должна быть больше или равна 64, за исключением того, что более короткие длины префикса, чем 64, разрешены только в случае использования непоследовательных имен.

--dumpfile=<path/to/file> / --дамп-файл=<путь/к/файлу>
Укажите местоположение файла формата pcap, который dnsmasq использует для дампа копий сетевых пакетов в целях отладки. Если файл существует при запуске dnsmasq, он не удаляется; новые пакеты добавляются в конец.

--dumpmask=<mask> /--дамп-маска=<маска>
Укажите, какие типы пакетов следует добавить в файл дампа. Аргумент должен быть OR битовых масок для каждого типа пакета, который нужно выгрузить: его можно указать в шестнадцатеричном формате, поставив перед числом 0x обычным способом. Каждый раз, когда пакет записывается в файл дампа, dnsmasq регистрирует последовательность пакетов и маску, представляющую его тип. Текущие типы: 0x0001 — DNS-запросы от клиентов, 0x0002 DNS-ответы клиентам, 0x0004 — DNS-запросы к вышестоящему серверу, 0x0008 — DNS-ответы от вышестоящего сервера, 0x0010 — запросы, отправляемые вышестоящему серверу для проверки DNSSEC, 0x0020 — ответы на запросы для проверки DNSSEC, 0x0040 — ответы на клиентские запросы, не прошедшие проверку DNSSEC, 0x0080 — ответы на запросы для проверки DNSSEC, не прошедшие проверку, 0x1000 — DHCPv4, 0x2000 — DHCPv6, 0x4000 — объявление маршрутизатора, 0x8000 — TFTP.

--add-mac[=base64|text] / --добавить-мак[=base64|текст]
Добавьте MAC-адрес запрашивающей стороны к DNS-запросам, которые пересылаются вверх по течению. Это может использоваться для фильтрации DNS вышестоящим сервером. MAC-адрес можно добавить только в том случае, если запрашивающая сторона находится в той же подсети, что и сервер dnsmasq. Обратите внимание, что механизм, используемый для достижения этого (опция EDNS0), еще не стандартизирован, поэтому его следует считать экспериментальным. Также обратите внимание, что раскрытие MAC-адресов таким образом может иметь последствия для безопасности и конфиденциальности. Предупреждение о кэшировании, данное для --add-subnet , применимо и к --add-mac . Альтернативная кодировка MAC, как base64, включается путем добавления параметра "base64", а человекочитаемая кодировка шестнадцатеричных чисел с двоеточиями включается путем добавления параметра "text".

--strip-mac
Удалите всю информацию о MAC-адресах, которая уже находится в нисходящих запросах, перед пересылкой вверх по течению.

--add-cpe-id=<string> / --добавить-cpe-ид=<строка>
Добавляйте произвольную идентификационную строку к DNS-запросам, которые пересылаются наверх.

--add-subnet[[=[<IPv4 address>/]<IPv4 prefix length>][,[<IPv6 address>/]<IPv6 prefix length>]]
--добавить-подсеть[[=[<адрес IPv4>/]<длина префикса IPv4>][,[<адрес IPv6>/]<длина префикса IPv6>]]
Добавьте адрес подсети к DNS-запросам, которые пересылаются вверх по течению. Если адрес указан во флаге, он будет использоваться, в противном случае будет использоваться адрес запрашивающей стороны. Количество пересылаемых адресов зависит от параметра длины префикса: 32 (128 для IPv6) пересылает весь адрес, ноль не пересылает ничего, но все равно помечает запрос, так что ни один сервер имен вышестоящего уровня также не добавит информацию об адресе клиента. Значение по умолчанию равно нулю как для IPv4, так и для IPv6. Обратите внимание, что серверы имен вышестоящего уровня могут быть настроены на возврат разных результатов на основе этой информации, но кэш dnsmasq не учитывает это. Поэтому кэширование отключено для таких ответов, если только добавляемый адрес подсети не является постоянным.

Например, --add-subnet=24,96 добавит подсети /24 и /96 запрашивающей стороны для запрашивающих сторон IPv4 и IPv6 соответственно. --add-subnet=1.2.3.4/24 добавит 1.2.3.0/24 для запрашивающих сторон IPv4 и ::/0 для запрашивающих сторон IPv6. --add-subnet=1.2.3.4/24,1.2.3.4/24 добавит 1.2.3.0/24 для запрашивающих сторон IPv4 и IPv6.
количество слов: 1849
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

dnsmasq

Сообщение Артём Мамзиков »

--strip-subnet / --strip-подсеть
Удалить любой адрес подсети, уже присутствующий в нисходящем запросе, перед его пересылкой вверх по течению. Если задано --add-subnet, это также гарантирует, что любая предоставленная нисходящим потоком подсеть будет заменена той, что добавлена ​​dnsmasq. В противном случае dnsmasq НЕ заменит существующую подсеть в запросе.

--umbrella[=[deviceid:<deviceid>][,orgid:<orgid>][,assetid:<id>]]
--umbrella[=[ИД-устройства:<ИД-устройства>][,ИД-организации:<ИД-организации>][,ИД-актива:<ИД>]]
Встраивает IP-адрес запрашивающей стороны в DNS-запросы, пересылаемые вверх по течению. Если указаны идентификатор устройства или идентификатор актива или идентификатор организации, информация включается в пересылаемые запросы и может использоваться в политиках фильтрации и отчетности. Порядок атрибутов идентификатора не имеет значения, но они должны быть разделены запятой. Deviceid — шестнадцатеричное число из шестнадцати цифр, идентификаторы организации и актива — десятичные числа.

-c, --cache-size=<cachesize> / -c, --кэш-размер=<размер кэша>
Установите размер кэша dnsmasq. Значение по умолчанию — 150 имен. Установка размера кэша на ноль отключает кэширование. Примечание: большой размер кэша влияет на производительность.

-N, --no-negcache / -N, -нет-кэш-памяти
Отключить отрицательное кэширование. Отрицательное кэширование позволяет dnsmasq запоминать ответы «no such domain» от вышестоящих серверов имен и отвечать на идентичные запросы, не пересылая их снова.

--no-round-robin / --без-кругового-оборудования
Dnsmasq обычно переставляет порядок записей A или AAAA для одного и того же имени в последовательных запросах для балансировки нагрузки. Это отключает такое поведение, так что записи всегда возвращаются в том порядке, в котором они были получены от вышестоящего сервера.

--use-stale-cache[=<max TTL excess in s>] / --использовать-устаревший-кэш[=<максимальное превышение TTL в с>]
Если установлено, если имя DNS существует в кэше, но его время жизни истекло, dnsmasq все равно вернет данные. (Он пытается обновить данные с помощью запроса вверх по течению после возврата устаревших данных.) Это может повысить скорость и надежность. Это происходит за счет иногда возвращаемых устаревших данных и менее эффективного использования кэша, поскольку старые данные не могут быть очищены по истечении их TTL, поэтому кэш в основном становится наименее недавно использованным. Чтобы смягчить проблемы, вызванные сильно устаревшими ответами DNS, можно указать максимальный срок хранения кэшированных записей в секундах (по умолчанию не обслуживать ничего старше одного дня). Установка избыточного времени TTL на ноль будет обслуживать устаревшие данные кэша независимо от того, как давно они устарели.

-0, --dns-forward-max=<queries> / -0, --dns-переадресация-макс.=<запросы>
Установите максимальное количество одновременных DNS-запросов. Значение по умолчанию — 150, что должно быть приемлемо для большинства настроек. Единственная известная ситуация, когда это значение необходимо увеличить, — это использование резольверов файлов журналов веб-серверов, которые могут генерировать большое количество одновременных запросов. Этот параметр фактически контролирует количество одновременных запросов на группу серверов, где группа серверов — это набор серверов, связанных с одним доменом. Таким образом, если у домена есть собственный сервер через --server=/example.com/1.2.3.4 и 1.2.3.4 не отвечает, но запросы для *.example.com не могут быть направлены куда-либо еще, то другие запросы не будут затронуты. В конфигурациях со многими такими группами серверов и ограниченными ресурсами это значение может потребоваться уменьшить.

--dnssec
Проверка ответов DNS и кэширование данных DNSSEC. При пересылке запросов DNS dnsmasq запрашивает записи DNSSEC, необходимые для проверки ответов. Ответы проверяются, и результат возвращается как бит Authenticated Data в пакете DNS. Кроме того, записи DNSSEC хранятся в кэше, что делает проверку клиентами более эффективной. Обратите внимание, что проверка клиентами является наиболее безопасным режимом DNSSEC, но для клиентов, неспособных выполнить проверку, полезно использовать бит AD, установленный dnsmasq, при условии, что сеть между сервером dnsmasq и клиентом является доверенной. Dnsmasq должен быть скомпилирован с включенным HAVE_DNSSEC и предоставленными якорями доверия DNSSEC, см. --trust-anchor. Поскольку процесс проверки DNSSEC использует кэш, не допускается уменьшение размера кэша ниже значения по умолчанию при включенном DNSSEC. Серверы имен вышестоящего уровня dnsmasq должны поддерживать DNSSEC, т. е. должны возвращать записи DNSSEC с данными. Если это не так, то dnsmasq не сможет определить доверенный статус ответов, а это означает, что служба DNS будет полностью нарушена.

--trust-anchor=[<class>],<domain>,<key-tag>,<algorithm>,<digest-type>,<digest>
--якорь-доверия=[<класс>],<домен>,<тег-ключа>,<алгоритм>,<тип-дайджеста>,<дайджест>
Предоставьте записи DS для использования в качестве якорей доверия для проверки DNSSEC. Обычно это будут записи DS для ключей подписи ключей (KSK) корневой зоны, но якоря доверия для ограниченных доменов также возможны. Текущие якоря доверия корневой зоны можно загрузить с https://data.iana.org/root-anchors/root-anchors.xml

--dnssec-check-unsigned[=no] / --dnssec-check-unsigned[=нет]
По умолчанию dnsmasq проверяет, что неподписанные ответы DNS являются легитимными: это влечет за собой возможные дополнительные запросы даже для большинства зон DNS, которые в данный момент не подписаны.
Если в конфигурации появляется --dnssec-check-unsigned=no , то такие ответы считаются действительными и передаются дальше (конечно, без установленного бита "authentic data"). Это не защищает от подделки злоумышленником неподписанных ответов для подписанных зон DNS, но это быстро.
Версии dnsmasq до 2.80 по умолчанию не проверяли неподписанные ответы и использовали --dnssec-check-unsigned для включения этой функции. Такие конфигурации будут работать как и прежде, но те, которые использовали настройку по умолчанию без проверки, необходимо будет изменить, чтобы явно выбрать отсутствие проверки. Новое значение по умолчанию связано с тем, что отключение проверки неподписанных ответов по своей сути опасно. Это не только открывает возможность поддельных ответов, но и позволяет всему выглядеть работающим, даже если серверы имен вышестоящего уровня не поддерживают DNSSEC, и в этом случае проверка DNSSEC вообще не выполняется.

--dnssec-no-timecheck / --проверка-dns в режиме-реального-времени
Подписи DNSSEC действительны только для указанных временных интервалов и должны отклоняться за пределами этих интервалов. Это создает интересную проблему курицы или яйца для машин, не имеющих аппаратных часов реального времени. Для определения правильного времени этими машинами обычно требуется использование NTP и, следовательно, DNS, но проверка DNS требует, чтобы правильное время было уже известно. Установка этого флага удаляет проверки временных интервалов (но не другую проверку DNSSEC) только до тех пор, пока процесс dnsmasq не получит SIGINT. Предполагается, что dnsmasq следует запускать с этим флагом, когда платформа определяет, что надежное время в данный момент недоступно. Как только надежное время установлено, следует отправить SIGINT в dnsmasq, что включает проверку времени и очищает кэш записей DNS, которые не были тщательно проверены.
Более ранние версии dnsmasq перегружали SIGHUP (который перечитывал большую часть конфигурации), чтобы также включить проверку времени.

Если dnsmasq запущен в режиме отладки ( флаг --no-daemon), то SIGINT сохраняет свое обычное значение завершения процесса dnsmasq.

--dnssec-timestamp=<path> / --dnssec-отметка-времени=<путь>
Включает альтернативный способ проверки действительности системного времени для DNSSEC (см. --dnssec-no-timecheck ). В этом случае системное время считается действительным, как только оно становится позже временной метки указанного файла. Файл создается и его временная метка устанавливается автоматически dnsmasq. Файл должен храниться в постоянной файловой системе, чтобы он и его mtime переносились при перезапусках системы. Файл временной метки создается после того, как dnsmasq отменяет root, поэтому он должен находиться в месте, доступном для записи непривилегированному пользователю, от имени которого запускается dnsmasq.

--proxy-dnssec
Копировать бит аутентифицированных данных DNSSEC с вышестоящих серверов на нижестоящие клиенты. Это альтернатива проверке DNSSEC с помощью dnsmasq, но она зависит от безопасности сети между dnsmasq и вышестоящими серверами, а также от надежности вышестоящих серверов. Обратите внимание, что правильное кэширование бита аутентифицированных данных во всех случаях технически невозможно. Если при использовании этой опции необходимо полагаться на бит AD, то кэш следует отключить с помощью --cache-size=0. В большинстве случаев включение проверки DNSSEC в dnsmasq является лучшим вариантом. Подробности см. в --dnssec.

--dnssec-limits=<limit>[,<limit>.......] / --dnssec-лимит=<лимит>[,<лимит>.......]
Переопределить ограничения ресурсов по умолчанию, применяемые к проверке DNSSEC. Криптографические операции обходятся дорого, и созданные домены могут DoS-атаковать валидатор DNSSEC, заставляя его выполнять сотни тысяч таких операций. Чтобы избежать этого, код проверки dnsmasq применяет ограничения на объем работы, затраченной на проверку. Если какой-либо из лимитов будет превышен, проверка завершится неудачей, а домен будет считаться ФИКТИВНЫМ. Существует четыре ограничения по порядку (значения по умолчанию в скобках): количество неудачных проверок подписи на RRset (20), количество проверок подписи и вычислений хэша на запрос (200), количество подзапросов для извлечения наборов RRset DS и DNSKEY на запрос (40) и количество итераций в записи NSEC3 (150). Максимальные значения, достигнутые во время проверки, сохраняются и выводятся как часть статистики, генерируемой SIGUSR1. Если указать предельное значение 0, то значение по умолчанию останется неизменным, поэтому --dnssec-limits=0,0,20 устанавливает количество подзапросов равным 20, а остальные ограничения оставляют на значениях по умолчанию.

--dnssec-debug / --dnssec-отладка
Установите режим отладки для проверки DNSSEC, установите бит Checking Disabled для запросов upstream и не преобразуйте ответы, которые не прошли проверку, в ответы с кодом возврата SERVFAIL. Обратите внимание, что установка этого параметра может плохо повлиять на поведение DNS, это не флаг дополнительного ведения журнала, и его не следует устанавливать в рабочей среде.

--auth-zone=<domain>[,<subnet>[/<prefix length>][,<subnet>[/<prefix length>].....][,exclude:<subnet>[/<prefix length>]].....]
--зона-авторизации=<домен>[,<подсеть>[/<длина префикса>][,<подсеть>[/<длина префикса>].....][,исключать:<подсеть>[/<длина префикса>]].....]
Определите зону DNS, для которой dnsmasq выступает в качестве уполномоченного сервера. Будут обслуживаться локально определенные записи DNS, которые находятся в домене. Если указаны подсети, записи A и AAAA должны находиться в одной из указанных подсетей.
В качестве альтернативы прямому указанию подсетей можно указать имя интерфейса, в этом случае используются подсети, подразумеваемые настроенными адресами интерфейса и сетевой маской/длиной префикса; это полезно при использовании сконструированных диапазонов DHCP, поскольку фактический адрес является динамическим и неизвестен при настройке dnsmasq. Адреса интерфейсов могут быть ограничены только адресами IPv6 с использованием <interface>/6 или только IPv4 с использованием <interface>/4. Это полезно, когда интерфейс имеет динамически определенные глобальные адреса IPv6, которые должны отображаться в зоне, но адреса RFC1918 IPv4, которые не должны. Спецификации подсети interface-name и address-literal можно свободно использовать в одном и том же объявлении --auth-zone .

Можно исключить определенные IP-адреса из ответов. Это можно использовать, чтобы убедиться, что ответы содержат только глобальные маршрутизируемые IP-адреса (исключая адреса loopback, RFC1918 и ULA).

Подсети также используются для определения доменов in-addr.arpa и ip6.arpa, которые обслуживаются для обратных DNS-запросов. Если не указано, длина префикса по умолчанию составляет 24 для IPv4 и 64 для IPv6. Для подсетей IPv4 длина префикса должна иметь значение 8, 16 или 24, если вы не знакомы с RFC 2317 и не организовали делегирование in-addr.arpa соответствующим образом. Обратите внимание, что если подсети не указаны, то обратные запросы не будут удовлетворены.

--auth-soa=<serial>[,<hostmaster>[,<refresh>[,<retry>[,<expiry>]]]]
--авторизация-soa=<серийный номер>[,<хозяин>[,<обновление>[,<повтор>[,<срок действия>]]]]
Укажите поля в записи SOA, связанные с авторитетными зонами. Обратите внимание, что это необязательно, все значения устанавливаются на разумные значения по умолчанию.

--auth-sec-servers=<domain>[,<domain>[,<domain>...]] / --аутентификации-sec-сервер=<домен>[,<домен>[,<домен>...]]
Укажите любые вторичные серверы для зоны, для которой dnsmasq является полномочным. Эти серверы должны быть настроены на получение данных зоны от dnsmasq путем передачи зоны и отвечать на запросы для тех же полномочных зон, что и dnsmasq.

--auth-peer=<ip-address>[,<ip-address>[,<ip-address>...]] / --авторизационный-пиринг=<ip-адрес>[,<ip-адрес>[,<ip-адрес>...]]
Укажите адреса вторичных серверов, которым разрешено инициировать запросы на передачу зон (AXFR) для зон, для которых dnsmasq является полномочным. Если эта опция не указана, но указана --auth-sec-servers, то запросы AXFR будут приниматься от любого вторичного сервера. Указание --auth-peer без --auth-sec-servers включает передачу зон, но не объявляет вторичный сервер в записях NS, возвращаемых dnsmasq.

--conntrack / --соединительный Трекинг
Прочитайте метку трека соединения Linux, связанную с входящими запросами DNS, и установите то же значение метки для восходящего трафика, используемого для ответа на эти запросы. Это позволяет связать трафик, генерируемый dnsmasq, с запросами, которые его вызывают, что полезно для учета пропускной способности и брандмауэра. Dnsmasq должен иметь скомпилированную поддержку conntrack, а ядро ​​должно иметь включенную и настроенную поддержку conntrack. Эту опцию нельзя комбинировать с --query-port.

-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-addr>[,<end-addr>|<mode>[,<netmask>[,<broadcast>]]][,<lease time>]
-F, --dhcp-диапазон=[тег:<тег>[,тег:<тег>],][set:<тег>,]<начальный-адрес>[,<конечный-адрес>|<режим>[,<маска сети>[,<широковещательная передача>]]][,<время аренды>]
-F, --dhcp-range=[tag:<tag>[,tag:<tag>],][set:<tag>,]<start-IPv6addr>[,<end-IPv6addr>|constructor:<interface>][,<mode>][,<prefix-len>][,<lease time>]
-F, --dhcp-диапазон=[тег:<тег>[,тег:<тег>],][set:<тег>,]<начальный-IPv6-адрес>[,<конечный-IPv6-адрес>|конструктор:<интерфейс>][,<режим>][,<длина-префикса>][,<время аренды>]
Включите DHCP-сервер. Адреса будут выдаваться из диапазона <start-addr> по <end-addr> и из статически определенных адресов, указанных в параметрах --dhcp-host . Если указано время аренды, то аренды будут выдаваться на этот период времени. Время аренды указывается в секундах, минутах (например, 45m) или часах (например, 1h) или днях (2d) или неделях (1w) или "бесконечно". Если не указано, то время аренды по умолчанию составляет один час для IPv4 и один день для IPv6. Минимальное время аренды составляет две минуты. Для диапазонов IPv6 время аренды может быть "устаревшим"; это устанавливает предпочтительное время жизни, отправленное в аренде DHCP или объявлении маршрутизатора, равным нулю, что заставляет клиентов использовать другие адреса, если они доступны, для новых подключений в качестве прелюдии к перенумерации.

Эту опцию можно повторять с разными адресами, чтобы включить службу DHCP для более чем одной сети. Для сетей с прямым подключением (т. е. сетей, в которых машина, на которой запущен dnsmasq, имеет интерфейс) сетевая маска необязательна: dnsmasq определит ее из конфигурации интерфейса. Для сетей, получающих службу DHCP через агента-ретранслятора, dnsmasq не может определить саму сетевую маску, поэтому ее следует указать, в противном случае dnsmasq придется угадывать на основе класса (A, B или C) сетевого адреса. Широковещательный адрес всегда необязателен. Всегда разрешено иметь более одного --dhcp-range в одной подсети.

Для IPv6 параметры немного отличаются: вместо сетевой маски и широковещательного адреса есть необязательная длина префикса, которая должна быть равна или больше длины префикса на локальном интерфейсе. Если не указано, по умолчанию используется значение 64. В отличие от IPv4, длина префикса не выводится автоматически из конфигурации интерфейса. Минимальный размер длины префикса составляет 64.

IPv6 (только) поддерживает другой тип диапазона. В этом случае начальный адрес и необязательный конечный адрес содержат только сетевую часть (т. е. ::1), а за ними следует constructor:<interface> конструктор:<интерфейс>. Это формирует шаблон, описывающий, как создавать диапазоны на основе адресов, назначенных интерфейсу. Например,

--dhcp-range=::1,::400,constructor:eth0
--dhcp-диапазон=::1,::400,конструктор:eth0

будет искать адреса на eth0, а затем создавать диапазон от <network>::1 до <network>::400. Если интерфейсу назначено более одной сети, соответствующие диапазоны будут автоматически созданы, а затем объявлены устаревшими и, наконец, снова удалены, поскольку адрес объявлен устаревшим и затем удален. Имя интерфейса может иметь конечный подстановочный знак "*". Обратите внимание, что любой адрес на eth0 не подойдет: он не должен быть автоматически настроенным или конфиденциальным адресом или быть устаревшим.

Если --dhcp-range используется только для DHCP без сохранения состояния и/или SLAAC, то адрес может быть просто ::

--dhcp-range=::,constructor:eth0 / --dhcp-дипазан=::,конструктор:eth0

Необязательный set:<tag> устанавливает буквенно-цифровую метку, которая отмечает эту сеть, так что параметры DHCP могут быть указаны для каждой сети. Если вместо этого используется префикс 'tag:', то его значение меняется с установки тега на сопоставление с ним. Можно установить только один тег, но можно сопоставить более одного тега.

Необязательное ключевое слово <mode> может быть статическим static, что сообщает dnsmasq включить DHCP для указанной сети, но не динамически выделять IP-адреса: будут обслуживаться только хосты, имеющие статические адреса, заданные через --dhcp-host или из /etc/ethers. Статическая подсеть с адресом, состоящим из одних нулей, может использоваться как адрес "catch-all" для включения ответов на все пакеты запроса информации в подсети, которая предоставляется DHCPv6 без сохранения состояния, т. е. --dhcp-range=::,static

Для IPv4 <mode> может быть proxy, в этом случае dnsmasq предоставит proxy-DHCP в указанной подсети. ( Подробности см. в --pxe-prompt и --pxe-service .)

Для IPv6 режим может представлять собой некоторую комбинацию ra-only, slaac, ra-names, ra-stateless, ra-advrouter, off-link.

ra-only сообщает dnsmasq о необходимости предлагать объявление маршрутизатора только в этой подсети, а не DHCP.

slaac сообщает dnsmasq о необходимости предложить Router Advertisement в этой подсети и установить бит A в Router Advertisement, чтобы клиент использовал адреса SLAAC. При использовании с диапазоном DHCP или статическим адресом DHCP это приводит к тому, что клиент имеет как назначенный DHCP, так и адрес SLAAC.

ra-stateless отправляет объявления маршрутизатора с установленными битами O и A и предоставляет службу DHCP без сохранения состояния. Клиент будет использовать адрес SLAAC и использовать DHCP для другой информации о конфигурации.

ra-names включает режим, который дает имена DNS хостам с двойным стеком, которые используют SLAAC для IPv6. Dnsmasq использует аренду IPv4 хоста для получения имени, сегмента сети и MAC-адреса и предполагает, что хост также будет иметь адрес IPv6, рассчитанный с использованием алгоритма SLAAC, в том же сегменте сети. Адрес пингуется, и если получен ответ, запись AAAA добавляется в DNS для этого адреса IPv6. Обратите внимание, что это происходит только для сетей с прямым подключением (не для сетей, использующих DHCP через ретранслятор), и это не будет работать, если хост использует расширения конфиденциальности. ra-names можно комбинировать с ra-stateless и slaac.

ra-advrouter включает режим, в котором в объявления включаются адреса маршрутизатора, а не префиксы. Это описано в разделе 7.2 RFC-3775 и используется в мобильном IPv6. В этом режиме также включена опция интервала, как описано в разделе 7.3 RFC-3775.

off-link сообщает dnsmasq о необходимости объявить префикс без установленного бита on-link (он же L).

-G, --dhcp-host=[<hwaddr>][,id:<client_id>|*][,set:<tag>][,tag:<tag>][,<ipaddr>][,<hostname>][,<lease_time>][,ignore]
-G, --dhcp-хост=[<адресhw>][,идентификатор:<клиент_ид>|*][,набор:<тег>][,тег:<тег>][,<ipадрес>][,<имя хоста>][,<время аренды>][,игнорировать]
Укажите параметры хоста для DHCP-сервера. Это позволяет машине с определенным аппаратным адресом всегда выделять одно и то же имя хоста, IP-адрес и время аренды. Имя хоста, указанное таким образом, переопределяет любое, предоставленное DHCP-клиентом на машине. Также допускается опустить аппаратный адрес и включить имя хоста, в этом случае IP-адрес и время аренды будут применяться к любой машине, заявляющей это имя. Например, --dhcp-host=00:20:e0:3b:13:af,wap,infinite сообщает dnsmasq, что нужно дать машине с аппаратным адресом 00:20:e0:3b:13:af имя wap и бесконечную аренду DHCP. --dhcp-host=lap,192.168.0.199 сообщает dnsmasq, что нужно всегда выделять машине lap IP-адрес 192.168.0.199.
Адреса, выделенные таким образом, не ограничены диапазоном, заданным опцией --dhcp-range, но они должны быть в той же подсети, что и некоторый допустимый dhcp-range. Для подсетей, которым не нужен пул динамически выделенных адресов, используйте ключевое слово "static" в объявлении --dhcp-range .

Разрешается использовать идентификаторы клиентов (называемые DUID клиента в IPv6-land) вместо аппаратных адресов для идентификации хостов с помощью префикса 'id:'. Таким образом: --dhcp-host=id:01:02:03:04,..... относится к хосту с идентификатором клиента 01:02:03:04. Также разрешается указывать идентификатор клиента в виде текста, например: --dhcp-host=id:clientidastext,.....

Один --dhcp-host может содержать адрес IPv4 или один или несколько адресов IPv6, или и то, и другое. Адреса IPv6 должны быть заключены в квадратные скобки, например: --dhcp-host=laptop,[1234::56] Адреса IPv6 могут содержать только часть идентификатора хоста: --dhcp-host=laptop,[::56] в этом случае они действуют как подстановочные знаки в сконструированных диапазонах DHCP со вставленной соответствующей сетевой частью. Для IPv6 адрес может включать длину префикса: --dhcp-host=laptop,[1234:50/126], которая (в данном случае) определяет четыре адреса, от 1234::50 до 1234::53. Это (возможность указать несколько адресов) полезно, когда хост представляет либо постоянное имя, либо аппаратный идентификатор, но различные DUID, поскольку это позволяет dnsmasq соблюдать статическое распределение адресов, но назначать разные адреса для каждого DUID. Это обычно происходит при сетевой загрузке цепочки, поскольку каждый этап цепочки по очереди выделяет адрес.

Обратите внимание, что в IPv6 DHCP аппаратный адрес может быть недоступен, хотя обычно он доступен для клиентов, подключенных напрямую, или клиентов, использующих DHCP-ретрансляторы, поддерживающие RFC 6939.

Для DHCPv4 специальная опция id:* означает «игнорировать любой идентификатор клиента и использовать только MAC-адреса». Это полезно, когда клиент иногда представляет идентификатор клиента, но не всегда.

Если имя указано в /etc/hosts, соответствующий адрес может быть выделен для аренды DHCP, но только если также существует опция --dhcp-host, указывающая имя. В опции --dhcp-host можно указать только одно имя хоста , но возможны псевдонимы с использованием CNAME. (См. --cname ). Обратите внимание, что /etc/hosts НЕ используется, когда сторона DNS-сервера dnsmasq отключена путем установки порта DNS-сервера на ноль.

С хостом может быть связано более одного --dhcp-host (по имени, аппаратному адресу или UID). Какой из них используется (и, следовательно, какой адрес выделяется DHCP и отображается в DNS) зависит от подсети, в которой хост в последний раз получил аренду DHCP: используется --dhcp-host с адресом внутри подсети. Если в подсети находится более одного адреса, результат не определен. Следствием этого является то, что имя, связанное с хостом с использованием --dhcp-host, не отображается в DNS, пока хост не получит аренду DHCP.

Специальное ключевое слово "ignore" сообщает dnsmasq никогда не предлагать аренду DHCP машине. Машина может быть указана по аппаратному адресу, идентификатору клиента или имени хоста, например --dhcp-host=00:20:e0:3b:13:af,ignore Это полезно, когда в сети есть другой DHCP-сервер, который должен использоваться некоторыми машинами.

Конструкция set:<tag> устанавливает тег всякий раз, когда используется эта директива --dhcp-host . Это можно использовать для выборочной отправки параметров DHCP только для этого хоста. В директиве --dhcp-host можно установить более одного тега (но не в других местах, где разрешено "set:<tag>"). Когда хост соответствует любой директиве --dhcp-host (или той, которая подразумевается в /etc/ethers), то устанавливается специальный тег "known". Это позволяет настроить dnsmasq на игнорирование запросов от неизвестных машин с помощью --dhcp-ignore=tag:!known Если хост соответствует только директиве --dhcp-host , которую нельзя использовать, поскольку она указывает адрес в другой подсети, то устанавливается тег "known-othernet".

Конструкция tag:<tag> фильтрует, какие директивы dhcp-host используются; можно указать более одной, в этом случае запрос должен соответствовать всем из них. Директивы с тегами используются в приоритетном порядке по сравнению с непомеченными. Обратите внимание, что один из <hwaddr>, <client_id> или <hostname> все еще необходимо указать (может быть подстановочным знаком).

Адреса Ethernet (но не идентификаторы клиентов) могут иметь подстановочные байты, например, --dhcp-host=00:20:e0:3b:13:*,ignore заставит dnsmasq игнорировать диапазон аппаратных адресов. Обратите внимание, что "*" необходимо экранировать или заключать в кавычки в командной строке, но не в файле конфигурации.

Аппаратные адреса обычно соответствуют любому типу сети (ARP), но их можно ограничить одним типом ARP, указав перед ними тип ARP (в шестнадцатеричном формате) и «-». Таким образом, --dhcp-host=06-00:20:e0:3b:13:af,1.2.3.4 будет соответствовать только аппаратному адресу Token-Ring, поскольку тип ARP-адреса для Token Ring — 6.

В качестве особого случая в DHCPv4 можно включить более одного аппаратного адреса. Например: --dhcp-host=11:22:33:44:55:66,12:34:56:78:90:12,192.168.0.2 Это позволяет связать IP-адрес с несколькими аппаратными адресами и дает dnsmasq разрешение отказаться от аренды DHCP одному из аппаратных адресов, когда другой запрашивает аренду. Помните, что это опасно, это будет работать надежно только в том случае, если в любой момент времени активен только один из аппаратных адресов, и у dnsmasq нет возможности принудительно это сделать. Например, полезно выделить стабильный IP-адрес ноутбуку, который имеет как проводной, так и беспроводной интерфейсы.

--dhcp-hostsfile=<path> / --dhcp-хостфайл=<путь>
Прочитать информацию о хосте DHCP из указанного файла. Если указан каталог, то прочитать все файлы, содержащиеся в этом каталоге, в алфавитном порядке. Файл содержит информацию об одном хосте на строку. Формат строки такой же, как текст справа от '=' в --dhcp-host . Преимущество хранения информации о хосте DHCP в этом файле заключается в том, что ее можно изменить без перезапуска dnsmasq: файл будет перечитан, когда dnsmasq получит SIGHUP.

--dhcp-optsfile=<path> / --dhcp-optsфайл=<путь>
Прочитать информацию о параметрах DHCP из указанного файла. Если указан каталог, то прочитать все файлы, содержащиеся в этом каталоге, в алфавитном порядке. Преимущество использования этого параметра такое же, как и для --dhcp-hostsfile: файл --dhcp-optsfile будет перечитан, когда dnsmasq получит SIGHUP. Обратите внимание, что можно закодировать информацию во флаге --dhcp-boot как параметры DHCP, используя имена параметров bootfile-name, server-ip-address и tftp-server. Это позволяет включить их в файл --dhcp-optsfile.

--dhcp-hostsdir=<path> / --dhcp-хостпуть=<путь>
Это эквивалентно --dhcp-hostsfile, за исключением следующего. Путь ДОЛЖЕН быть каталогом, а не отдельным файлом. Измененные или новые файлы в каталоге считываются автоматически, без необходимости отправки SIGHUP. Если файл удален или изменен после того, как он был прочитан dnsmasq, то содержащаяся в нем запись хоста останется до тех пор, пока dnsmasq не получит SIGHUP или не будет перезапущен; т. е. записи хоста добавляются только динамически. Порядок, в котором считываются файлы в каталоге, не определен.

--dhcp-optsdir=<path> / --dhcp-optsпуть=<путь>
Это эквивалентно --dhcp-optsfile с отличиями, указанными для --dhcp-hostsdir .


-Z, --read-ethers / -Z, --читать-эфиры
Прочитайте /etc/ethers для получения информации о хостах для DHCP-сервера. Формат /etc/ethers представляет собой аппаратный адрес, за которым следует либо имя хоста, либо IP-адрес, разделенный точками. При чтении dnsmasq эти строки имеют точно такой же эффект, как и параметры --dhcp-host , содержащие ту же информацию. /etc/ethers перечитывается, когда dnsmasq получает SIGHUP. Адреса IPv6 НЕ считываются из /etc/ethers.

-O, --dhcp-option=[tag:<tag>,[tag:<tag>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<vendor-class>],][<opt>|option:<opt-name>|option6:<opt>|option6:<opt-name>],[<value>[,<value>]]
-O, --dhcp-опции=[тег:<тег>,[тег:<тег>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<класс-вендора>],][<opt>|option:<имя-опции>|option6:<opt>|option6:<имя-опции>],[<значение>[,<значение>]]
Укажите другие или дополнительные параметры для клиентов DHCP. По умолчанию dnsmasq отправляет некоторые стандартные параметры клиентам DHCP, маска сети и широковещательный адрес устанавливаются такими же, как у хоста, на котором запущен dnsmasq, а DNS-сервер и маршрут по умолчанию устанавливаются на адрес машины, на которой запущен dnsmasq. (Эквивалентные правила применяются для IPv6.) Если был задан параметр имени домена, он отправляется. Эта конфигурация позволяет переопределить эти значения по умолчанию или указать другие параметры. Параметр, который должен быть отправлен, может быть указан как десятичное число или как "option:<option-name>" Номера параметров указаны в RFC2132 и последующих RFC. Набор имен параметров, известных dnsmasq, можно обнаружить, запустив "dnsmasq --help dhcp". Например, чтобы установить маршрут по умолчанию на 192.168.4.4, выполните --dhcp-option=3,192.168.4.4 или --dhcp-option = option:router, 192.168.4.4 , а чтобы установить адрес сервера времени на 192.168.0.4, выполните --dhcp-option = 42,192.168.0.4 или --dhcp-option = option:ntp-server, 192.168.0.4 Специальный адрес 0.0.0.0 означает «адрес машины, на которой запущен dnsmasq».
Параметр без данных является допустимым и включает только параметр без данных. (В настоящее время для DHCPv4 определен только один параметр с полем данных нулевой длины, 80:rapid commit, поэтому эта функция не очень полезна на практике). Параметр, для которого dnsmasq обычно предоставляет значения по умолчанию, можно опустить, определив параметр без данных. Это маска сети, широковещательная рассылка, маршрутизатор, DNS-сервер, доменное имя и имя хоста. Таким образом, для DHCPv4 --dhcp-option = option:router приведет к тому, что параметр маршрутизатора не будет отправлен, а не будет отправлен параметр по умолчанию хоста, на котором запущен dnsmasq. Для DHCPv6 то же самое относится к параметрам DNS-сервер и время обновления.

Допустимые типы данных: разделенные запятыми четырехточечные адреса IPv4, заключенные в []-обернутые адреса IPv6, десятичное число, разделенные двоеточием шестнадцатеричные цифры и текстовая строка. Если указаны необязательные теги, то эта опция отправляется только при совпадении всех тегов.

Специальная обработка выполняется для текстового аргумента для опции 119 в соответствии с RFC 3397. Текстовые или разделенные точками IP-адреса в качестве аргументов опции 120 обрабатываются в соответствии с RFC 3361. Разделенные точками IP-адреса, за которыми следует косая черта и размер маски сети, кодируются, как описано в RFC 3442.

Параметры IPv6 указываются с помощью ключевого слова option6:, за которым следует номер параметра или имя параметра. Пространство имен параметров IPv6 не пересекается с пространством имен параметров IPv4. Адреса IPv6 в параметрах должны быть заключены в квадратные скобки, например: --dhcp-option=option6:ntp-server,[1234::56] Для IPv6 [::] означает «глобальный адрес машины, на которой запущен dnsmasq», тогда как [fd00::] заменяется на ULA, если он существует, а [fe80::] на адрес локальной ссылки.

Будьте осторожны: не выполняется проверка того, что отправляется правильный тип данных для номера опции, вполне возможно убедить dnsmasq сгенерировать незаконные пакеты DHCP с помощью неразумного использования этого флага. Если значение является десятичным числом, dnsmasq должен определить, насколько велик элемент данных. Он делает это, проверяя номер опции и/или значение, но может быть переопределен путем добавления флага из одной буквы следующим образом: b = один байт, s = два байта, i = четыре байта. Это в основном полезно с инкапсулированными опциями класса поставщика (см. ниже), где dnsmasq не может определить размер данных из номера опции. Данные опции, которые состоят исключительно из точек и цифр, будут интерпретироваться dnsmasq как IP-адрес и вставляться в опцию как таковые. Чтобы принудительно задать буквальную строку, используйте кавычки. Например, при использовании опции 66 для отправки буквального IP-адреса в качестве имени сервера TFTP необходимо указать --dhcp-option=66,"1.2.3.4"

Инкапсулированные параметры Vendor-class также могут быть указаны (только IPv4) с помощью --dhcp-option : например, --dhcp-option=vendor:PXEClient,1,0.0.0.0 отправляет инкапсулированный параметр класса поставщика "mftp-address=0.0.0.0" любому клиенту, чей Vendor-class совпадает с "PXEClient". Соответствие класса поставщика основано на подстроке (подробнее см. в --dhcp-vendorclass ). Если параметр Vendor-class (номер 60) отправляется dnsmasq, то он используется для выбора инкапсулированных параметров в приоритете перед любыми, отправленными клиентом. Можно полностью опустить параметр vendorclass; --dhcp-option=vendor:,1,0.0.0.0, в этом случае инкапсулированный параметр всегда отправляется.

Параметры могут быть инкапсулированы (только IPv4) в другие параметры: например, --dhcp-option=encap:175, 190, iscsi-client0 отправит параметр 175, внутри которого находится параметр 190. Если указано несколько параметров, инкапсулированных с одним и тем же номером параметра, то они будут правильно объединены в один инкапсулированный параметр. encap: и vendor: не могут быть оба установлены в одном параметре --dhcp-option .

Последний вариант инкапсулированных опций — «Vendor-Identifying Vendor Options», как указано в RFC3925. Они обозначаются следующим образом: --dhcp-option=vi-encap:2, 10, text Число в разделе vi-encap: — это номер предприятия IANA, используемый для идентификации этой опции. Эта форма инкапсуляции поддерживается в IPv6.
Адрес 0.0.0.0 не обрабатывается специально в инкапсулированных опциях.

--dhcp-option-force=[tag:<tag>,[tag:<tag>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<vendor-class>],]<opt>,[<value>[,<value>]]
--dhcp-опции-принудительно=[тег:<тег>,[тег:<тег>,]][encap:<opt>,][vi-encap:<enterprise>,][vendor:[<класс-вендора>],]<opt>,[<значение>[,<значение>]]
Это работает точно так же, как --dhcp-option, за исключением того, что опция всегда будет отправлена, даже если клиент не запрашивает ее в списке запроса параметров. Иногда это необходимо, например, при отправке опций в PXELinux.

--dhcp-no-override / --dhcp-без переопределения
(Только для IPv4) Отключить повторное использование полей DHCP servername и filename в качестве дополнительного пространства опций. Если это возможно, dnsmasq перемещает информацию о сервере загрузки и имени файла (из --dhcp-boot ) из их выделенных полей в параметры DHCP. Это освобождает дополнительное пространство в пакете DHCP для параметров, но может, в редких случаях, сбивать с толку старых или сломанных клиентов. Этот флаг заставляет вести себя «просто и безопасно», чтобы избежать проблем в таком случае.

--dhcp-relay=<local address>[,<server address>[#<server port>]][,<interface]
--dhcp-ретранслятор=<локальный адрес>[,<адрес сервера>[#<порт сервера>]][,<интерфейс]
Настройте dnsmasq для выполнения DHCP-ретрансляции. Локальный адрес — это адрес, выделенный интерфейсу на хосте, на котором запущен dnsmasq. Все DHCP-запросы, поступающие на этот интерфейс, будут ретранслироваться на удаленный DHCP-сервер по адресу сервера. Можно ретранслировать с одного локального адреса на несколько удаленных серверов, используя несколько конфигураций --dhcp-relay с тем же локальным адресом и разными адресами серверов. Адрес сервера должен быть буквальным IP-адресом, а не доменным именем. Если адрес сервера не указан, запрос будет переслан по широковещательной рассылке (IPv4) или многоадресной рассылке (IPv6). В этом случае интерфейс должен быть указан и не должен быть подстановочным знаком. Адрес сервера может указывать нестандартный порт для ретрансляции. Если это используется, то, скорее всего, также следует установить --dhcp-proxy , в противном случае части сеанса DHCP, которые не проходят через ретрансляцию, будут доставлены на неправильный порт.
Контроль доступа для клиентов DHCP имеет те же правила, что и для сервера DHCP, см. --interface , --except-interface и т. д. Необязательное имя интерфейса в конфигурации --dhcp-relay имеет другую функцию: оно контролирует, на каком интерфейсе будут приниматься ответы DHCP от сервера. Это предназначено для конфигураций с тремя интерфейсами: один из которых ретранслируется, второй подключается к серверу DHCP и третья ненадежная сеть, обычно более широкий Интернет. Это исключает возможность получения поддельных ответов через этот третий интерфейс.

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

Поддерживается как DHCPv4, так и DHCPv6-ретрансляция. Невозможно ретранслировать DHCPv4 на сервер DHCPv6 или наоборот.

Функция DHCP-ретрансляции для IPv6 включает возможность отслеживания префикса-делегирования из ретранслируемых DHCP-транзакций. Подробности см. в --dhcp-script .

-U, --dhcp-vendorclass=set:<tag>,[enterprise:<IANA-enterprise number>,]<vendor-class>
-U, --dhcp-класс-поставщика=установить:<тег>,[предприятие:<номер-предприятия-IANA>,]<класс-предприятий>
Сопоставьте строку класса поставщика с тегом. Большинство клиентов DHCP предоставляют «класс поставщика», который представляет, в некотором смысле, тип хоста. Эта опция сопоставляет классы поставщиков с тегами, так что параметры DHCP могут выборочно доставляться различным классам хостов. Например, --dhcp-vendorclass=set:printers,Hewlett-Packard JetDirect позволит устанавливать параметры только для принтеров HP, например: --dhcp-option=tag:printers,3,192.168.4.4 Строка класса поставщика — это подстрока, сопоставленная с классом поставщика, предоставленным клиентом, для обеспечения нечеткого соответствия. Префикс set: необязателен, но разрешен для обеспечения согласованности.
Обратите внимание, что только в IPv6 классы вендоров имеют пространство имен с выделенным IANA номером предприятия. Это указывается ключевым словом enterprise: и указывает, что следует искать только классы вендоров, соответствующие указанному номеру.

-j, --dhcp-userclass=set:<tag>,<user-class> / -j, --dhcp-класс-пользователя=установить:<тег>,<класс-пользователя>
Сопоставьте строку класса пользователя с тегом (с подстрокой соответствия, например, классы вендоров). Большинство клиентов DHCP предоставляют «класс пользователя», который можно настраивать. Эта опция сопоставляет классы пользователей с тегами, так что параметры DHCP могут выборочно доставляться различным классам хостов. Например, можно использовать это для установки другого сервера печати для хостов в классе «accounts», чем для хостов в классе «engineering».

-4, --dhcp-mac=set:<tag>,<MAC address> / -4, --dhcp-мак=установить:<тег>,<MAC-адрес>
Сопоставление MAC-адреса с тегом. MAC-адрес может включать подстановочные знаки. Например, --dhcp-mac=set:3com,01:34:23:*:*:* установит тег "3com" для любого хоста, MAC-адрес которого соответствует шаблону.

--dhcp-circuitid=set:<tag>,<circuit-id>, --dhcp-remoteid=set:<tag>,<remote-id>
--dhcp-канала-ид=установить:<тег>,<идентификатор-цепи>, --dhcp-удаленный-ид=установить:<тег>,<идентификатор-удалённого-устройства>
Сопоставьте параметры агента-ретранслятора RFC3046 с тегами. Эти данные могут быть предоставлены агентами-ретрансляторами DHCP. Circuit-id или remote-id обычно задаются в виде шестнадцатеричного числа, разделенного двоеточием, но также допускается простая строка. Если между идентификатором цепи или агента и идентификатором, предоставленным агентом-ретранслятором, достигается точное совпадение, устанавливается тег.
--dhcp-remoteid (но не --dhcp-circuitid ) поддерживается в IPv6.

--dhcp-subscrid=set:<tag>,<subscriber-id> / --dhcp-подписка-ид=установить:<тег>,<идентификатор-подписчика>
(IPv4 и IPv6) Сопоставьте параметры агента ретрансляции идентификатора подписчика RFC3993 с тегами.

--dhcp-proxy[=<ip addr>]...... / --dhcp-прокси[=<ip-адрес>]......
(Только IPv4) Обычный агент ретрансляции DHCP используется только для пересылки начальных частей взаимодействия DHCP на сервер DHCP. После настройки клиента он напрямую взаимодействует с сервером. Это нежелательно, если агент ретрансляции добавляет дополнительную информацию в пакеты DHCP, например, ту, что используется --dhcp-circuitid и --dhcp-remoteid. Полная реализация ретрансляции может использовать параметр RFC 5107 serverid-override, чтобы заставить сервер DHCP использовать ретранслятор в качестве полного прокси-сервера, через который будут проходить все пакеты. Этот флаг предоставляет альтернативный метод выполнения того же действия для ретрансляторов, которые не поддерживают RFC 5107. Если задан отдельно, он манипулирует идентификатором сервера для всех взаимодействий через ретрансляторы. Если указан список IP-адресов, то будут затронуты только взаимодействия через ретрансляторы по этим адресам.

--dhcp-match=set:<tag>,<option number>|option:<option name>|vi-encap:<enterprise>[,<value>]
--dhcp-соответствие=установить:<тег>,<номер опции>|опции:<имя опции>|Vi-инкапсуляция:<предприятие>[,<значение>]
Без значения установите тег, если клиент отправляет параметр DHCP с указанным номером или именем. Если задано значение, установите тег, только если параметр отправлен и соответствует значению. Значение может иметь вид "01:ff:*:02", в этом случае значение должно совпадать (кроме подстановочных знаков), но отправленный параметр может иметь несовпадающие данные после конца значения. Значение также может иметь тот же вид, что и в --dhcp-option , в этом случае отправленный параметр рассматривается как массив, и один элемент должен совпадать, поэтому --dhcp-match=set:efi-ia32,option:client-arch,6 установит тег "efi-ia32", если число 6 появляется в списке архитектур, отправленных клиентом в параметре 93. (Подробнее см. в RFC 4578.) Если значение является строкой, используется сопоставление подстрок.
Специальная форма с vi-encap:<номер предприятия> сопоставляется с классами поставщиков, идентифицирующими поставщика для указанного предприятия. Пожалуйста, см. RFC 3925 для получения более подробной информации об этих редких и интересных зверях.

--dhcp-name-match=set:<tag>,<name>[*][/b] / --dhcp-имя-соответствия=установить:<тег>,<имя>[*]
Установите тег, если заданное имя предоставлено DHCP-клиентом. Может быть один завершающий подстановочный знак *, который имеет обычное значение. В сочетании с dhcp-ignore или dhcp-ignore-names это дает возможность игнорировать определенных клиентов по имени или запрещать клиенту заявлять определенные имена хостов.

--tag-if=set:<tag>[,set:<tag>[,tag:<tag>[,tag:<tag>]]] / --тег-если=установить:<тег>[,установить:<тег>[,установить:<тег>[,установить:<тег>]]]
Выполнять логические операции с тегами. Любой тег, появляющийся как set:<tag>, устанавливается, если установлены все теги, появляющиеся как tag:<tag> (или не установлены, если используется tag:!<tag>). Если тег tag:<tag> не появляется, теги set:<tag> устанавливаются безусловно. Может появляться любое количество форм set: и tag: в любом порядке. Строки --tag-if выполняются по порядку, поэтому если тег в tag:<tag> является тегом, установленным другим --tag-if, строка, которая устанавливает тег, должна предшествовать той, которая его проверяет.
В качестве расширения предложения tag:<tag> поддерживают ограниченное соответствие подстановочным знакам, аналогичное соответствию в директиве --interface . Это позволяет, например, использовать --tag-if=set:ppp,tag:ppp* для установки тега 'ppp' для всех запросов, полученных на любом соответствующем интерфейсе (ppp0, ppp1 и т. д.). Это можно использовать в сочетании с форматом tag:!<tag>, что означает, что ни один тег, соответствующий подстановочному знаку, не может быть установлен.

-J, --dhcp-ignore=tag:<tag>[,tag:<tag>] / -J, --dhcp-игнорировать=тег:<тег>[,тег:<тег>]
Если все указанные теги присутствуют в наборе тегов, игнорируйте хост и не выделяйте ему аренду DHCP.

--dhcp-ignore-names[=tag:<tag>[,tag:<tag>]] / --dhcp-игнорировать-имя[=тег:<тег>[,тег:<тег>]]
Когда все указанные теги появляются в наборе тегов, игнорировать любое имя хоста, предоставленное хостом. Обратите внимание, что, в отличие от --dhcp-ignore , допустимо не предоставлять теги, в этом случае имена хостов, предоставленные DHCP-клиентом, всегда игнорируются, а хосты DHCP добавляются в DNS, используя только конфигурацию --dhcp-host в dnsmasq и содержимое /etc/hosts и /etc/ethers.

--dhcp-generate-names=tag:<tag>[,tag:<tag>] / --dhcp-генерировать-имя=тег:<тег>[,тег:<тег>]
(Только IPv4) Сгенерируйте имя для клиентов DHCP, у которых его нет, используя MAC-адрес, выраженный в шестнадцатеричном формате и разделенный дефисами. Обратите внимание, что если хост предоставляет имя, оно будет использоваться по приоритету, если только не установлен параметр --dhcp-ignore-names .

--dhcp-broadcast[=tag:<tag>[,tag:<tag>]] / --dhcp-широковещательный[=тег:<тег>[,тег:<тег>]]
(Только IPv4) Когда все заданные теги появляются в наборе тегов, всегда используйте широковещательную рассылку для связи с хостом, когда он не настроен. Допустимо не предоставлять теги, в этом случае это безусловно. Большинство клиентов DHCP, которым нужны широковещательные ответы, устанавливают флаг в своих запросах, чтобы это происходило автоматически, некоторые старые клиенты BOOTP этого не делают.

-M, --dhcp-boot=[tag:<tag>,]<filename>,[<servername>[,<server address>|<tftp_servername>]]
-M, --dhcp-загрузочный=[тег:<тег>,]<имя файла>,[<имя сервера>[,<адрес сервера>|<имя_tftp_сервера>]]
(Только для IPv4) Установите параметры BOOTP, которые будут возвращаться DHCP-сервером. Имя и адрес сервера являются необязательными: если они не указаны, имя остается пустым, а адрес устанавливается на адрес машины, на которой запущен dnsmasq. Если dnsmasq предоставляет службу TFTP (см. --enable-tftp ), то для включения сетевой загрузки здесь требуется только имя файла. Если указаны необязательные теги, они должны совпадать для отправки этой конфигурации. Вместо IP-адреса адрес TFTP-сервера может быть указан как доменное имя, которое ищется в /etc/hosts. Это имя может быть связано в /etc/hosts с несколькими IP-адресами, которые используются по кругу. Эта возможность может использоваться для балансировки нагрузки tftp между набором серверов.

--dhcp-sequential-ip / --dhcp-последовательный-ip
Dnsmasq разработан для выбора IP-адресов для клиентов DHCP с использованием хэша MAC-адреса клиента. Обычно это позволяет адресу клиента оставаться стабильным в долгосрочной перспективе, даже если клиент иногда допускает истечение срока аренды DHCP. В этом режиме по умолчанию IP-адреса распределяются псевдослучайным образом по всему доступному диапазону адресов. Иногда бывают обстоятельства (обычно при развертывании сервера), когда удобнее выделять IP-адреса последовательно, начиная с наименьшего доступного адреса, и установка этого флага включает этот режим. Обратите внимание, что в последовательном режиме клиенты, которые допускают истечение срока аренды, с гораздо большей вероятностью будут перемещать IP-адрес; по этой причине его не следует использовать в целом.

--dhcp-ignore-clid / --dhcp-игнорировать-clid
Dnsmasq считывает параметр «идентификатор клиента» (RFC 2131), отправленный клиентами (если доступен) для идентификации клиентов. Это позволяет обслуживать один и тот же IP-адрес для хоста с использованием нескольких интерфейсов. Используйте этот параметр, чтобы отключить чтение «идентификатора клиента», т. е. всегда идентифицировать хост с использованием MAC-адреса.

--pxe-service=[tag:<tag>,]<CSA>,<menu text>[,<basename>|<bootservicetype>][,<server address>|<server_name>]
--pxe-сервис=[тег:<тег>,]<CSA>,<текст меню>[,<базовое имя>|<тип_загрузочной_службы>][,<адрес_сервера>|<имя_сервера>]
Большинство применений PXE boot-ROMS просто позволяют системе PXE получить IP-адрес, а затем загрузить файл, указанный параметром --dhcp-boot , и выполнить его. Однако система PXE способна выполнять более сложные функции при поддержке подходящего DHCP-сервера.
Это указывает параметр загрузки, который может отображаться в меню загрузки PXE. <CSA> — тип клиентской системы, в меню будут отображаться только службы правильного типа. Известные типы: x86PC, PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, x86-64_EFI, Xscale_EFI, BC_EFI, ARM32_EFI и ARM64_EFI; для других типов может использоваться целое число. Параметр после текста меню может быть именем файла, в этом случае dnsmasq действует как сервер загрузки и направляет клиенту PXE загрузку файла по TFTP, либо с себя ( для этого необходимо установить --enable-tftp ), либо с другого сервера TFTP, если указан конечный адрес/имя сервера. Обратите внимание, что суффикс "layer" (обычно ".0") предоставляется PXE и ​​не должен добавляться к базовому имени. В качестве альтернативы базовое имя может быть именем файла с суффиксом, в этом случае суффикс слоя не добавляется. Если указан целочисленный тип службы загрузки, а не базовое имя, то клиент PXE будет искать подходящую службу загрузки для этого типа в сети. Этот поиск может быть выполнен широковещательным способом или напрямую на сервере, если указан его IP-адрес/имя. Если не указан тип службы загрузки или имя файла (или указан тип службы загрузки 0), то запись меню прервет процедуру сетевой загрузки и продолжит загрузку с локального носителя. Адрес сервера может быть указан как доменное имя, которое ищется в /etc/hosts. Это имя может быть связано в /etc/hosts с несколькими IP-адресами, которые используются по кругу.

--pxe-prompt=[tag:<tag>,]<prompt>[,<timeout>] / --pxe-prompt=[тег:<тег>,]<приглашение>[,<время ожидания>]
Настройка этого параметра обеспечивает отображение подсказки после загрузки PXE. Если задан тайм-аут, то по истечении тайм-аута без ввода с клавиатуры автоматически будет выполнен первый доступный пункт меню. Если тайм-аут равен нулю, то первый доступный пункт меню будет выполнен немедленно. Если --pxe-prompt опущен, система будет ожидать ввода данных пользователем, если в меню несколько пунктов, но загрузится немедленно, если есть только один. Подробности пунктов меню см. в --pxe-service .

Dnsmasq поддерживает PXE "proxy-DHCP", в этом случае другой DHCP-сервер в сети отвечает за выделение IP-адресов, а dnsmasq просто предоставляет информацию, указанную в --pxe-prompt и --pxe-service, чтобы разрешить сетевую загрузку. Этот режим включается с помощью ключевого слова proxy в --dhcp-range.
количество слов: 1614
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 866
Стаж: 5 лет 9 месяцев
Откуда: Вологодская область
Поблагодарили: 41 раз
Контактная информация:

dnsmasq

Сообщение Артём Мамзиков »

--dhcp-pxe-vendor=<vendor>[,...] / --dhcp-pxe-поставщик=<поставщик>[,...]
Согласно спецификациям UEFI и PXE, пакеты DHCP между клиентами PXE и ​​прокси-серверами PXE должны иметь PXEClient в поле класса поставщика. Однако прошивка компьютеров от нескольких поставщиков настроена на перенос другого идентификатора в это поле. Эта опция используется для того, чтобы считать такие идентификаторы допустимыми для идентификации клиентов PXE. Например,
--dhcp-pxe-vendor=PXEClient,HW-Client / --dhcp-pxe-поставщик=PXEClient,HW-клиент

позволит dnsmasq также предоставлять прокси-сервис PXE тем PXE-клиентам, у которых в качестве идентификатора указан HW-Client .

-X, --dhcp-lease-max=<number> / -X, --dhcp-аренда-макс=<число>
Ограничивает dnsmasq указанным максимальным числом аренд DHCP. Значение по умолчанию — 1000. Это ограничение необходимо для предотвращения DoS-атак со стороны хостов, которые создают тысячи аренд и используют большой объем памяти в процессе dnsmasq.

-K, --dhcp-authoritative / -K, --dhcp-авторитетный
Следует устанавливать, когда dnsmasq определенно является единственным DHCP-сервером в сети. Для DHCPv4 он изменяет поведение со строгого соответствия RFC, так что запросы DHCP на неизвестные аренды от неизвестных хостов не игнорируются. Это позволяет новым хостам получать аренду без утомительного тайм-аута при любых обстоятельствах. Это также позволяет dnsmasq перестраивать свою базу данных аренды без необходимости каждого клиента повторно получать аренду, если база данных потеряна. Для DHCPv6 он устанавливает приоритет в ответах на 255 (максимум) вместо 0 (минимум).

--dhcp-rapid-commit / --dhcp-быстрая фиксация
Включить DHCPv4 Rapid Commit Option, указанный в RFC 4039. При включении dnsmasq будет отвечать на сообщение DHCPDISCOVER, включающее Rapid Commit option, DHCPACK, включающее Rapid Commit option и полностью подтвержденный адрес и информацию о конфигурации. Следует включать только в том случае, если сервер является единственным сервером для подсети или присутствует несколько серверов, и каждый из них подтверждает привязку для всех клиентов.

--dhcp-alternate-port[=<server port>[,<client port>]] / --dhcp-альтернативный-порт[=<порт сервера>[,<порт клиента>]]
(Только IPv4) Измените порты, используемые для DHCP, со значения по умолчанию. Если эта опция задана отдельно, без аргументов, она изменяет порты, используемые для DHCP, с 67 и 68 на 1067 и 1068. Если задан один аргумент, этот номер порта используется для сервера, а номер порта плюс один используется для клиента. Наконец, два номера портов позволяют произвольно указывать как порты сервера, так и порты клиента для DHCP.

-3, --bootp-dynamic[=<network-id>[,<network-id>]] / -3, --загрузка-p-динамическая[=<сетевой-идентификатор>[,<сетевой-идентификатор>]]
(Только для IPv4) Включить динамическое распределение IP-адресов для клиентов BOOTP. Используйте это с осторожностью, поскольку каждый адрес, выделенный клиенту BOOTP, арендуется навсегда и, следовательно, становится навсегда недоступным для повторного использования другими хостами. Если это указано без тегов, то это безусловно включает динамическое распределение. С тегами, только когда все теги установлены. Это может повторяться с различными наборами тегов.

-5, --no-ping / -5, --без-пинга
(Только для IPv4) По умолчанию DHCP-сервер попытается убедиться, что адрес не используется, прежде чем выделять его хосту. Он делает это, отправляя эхо-запрос ICMP (он же «ping») на указанный адрес. Если он получает ответ, то адрес, должно быть, уже используется, и пробуется другой. Этот флаг отключает эту проверку. Используйте с осторожностью.

--log-dhcp / --лог-dhcp
Дополнительное ведение журнала для DHCP: регистрация всех параметров, отправленных DHCP-клиентам, и тегов, используемых для их определения.

--quiet-dhcp, --quiet-dhcp6, --quiet-ra, --quiet-tftp / --тихий-dhcp, -тихий-dhcp6, -тихий-ra, -тихий-tftp
Подавляет ведение журнала рутинной работы этих протоколов. Ошибки и проблемы по-прежнему будут регистрироваться. --quiet-tftp не считает, что файл не найден, ошибкой. --quiet-dhcp и quiet-dhcp6 переопределяются --log-dhcp .

-l, --dhcp-leasefile=<path> / -l, --dhcp-файл-аренды=<путь>
Используйте указанный файл для хранения информации об аренде DHCP.

--dhcp-duid=<enterprise-id>,<uid> / --dhcp-duid=<идентификатор-предприятия>,<uid>
(Только для IPv6) Укажите постоянный UID сервера, который будет использовать сервер DHCPv6. Обычно эта опция не требуется, так как dnsmasq автоматически создает DUID при первой необходимости. При указании этой опции dnsmasq получает данные, необходимые для создания DUID типа DUID-EN. Обратите внимание, что после установки DUID сохраняется в базе данных аренды, поэтому для переключения между DUID-EN и автоматически созданными DUID или наоборот необходимо повторно инициализировать базу данных аренды. Enterprise-id назначается IANA, а uid представляет собой строку шестнадцатеричных октетов, уникальную для конкретного устройства.

-6 --dhcp-script=<path> / -6 --dhcp-скрипт=<путь>
Всякий раз, когда создается новая аренда DHCP, или уничтожается старая, или завершается передача файла TFTP, запускается исполняемый файл, указанный этой опцией. <path> должен быть абсолютным именем пути, поиск PATH не выполняется. Аргументами процесса являются "add", "old" или "del", MAC-адрес хоста (или DUID для IPv6), IP-адрес и имя хоста, если известно. "add" означает, что аренда была создана, "del" означает, что она была уничтожена, "old" является уведомлением о существующей аренде при запуске dnsmasq или изменением MAC-адреса или имени хоста существующей аренды (а также продолжительности или срока действия аренды и идентификатора клиента, если установлен --leasefile-ro , и срока действия аренды, если установлен --script-on-renewal ). Если MAC-адрес относится к типу сети, отличному от Ethernet, то к нему будет добавлен тип сети, например, "06-01:23:45:67:89:ab" для Token Ring. Процесс выполняется как root (предполагается, что dnsmasq изначально был запущен как root), даже если dnsmasq настроен на изменение UID на непривилегированного пользователя.
Окружение наследуется от вызывающего dnsmasq, с добавлением некоторых или всех следующих переменных

Для IPv4 и IPv6:

DNSMASQ_DOMAIN — если известно полное доменное имя хоста, то устанавливается часть домена. (Обратите внимание, что имя хоста, переданное скрипту в качестве аргумента, никогда не является полностью определенным.)

Если клиент предоставляет имя хоста, DNSMASQ_SUPPLIED_HOSTNAME

Если клиент предоставляет классы пользователей, DNSMASQ_USER_CLASS0..DNSMASQ_USER_CLASSn

Если dnsmasq был скомпилирован с HAVE_BROKEN_RTC, то длительность аренды (в секундах) сохраняется в DNSMASQ_LEASE_LENGTH, в противном случае время истечения срока аренды сохраняется в DNSMASQ_LEASE_EXPIRES. Количество секунд до истечения срока аренды всегда сохраняется в DNSMASQ_TIME_REMAINING.

DNSMASQ_DATA_MISSING устанавливается на "1" во время "старых" событий для существующих лизингов, сгенерированных при запуске, чтобы указать, что данные, не сохраненные в постоянной базе данных лизинга, не будут присутствовать. Это включает в себя все, кроме IP-адреса, имени хоста, MAC-адреса, DUID, IAID и продолжительности лизинга или времени истечения срока действия.

Если в аренде использовалось имя хоста, которое было удалено, генерируется «старое» событие с новым состоянием аренды, т. е. без имени, а прежнее имя указывается в переменной среды DNSMASQ_OLD_HOSTNAME.

DNSMASQ_INTERFACE хранит имя интерфейса, на который поступил запрос; оно не устанавливается для «старых» действий при перезапуске dnsmasq.

DNSMASQ_RELAY_ADDRESS устанавливается, если клиент использовал DHCP-ретранслятор для связи с dnsmasq и IP-адрес ретранслятора известен.

DNSMASQ_TAGS содержит все теги, установленные во время транзакции DHCP, разделенные пробелами.

DNSMASQ_LOG_DHCP устанавливается, если действует --log-dhcp .

DNSMASQ_REQUESTED_OPTIONS — строка, содержащая десятичные значения в опции «Список запроса параметров», разделенные запятыми, если опция списка запроса параметров предоставлена ​​клиентом.

DNSMASQ_MUD_URL URL-адрес описания использования производителя, если предоставлен клиентом. (Подробности см. в RFC8520.)

Только для IPv4:

DNSMASQ_CLIENT_ID, если хост предоставил идентификатор клиента.

DNSMASQ_CIRCUIT_ID, DNSMASQ_SUBSCRIBER_ID, DNSMASQ_REMOTE_ID, если DHCP-ретранслятор-агент добавил любую из этих опций.
Если клиент предоставляет vendor-class, DNSMASQ_VENDOR_CLASS.

Только для IPv6:

Если клиент предоставляет класс поставщика, DNSMASQ_VENDOR_CLASS_ID, содержащий идентификатор предприятия IANA для класса, и DNSMASQ_VENDOR_CLASS0..DNSMASQ_VENDOR_CLASSn для данных.

DNSMASQ_SERVER_DUID, содержащий DUID сервера: он одинаков для каждого вызова скрипта.

DNSMASQ_IAID, содержащий IAID для аренды. Если аренда является временным распределением, это префикс 'T'.

DNSMASQ_MAC, содержащий MAC-адрес клиента, если он известен.

Обратите внимание, что предоставленные данные об имени хоста, классе поставщика и классе пользователя предоставляются только для действий «добавить/add» или «старых/old» действий, когда хост возобновляет существующую аренду, поскольку эти данные не хранятся в базе данных аренды dnsmasq.

Все файловые дескрипторы закрыты, за исключением stdin, который открыт для /dev/null, а также stdout и stderr, которые захватывают вывод для регистрации dnsmasq. (В режиме отладки stdio, stdout и stderr file остаются такими, какими они были унаследованы от вызывающего dnsmasq).

Скрипт не вызывается одновременно: максимум один экземпляр скрипта когда-либо запущен (dnsmasq ждет, пока экземпляр скрипта завершит работу, прежде чем запустить следующий). Изменения в базе данных аренды, требующие вызова скрипта, ставятся в очередь, ожидая выхода работающего экземпляра. Если эта очередь допускает несколько изменений состояния в одном аренде до того, как скрипт может быть запущен, то более ранние состояния отбрасываются, а текущее состояние этой аренды отражается, когда скрипт наконец запускается.

При запуске dnsmasq скрипт будет вызван для всех существующих лизингов по мере их чтения из файла лизинга. Истекшие лизинги будут вызваны с "del", а другие с "old". Когда dnsmasq получит сигнал HUP, скрипт будет вызван для существующих лизингов с событием "old".

Есть еще пять действий, которые могут появиться в качестве первого аргумента скрипта: "init", "arp-add", "arp-del", "relay-snoop" и "tftp". В будущем может быть добавлено больше, поэтому скрипты должны быть написаны так, чтобы игнорировать неизвестные действия. "init" описан ниже в --leasefile-ro

Действие «tftp» вызывается после завершения передачи файла по протоколу TFTP: аргументами являются размер файла в байтах, адрес, по которому был отправлен файл, и полное имя пути к файлу.

Действие "relay-snoop" вызывается, когда dnsmasq настроен как DHCP-ретранслятор для DHCPv6 и ретранслирует делегирование префикса клиенту. Аргументами являются имя интерфейса, к которому подключен клиент, его (локальный адрес канала) на этом интерфейсе и делегированный префикс. Этой информации достаточно для установки маршрутов к делегированному префиксу маршрутизатора. Подробнее о настройке DHCP-ретранслятора см. в --dhcp-relay .

Действия «arp-add» и «arp-del» вызываются только в том случае, если они включены с помощью параметра --script-arp. Они предоставляются с MAC-адресом и IP-адресом в качестве аргументов. «arp-add» указывает на поступление новой записи в таблицу ARP или соседей, а «arp-del» указывает на удаление той же записи.

--dhcp-luascript=<path> / --dhcp-luaскрипт=<путь>
Укажите скрипт, написанный на Lua, который будет запускаться при создании, уничтожении или изменении лизингов. Для использования этой опции dnsmasq должен быть скомпилирован с правильной поддержкой. Интерпретатор Lua инициализируется один раз при запуске dnsmasq, чтобы глобальные переменные сохранялись между событиями лизинга . Код Lua должен определять функцию лизинга lease и может предоставлять функции init и shutdown , которые вызываются без аргументов при запуске и завершении работы dnsmasq. Он также может предоставлять функцию tftp .

Функция аренды lease получает информацию, подробно описанную в --dhcp-script. Она получает два аргумента, во-первых, действие, которое является строкой, содержащей "add", "old" или "del", и, во-вторых, таблицу пар значений тегов. Теги в основном соответствуют переменным среды, подробно описанным выше, например, тег "domain" содержит те же данные, что и переменная среды DNSMASQ_DOMAIN. Есть несколько дополнительных тегов, которые содержат данные, предоставленные в качестве аргументов для --dhcp-script. Это mac_address, ip_address и hostname для IPv4, а также client_duid, ip_address и hostname для IPv6.

Функция tftp вызывается так же, как и функция аренды, а таблица содержит теги destination_address, file_name и file_size.

Функции arp и arp-old вызываются только при включении параметра --script-arp и имеют таблицу, содержащую теги mac_address и client_address.

--dhcp-scriptuser / --dhcp-скрипт-пользователь
Укажите пользователя, от имени которого будет запущен скрипт изменения аренды или скрипт Lua. По умолчанию это root, но его можно изменить на другого пользователя с помощью этого флага.

--script-arp / --скрипт-arp
Включите функции «arp» и «arp-old» в параметрах --dhcp-script и --dhcp-luascript .

-9, --leasefile-ro / --9, --файл-аренды-ro
Полностью подавить использование файла базы данных аренды. Файл не будет создан, прочитан или записан. Измените способ вызова сценария изменения аренды (если он предоставлен), чтобы база данных аренды могла поддерживаться во внешнем хранилище сценарием. В дополнение к вызовам, указанным в --dhcp-script, сценарий изменения аренды вызывается один раз, при запуске dnsmasq, с единственным аргументом "init". При таком вызове сценарий должен записать сохраненное состояние базы данных аренды в формате dnsmasq leasefile в stdout и завершиться с нулевым кодом выхода. Установка этого параметра также заставляет сценарий изменения аренды вызываться при изменении идентификатора клиента, продолжительности аренды и времени истечения срока действия.

--script-on-renewal / --скрипт-при-обновлении
Вызывайте сценарий DHCP при изменении срока действия аренды, например, при ее продлении.

--bridge-interface=<interface>,<alias>[,<alias>] / --мост-интерфейс=<интерфейс>,<псевдоним>[,<псевдоним>]
Обрабатывать запросы DHCP (v4 и v6) и пакеты IPv6 Router Solicit, поступающие на любой из интерфейсов <alias>, как если бы они поступили на <interface>. Эта опция позволяет dnsmasq предоставлять услуги DHCP и RA через неадресованные и не соединенные мостом интерфейсы Ethernet, например, на вычислительном хосте OpenStack, где каждый такой интерфейс является интерфейсом TAP для виртуальной машины, или как в "старом стиле моста" на платформах BSD. В каждом <alias> можно использовать завершающий подстановочный знак '*'.
Допустимо добавлять более одного псевдонима с использованием более одной опции --bridge-interface, поскольку --bridge-interface=int1,alias1,alias2 полностью эквивалентно --bridge-interface=int1,alias1 --bridge-interface=int1,alias2

--shared-network=<interface>,<addr> / --общая сеть=<интерфейс>,<адрес>
--shared-network=<addr>,<addr> / --общая сеть=<адрес>,<адрес>
DHCP-сервер определяет, какие диапазоны DHCP можно использовать для выделения адреса DHCP-клиенту на основе сети, из которой поступает DHCP-запрос, и конфигурации IP-адреса интерфейса сервера в этой сети. Параметр shared-network расширяет доступные подсети (и, следовательно, диапазоны DHCP) за пределы подсетей, настроенных на интерфейсе прибытия.
Первый аргумент — это либо имя интерфейса, либо адрес, настроенный на локальном интерфейсе, а второй аргумент — это адрес, определяющий другую подсеть, в которой могут быть выделены адреса.

Чтобы быть полезным, должен быть подходящий диапазон DHCP, который позволяет выделять адреса в этой подсети, и этот диапазон DHCP ДОЛЖЕН включать маску сети.

Использование shared-network также требует дополнительного рассмотрения маршрутизации. Dnsmasq не имеет обычной информации, которую он использует для определения маршрута по умолчанию, поэтому опция маршрута по умолчанию (или другая маршрутизация) ДОЛЖНА быть настроена вручную. Клиент должен иметь маршрут к серверу: если используется двухадресная форма shared-network, это должен быть маршрут к первому указанному адресу. Если используется форма interface,address, должен быть маршрут ко всем адресам, настроенным на интерфейсе.

Двухадресная форма общей сети также может использоваться с DHCP-ретранслятором: первый адрес — это адрес ретранслятора, а второй, как и прежде, указывает дополнительную подсеть, из которой могут быть выделены адреса.

-s, --domain=<domain>[[,<address range>[,local]]|<interface>]
-s, --домен=<домен>[[,<диапазон адресов>[,local]]|<интерфейс>]
Указывает домены DNS для сервера DHCP. Домены могут быть предоставлены безусловно (без диапазона IP-адресов) или для ограниченных диапазонов IP-адресов. Это имеет два эффекта: во-первых, это заставляет сервер DHCP возвращать домен всем хостам, которые его запрашивают, а во-вторых, это устанавливает домен, который разрешено заявлять хостам, настроенным на DHCP. Цель состоит в том, чтобы ограничить имена хостов, чтобы ненадежный хост в локальной сети не мог рекламировать свое имя через DHCP, например, "microsoft.com", и захватывать трафик, не предназначенный для него. Если суффикс домена не указан, то любое имя хоста DHCP с доменной частью (т. е. с точкой) будет запрещено и зарегистрировано. Если суффикс указан, то имена хостов с доменной частью разрешены, при условии, что доменная часть совпадает с суффиксом. Кроме того, когда суффикс задан, то имена хостов без доменной части имеют суффикс, добавленный как необязательная часть домена. Например, в моей сети я могу задать --domain=thekelleys.org.uk и иметь машину, DHCP-имя хоста которой будет "laptop". IP-адрес этой машины доступен из dnsmasq как "laptop" и "laptop.thekelleys.org.uk". Если домен указан как "#", то домен считывается из первой директивы "search" в /etc/resolv.conf (или эквивалентной).
Диапазон адресов может быть в форме <ip address>,<ip address> или <ip address>/<netmask> или просто один <ip address>. Смотрите --dhcp-fqdn, который может изменить поведение dnsmasq с доменами.

Если диапазон адресов указан как ip-address/network-size, то может быть указан дополнительный флаг "local", который имеет эффект добавления объявлений --local для прямых и обратных DNS-запросов. Например, --domain=thekelleys.org.uk,192.168.0.0/24,local идентично --domain=thekelleys.org.uk,192.168.0.0/24 --local=/thekelleys.org.uk/ --local=/0.168.192.in-addr.arpa/

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

--dhcp-fqdn / --dhcp-полное доменное имя
В режиме по умолчанию dnsmasq вставляет неквалифицированные имена клиентов DHCP в DNS. По этой причине имена должны быть уникальными, даже если два клиента с одинаковым именем находятся в разных доменах. Если появляется второй клиент DHCP с таким же именем, как у существующего клиента, имя передается новому клиенту. Если задано --dhcp-fqdn , это поведение меняется: неквалифицированное имя больше не помещается в DNS, только квалифицированное имя. Два клиента DHCP с одинаковым именем могут оба сохранить имя, при условии, что доменная часть отличается (т. е. полностью квалифицированные имена различаются). Чтобы гарантировать, что все имена имеют доменную часть, должно быть как минимум --domain без указанного адреса, когда задано --dhcp-fqdn .


--dhcp-client-update / --dhcp-клиент-обновление
Обычно при предоставлении аренды DHCP dnsmasq устанавливает флаги в опции FQDN, чтобы сообщить клиенту не пытаться обновить DDNS с его именем и IP-адресом. Это происходит потому, что пара имя-IP автоматически добавляется в представление DNS dnsmasq. Этот флаг подавляет такое поведение, это полезно, например, чтобы разрешить клиентам Windows обновлять серверы Active Directory. Подробности см. в RFC 4702.

--enable-ra / --включить-ra
Включите функцию объявления маршрутизатора IPv6 dnsmasq. DHCPv6 не обрабатывает полную конфигурацию сети так же, как DHCPv4. Обнаружение маршрутизатора и (возможно) обнаружение префикса для создания автономного адреса обрабатываются другим протоколом. Когда используется DHCP, требуется только подмножество этого, и dnsmasq может с этим справиться, используя существующую конфигурацию DHCP для предоставления большинства данных. Когда включен RA, dnsmasq будет объявлять префикс для каждого --dhcp-range , с маршрутизатором по умолчанию в качестве соответствующего локального адреса на машине, на которой запущен dnsmasq. По умолчанию биты "managed address" установлены, а бит "use SLAAC" сброшен. Это можно изменить для отдельных подсетей с помощью ключевых слов режима, описанных в --dhcp-range. Параметры DNS RFC6106 включены в объявления. По умолчанию соответствующий локальный адрес машины, на которой запущен dnsmasq, отправляется как рекурсивный DNS-сервер. Если указаны, то параметры DHCPv6 dns-server и domain-search используются для DNS-сервера (RDNSS) и списка поиска доменов (DNSSL).

--ra-param=<interface>,[mtu:<integer>|<interface>|off,][high,|low,]<ra-interval>[,<router lifetime>]
--ra-параметры=<интерфейс>,[mtu:<целое число>|<интерфейс>|off,][high,|low,]<ra-interval>[,<время жизни маршрутизатора>]
Установите нестандартные значения для объявлений маршрутизатора, отправляемых через интерфейс. Поле приоритета для маршрутизатора может быть изменено со значения по умолчанию medium с помощью, например, --ra-param=eth0,high. Интервал между объявлениями маршрутизатора может быть установлен (в секундах) с помощью --ra-param=eth0,60. Время жизни маршрута может быть изменено или установлено равным нулю, что позволяет маршрутизатору объявлять префиксы, но не маршрут через себя. --ra-param=eth0,0,0 (Нулевое значение интервала означает значение по умолчанию.) Все четыре параметра могут быть установлены одновременно. --ra-param=eth0,mtu:1280,low,60,1200
Поле интерфейса может содержать подстановочный знак.

Параметр mtu: может быть произвольным именем интерфейса, в этом случае используется значение MTU для этого интерфейса. Это полезно для (например) объявления MTU интерфейса WAN на других интерфейсах маршрутизатора.

--dhcp-reply-delay=[tag:<tag>,]<integer> / --dhcp-задержка-ответа=[тег:<тег>,]<целое число>
Задерживает отправку ответов DHCPOFFER и PROXYDHCP как минимум на указанное количество секунд. Это может быть использовано в качестве обходного пути для ошибок в прошивке загрузки PXE, которая не работает должным образом при получении мгновенного ответа. Этот параметр учитывает время, уже потраченное на ожидание (например, выполнение проверки ping), если таковое имеется.

--enable-tftp[=<interface>[,<interface>]] / --включить-tftp[=<интерфейс>[,<интерфейс>]]
Включить функцию сервера TFTP. Это намеренно ограничено тем, что необходимо для сетевой загрузки клиента. Разрешено только чтение; поддерживаются расширения tsize и blksize (tsize поддерживается только в октетном режиме). Без аргумента служба TFTP предоставляется тому же набору интерфейсов, что и служба DHCP. Если указан список интерфейсов, это определяет, какие интерфейсы получают службу TFTP.

--tftp-root=<directory>[,<interface>] / --tftp-root=<каталог>[,<интерфейс>]
Поиск файлов для передачи с использованием TFTP относительно указанного каталога. Если этот параметр установлен, пути TFTP, включающие ".." отклоняются, чтобы клиенты не могли выйти за пределы указанного корня. Абсолютные пути (начинающиеся с /) разрешены, но они должны находиться в пределах tftp-root. Если указан необязательный аргумент интерфейса, каталог используется только для запросов TFTP через этот интерфейс.

--tftp-no-fail / --tftp-никаких-неудач
Не прерывать запуск, если указанные корневые каталоги TFTP недоступны.

--tftp-unique-root[=ip|mac] / --tftp-уникальный-root[=ip|мак]
Добавьте IP-адрес или аппаратный адрес клиента TFTP в качестве компонента пути в конце TFTP-root. Действительно только в том случае, если задан --tftp-root и каталог существует. По умолчанию добавляется IP-адрес (в стандартном формате с четырьмя точками). Например, если --tftp-root — это "/tftp", а клиент 1.2.3.4 запрашивает файл "myfile", то эффективным путем будет "/tftp/1.2.3.4/myfile", если /tftp/1.2.3.4 существует, или /tftp/myfile в противном случае. Если указано "=mac", вместо этого будет добавлен MAC-адрес с использованием строчных цифр, дополненных нулями, разделенных дефисами, например: 01-02-03-04-aa-bb Обратите внимание, что разрешение MAC-адресов возможно только в том случае, если клиент находится в локальной сети или получил от нас аренду DHCP.

--tftp-secure / --tftp-безопасный
Включить безопасный режим TFTP: без этого любой файл, который может быть прочитан процессом dnsmasq в соответствии с обычными правилами контроля доступа unix, доступен через TFTP. Если задан флаг --tftp-secure , доступны только файлы, принадлежащие пользователю, запустившему процесс dnsmasq. Если dnsmasq запущен как root, применяются другие правила: --tftp-secure не оказывает никакого эффекта, но доступны только файлы, у которых установлен бит, разрешающий чтение всем. Не рекомендуется запускать dnsmasq как root с включенным TFTP, и уж тем более не без указания --tftp-root . Это может сделать любой файл на сервере, доступный для чтения всем, доступным любому хосту в сети.

--tftp-lowercase / --tftp-нижний регистр
Преобразовать имена файлов в запросах TFTP в строчные буквы. Это полезно для запросов с машин Windows, которые имеют нечувствительные к регистру файловые системы и склонны играть с регистром в именах файлов вслепую. Обратите внимание, что сервер tftp dnsmasq всегда преобразует "\" в "/" в именах файлов.

--tftp-max=<connections> / --tftp-макс=<подключения>
Установите максимальное количество одновременных TFTP-подключений. По умолчанию это значение равно 50. При обслуживании большого количества TFTP-подключений могут возникнуть ограничения на файловые дескрипторы для каждого процесса. Dnsmasq требуется один файловый дескриптор для каждого одновременного TFTP-подключения и один файловый дескриптор на уникальный файл (плюс несколько других). Таким образом, обслуживание одного и того же файла одновременно n клиентам потребует около n + 10 файловых дескрипторов, обслуживание разных файлов одновременно n клиентам потребует около (2*n) + 10 дескрипторов. Если задано --tftp-port-range , это может повлиять на количество одновременных подключений.

--tftp-mtu=<mtu size> / --tftp-mtu=<размер mtu>
Использовать размер в качестве верхнего предела MTU, поддерживаемого промежуточной сетью при согласовании размера блока TFTP, переопределяя настройку MTU локального интерфейса, если она больше.

--tftp-no-blocksize / --tftp-без размера блока
Остановить TFTP-сервер от согласования опции "blocksize" с клиентом. Некоторые глючные клиенты запрашивают эту опцию, но затем ведут себя плохо, когда она предоставляется.

--tftp-port-range=<start>,<end> / --tftp-порт-диапазон=<начало>,<конец>
Сервер TFTP прослушивает известный порт (69) для инициации соединения, но он также использует динамически выделяемый порт для каждого соединения. Обычно они выделяются ОС, но эта опция указывает диапазон портов для использования при передачах TFTP. Это может быть полезно, когда TFTP должен проходить через брандмауэр. Начало диапазона не может быть ниже 1025, если только dnsmasq не запущен как root. Количество одновременных соединений TFTP ограничено размером диапазона портов.

--tftp-single-port / --tftp-один-порт
Запустить в режиме, в котором сервер TFTP использует ТОЛЬКО известный порт (69) для своего конца передачи TFTP. Это позволяет TFTP работать, когда в NAT находится путь между клиентом и сервером. Обратите внимание, что это не строго соответствует RFC, определяющим протокол TFTP: используйте на свой страх и риск.

-C, --conf-file=<file> / -C, --конф-файл=<файл>
Укажите файл конфигурации. Наличие этой опции останавливает чтение dnsmasq файла конфигурации по умолчанию (обычно /etc/dnsmasq.conf). Можно указать несколько файлов, повторив опцию либо в командной строке, либо в файлах конфигурации. Имя файла "-" заставляет dnsmasq читать конфигурацию из stdin.

-7, --conf-dir=<directory>[,<file-extension>......], / -7, --конф-директория=<каталог>[,<расширение-файла>......],
Читать все файлы в указанном каталоге как файлы конфигурации. Если указано расширение(я), любые файлы, заканчивающиеся на эти расширения, пропускаются. Любые файлы, имена которых заканчиваются на ~ или начинаются на . или начинаются и заканчиваются на #, всегда пропускаются. Если расширение начинается с *, то загружаются только файлы с этим расширением. Таким образом, --conf-dir=/path/to/dir,*.conf загружает все файлы с суффиксом .conf в /path/to/dir. Этот флаг можно указать в командной строке или в файле конфигурации. Если указывается в командной строке, обязательно экранируйте символы *. Файлы загружаются в алфавитном порядке имени файла.

--servers-file=<file> / --сервер-файл=<файл>
Особый случай --conf-file , который отличается в двух отношениях. Во-первых, в включенном файле конфигурации разрешены только --server и --rev-server . Во-вторых, файл перечитывается и конфигурация в нем обновляется, когда dnsmasq получает SIGHUP.

--conf-script=<file>[ <arg] / --конф-скрипт=<файл>[ <аргумент]
Выполнить <file> и рассматривать то, что он выводит в stdout, как содержимое файла конфигурации. Если скрипт завершается с ненулевым кодом выхода, dnsmasq рассматривает это как фатальную ошибку. Скрипту можно передавать аргументы, разделенные пробелом от имени файла и друг от друга, например, --conf-dir=/etc/dnsmasq-uncompress-ads /share/ads-domains.gz
с /etc/dnsmasq-uncompress-ads, содержащим

set -e

zcat ${1} | sed -e "s:^:address=/:" -e "s:$:/:"

exit 0

и /share/ads-domains.gz, содержащий сжатый список доменов рекламных серверов, сэкономит место на диске при использовании больших списков блокировки рекламных серверов.

--no-ident / -- без опознавательных знаков
Не отвечайте на класс CHAOS и не вводите TXT в запросах на привязку домена.
Если эта опция не установлена, статистика кэша также доступна в DNS как ответы на запросы класса CHAOS и типа TXT в привязке домена. Доменные имена: cachesize.bind, insertions.bind, evictions.bind, misses.bind, hits.bind, auth.bind и servers.bind, если они не отключены во время компиляции. Пример команды для запроса с использованием утилиты dig будет следующим:

dig +short chaos txt cachesize.bind

--max-tcp-connections=<number> / --макс-tcp-подключений=<число>
Максимальное количество одновременных TCP-подключений. Приложение разветвляется для обработки каждого TCP-запроса. Максимальное значение по умолчанию — 20.


ФАЙЛ КОНФИГУРАЦИИ
При запуске dnsmasq считывает /etc/dnsmasq.conf, если он существует. (Во FreeBSD файл называется /usr/local/etc/dnsmasq.conf ) (но см. параметры --conf-file и --conf-dir .) Формат этого файла состоит из одной опции на строку, точно так же, как длинные опции, описанные в разделе ОПЦИИ, но без начального "--". Строки, начинающиеся с #, являются комментариями и игнорируются. Для опций, которые могут быть указаны только один раз, файл конфигурации переопределяет командную строку. Кавычки разрешены в файле конфигурации: между кавычками " специальные значения ,:. и # удаляются, и разрешены следующие экранированные символы: \\ \" \t \e \b \r и \n. Последнее соответствует табуляции, экранированию, возврату на одну позицию, возврату на другую и новой строке.


ПРИМЕЧАНИЯ
При получении SIGHUP dnsmasq очищает свой кэш, а затем повторно загружает /etc/hosts и /etc/ethers и любой файл, указанный в --dhcp-hostsfile , --dhcp-hostsdir , --dhcp-optsfile , --dhcp-optsdir , --addn-hosts или --hostsdir . Скрипт изменения аренды DHCP вызывается для всех существующих аренд DHCP. Если установлен --no-poll SIGHUP также перечитывает /etc/resolv.conf. SIGHUP НЕ перечитывает файл конфигурации.

При получении SIGUSR1 dnsmasq записывает статистику в системный журнал. Он записывает размер кэша, количество имен, которые пришлось удалить из кэша до истечения срока их действия, чтобы освободить место для новых имен, и общее количество имен, которые были вставлены в кэш. Также указывается количество попаданий и промахов кэша и количество отвеченных авторитетных запросов. Для каждого вышестоящего сервера указывается количество отправленных запросов и количество, которое привело к ошибке. Также указывается количество форков для TCP-соединений. В режиме --no-daemon или при включенном полном ведении журнала ( --log-queries ) выполняется полный дамп содержимого кэша.

При получении SIGUSR2 и прямой записи в файл (см. --log-facility ) dnsmasq закроет и снова откроет файл журнала. Обратите внимание, что во время этой операции dnsmasq не будет работать как root. Когда он впервые создает файл журнала, dnsmasq изменяет владельца файла на пользователя без прав root, от имени которого он будет работать. Logrotate должен быть настроен на создание нового файла журнала с владельцем, соответствующим существующему, перед отправкой SIGUSR2. Если выполняются запросы TCP DNS, старый файл журнала останется открытым в дочерних процессах, которые обрабатывают запросы TCP, и может продолжать записываться. Существует ограничение в 150 секунд, по истечении которого все существующие процессы TCP истекут: по этой причине нецелесообразно настраивать сжатие файла журнала для файлов журнала, которые только что были ротированы. При использовании logrotate обязательными параметрами являются create и delaycompress.




Dnsmasq — это переадресатор DNS-запросов: он не способен рекурсивно отвечать на произвольные запросы, начиная с корневых серверов, но пересылает такие запросы на полностью рекурсивный вышестоящий DNS-сервер, который обычно предоставляется интернет-провайдером. По умолчанию dnsmasq считывает /etc/resolv.conf , чтобы обнаружить IP-адреса вышестоящих серверов имен, которые он должен использовать, поскольку информация обычно хранится там. Если не используется --no-poll , dnsmasq проверяет время изменения /etc/resolv.conf (или эквивалент, если используется --resolv-file ) и перечитывает его, если оно изменилось. Это позволяет динамически устанавливать DNS-серверы с помощью PPP или DHCP, поскольку оба протокола предоставляют информацию. Отсутствие /etc/resolv.conf не является ошибкой, поскольку он мог не быть создан до того, как возникло соединение PPP. Dnsmasq просто продолжает проверять, не создан ли /etc/resolv.conf в любое время. Dnsmasq можно настроить на разбор более одного файла resolv.conf. Это полезно на ноутбуке, где могут использоваться как PPP, так и DHCP: dnsmasq можно настроить на опрос как /etc/ppp/resolv.conf , так и /etc/dhcpc/resolv.conf , и он будет использовать содержимое того, который был изменен последним, обеспечивая автоматическое переключение между DNS-серверами.

Upstream-серверы также могут быть указаны в командной строке или в файле конфигурации. Эти спецификации сервера опционально принимают доменное имя, которое сообщает dnsmasq использовать этот сервер только для поиска имен в этом конкретном домене.

Чтобы настроить dnsmasq на работу в качестве кэша для хоста, на котором он запущен, поместите "nameserver 127.0.0.1" в /etc/resolv.conf , чтобы заставить локальные процессы отправлять запросы в dnsmasq. Затем либо укажите серверы верхнего уровня непосредственно в dnsmasq с помощью параметров --server , либо поместите их реальные адреса в другой файл, например /etc/resolv.dnsmasq , и запустите dnsmasq с параметром --resolv-file /etc/resolv.dnsmasq . Этот второй метод позволяет динамически обновлять адреса серверов по PPP или DHCP.

Адреса в /etc/hosts будут "теневыводить" различные адреса для тех же имен в DNS восходящего потока, поэтому "mycompany.com 1.2.3.4" в /etc/hosts гарантирует, что запросы для "mycompany.com" всегда возвращают 1.2.3.4, даже если запросы в DNS восходящего потока в противном случае возвращали бы другой адрес. Из этого есть одно исключение: если DNS восходящего потока содержит CNAME, который указывает на теневое имя, то поиск CNAME через dnsmasq приведет к нетеневому адресу, связанному с целью CNAME. Чтобы обойти это, добавьте CNAME в /etc/hosts, чтобы CNAME также был теневым.

Система тегов работает следующим образом: для каждого запроса DHCP dnsmasq собирает набор допустимых тегов из активных строк конфигурации, которые включают set:<tag>, включая один из диапазона --dhcp-range , используемого для выделения адреса, один из любого соответствующего --dhcp-host (и "known" или "known-othernet", если соответствует --dhcp-host ). Тег "bootp" устанавливается для запросов BOOTP, а также устанавливается тег, имя которого совпадает с именем интерфейса, на который поступил запрос.

Любые строки конфигурации, включающие одну или несколько конструкций tag:<tag>, будут действительны только в том случае, если все эти теги совпадают в наборе, полученном выше. Обычно это --dhcp-option . --dhcp-option с тегами будет использоваться в приоритетном порядке по сравнению с --dhcp-option без тегов, при условии, что _все_ теги совпадают где-то в наборе, собранном, как описано выше. Префикс '!' в теге означает 'нет', поэтому --dhcp-option=tag:!purple,3,1.2.3.4 отправляет параметр, когда тег purple отсутствует в наборе допустимых тегов. (Если вы используете это в командной строке, а не в файле конфигурации, обязательно экранируйте !, который является метасимволом оболочки)

При выборе --dhcp-options тег из --dhcp-range является второстепенным по отношению к другим тегам, что упрощает переопределение параметров для отдельных хостов, поэтому --dhcp-range=set:interface1,...... --dhcp-host=set:myhost,..... --dhcp-option=tag:interface1,option:nis-domain,domain1 --dhcp-option=tag:myhost,option:nis-domain,domain2 установит NIS-домен на domain1 для хостов в диапазоне, но переопределит его на domain2 для конкретного хоста.

Обратите внимание, что для --dhcp-range разрешены как tag:<tag>, так и set:<tag>, чтобы выбрать используемый диапазон на основе (например) --dhcp-host и повлиять на отправляемые параметры на основе выбранного диапазона.

Эта система произошла от более ранней, более ограниченной, и для обратной совместимости вместо «tag:» можно использовать «net:», а «set:» можно опустить. (За исключением --dhcp-host, где вместо «set:» можно использовать «net:».) По той же причине вместо «!» можно использовать «#».

DHCP-сервер в dnsmasq также будет функционировать как BOOTP-сервер при условии, что MAC-адрес и IP-адрес для клиентов указаны либо с помощью конфигураций --dhcp-host , либо в /etc/ethers , а также присутствует параметр конфигурации --dhcp-range для активации DHCP-сервера в определенной сети. (Настройка --bootp-dynamic устраняет необходимость в статическом сопоставлении адресов.) Параметр имени файла в запросе BOOTP используется в качестве тега, как и тег "bootp", что позволяет осуществлять определенный контроль над параметрами, возвращаемыми различным классам хостов.



АВТОРИТНАЯ КОНФИГУРАЦИЯ
Настройка dnsmasq для работы в качестве авторитетного DNS-сервера осложняется тем, что она включает настройку внешних DNS-серверов для предоставления делегирования. Мы рассмотрим три сценария возрастающей сложности. Предпосылки для всех этих сценариев — глобально доступный IP-адрес, запись A или AAAA, указывающая на этот адрес, и внешний DNS-сервер, способный выполнять делегирование рассматриваемой зоны. В первой части этого объяснения мы назовем запись A (или AAAA) для глобально доступного адреса server.example.com, а зону, для которой dnsmasq является авторитетным, our.zone.com.
Самая простая конфигурация состоит из двух строк конфигурации dnsmasq; что-то вроде

--auth-server=server.example.com,eth0
--auth-zone=our.zone.com,1.2.3.0/24
и две записи во внешнем DNS

server.example.com A 192.0.43.10
our.zone.com NS сервер.example.com
eth0 — это внешний сетевой интерфейс, который прослушивает dnsmasq, и имеет (глобально доступный) адрес 192.0.43.10.

Обратите внимание, что внешний IP-адрес вполне может быть динамическим (т. е. назначенным интернет-провайдером по протоколу DHCP или PPP). В таком случае запись A должна быть связана с этим динамическим назначением с помощью одной из обычных систем динамического DNS.

Более сложная, но практически полезная конфигурация имеет адресную запись для глобально доступного IP-адреса, находящегося в авторитетной зоне, которую обслуживает dnsmasq, обычно в корне. Теперь у нас есть

--auth-server=our.zone.com,eth0
--auth-zone=our.zone.com,1.2.3.0/24
our.zone.com А 1.2.3.4
our.zone.com NS our.zone.com
Запись A для our.zone.com теперь стала клейкой записью, она решает проблему курицы и яйца, когда нужно найти IP-адрес сервера имен для our.zone.com, когда запись A находится в этой зоне. Обратите внимание, что это единственная роль этой записи: поскольку dnsmasq теперь является полномочным из our.zone.com, он также должен предоставить эту запись. Если внешний адрес статический, это можно сделать с помощью записи /etc/hosts или --host-record.

--auth-server=our.zone.com,eth0
--host-record=our.zone.com,1.2.3.4
--auth-zone=our.zone.com,1.2.3.0/24
Если внешний адрес динамический, адрес, связанный с our.zone.com, должен быть получен из адреса соответствующего интерфейса. Это делается с помощью --interface-name Что-то вроде:

--auth-server=our.zone.com,eth0
--interface-name=our.zone.com,eth0
--auth-zone=our.zone.com,1.2.3.0/24,eth0
(Аргумент "eth0" в --auth-zone добавляет подсеть, содержащую динамический адрес eth0, в зону, так что --interface-name возвращает адрес во внешних запросах.)

Наша окончательная конфигурация строится на том, что выше, но также добавляет вторичный DNS-сервер. Это еще один DNS-сервер, который изучает данные DNS для зоны, выполняя передачу зон, и действует как резервный, если основной сервер станет недоступным. Конфигурация вторичного сервера выходит за рамки этой man-страницы, но дополнительная конфигурация dnsmasq проста:

--auth-sec-servers=вторичный.myisp.com
и

our.zone.com NS вторичный.myisp.com
Добавление auth-sec-servers включает передачу зоны в dnsmasq, чтобы позволить вторичному серверу собирать данные DNS. Если вы хотите ограничить эти данные определенными хостами, то

--auth-peer=<IP-адрес вторичного устройства>
так и сделаю.

Dnsmasq действует как уполномоченный сервер для доменов in-addr.arpa и ip6.arpa, связанных с подсетями, указанными в объявлениях --auth-zone , поэтому обратный (адрес по имени) поиск можно просто настроить с помощью подходящей записи NS, например, в этом примере, где мы разрешаем адреса 1.2.3.0/24.

3.2.1.in-addr.arpa NS our.zone.com
Обратите внимание, что в настоящее время обратные зоны (in-addr.arpa и ip6.arpa) недоступны при передаче зон, поэтому нет смысла организовывать вторичные серверы для обратного поиска.

Если dnsmasq настроен для работы в качестве авторитарного сервера, для заполнения авторитарной зоны используются следующие данные.

--mx-host, --srv-host, --dns-rr, --txt-record, --naptr-record, --caa-record, при условии, что имена записей находятся в авторитетном домене.

--synth-domain , если домен находится в авторитетной зоне, а для обратных (PTR) запросов адрес находится в соответствующей подсети.

--cname , пока имя записи находится в авторитетном домене. Если цель CNAME не квалифицирована, то она квалифицируется с именем авторитетной зоны. CNAME, используемые таким образом (только), могут быть подстановочными знаками, как в

--cname=*.example.com,default.example.com
Адреса IPv4 и IPv6 из /etc/hosts (и --addn-hosts ), а также --host-record , --interface-name и ---dynamic-host при условии, что адрес попадает в одну из подсетей, указанных в --auth-zone.

Адреса аренды DHCP, при условии, что адрес попадает в одну из подсетей, указанных в --auth-zone. (Если используются сконструированные диапазоны DHCP, которые зависят от адреса, динамически назначенного интерфейсу, то для обеспечения выполнения этого условия следует использовать форму --auth-zone , которая определяет подсети по динамическому адресу интерфейса.)

В режиме по умолчанию, когда аренда DHCP имеет неквалифицированное имя и, возможно, квалифицированное имя, созданное с использованием --domain , то имя в авторитетной зоне создается из неквалифицированного имени и домена зоны. Оно может совпадать или не совпадать с указанным в --domain. Если задано --dhcp-fqdn , то используются полностью квалифицированные имена, связанные с арендой DHCP, и они должны соответствовать домену зоны.




КОДЫ ВЫХОДА
0 — Dnsmasq успешно перешел в фоновый режим или завершил работу в обычном режиме, если фоновый режим не включен.
1 — Обнаружена проблема с конфигурацией.

2 - Возникла проблема с доступом к сети (адрес используется, попытка использовать привилегированные порты без разрешения).

3 - Возникла проблема с операцией файловой системы (отсутствует файл/каталог, разрешения).

4 - Ошибка выделения памяти.

5 - Другие различные проблемы.

11 или больше — получен ненулевой код возврата от вызова "init" процесса lease-script или файла --conf-script . Код выхода из dnsmasq — это код выхода скрипта с добавлением 10.



ОГРАНИЧЕНИЯ / ЛИМИТЫ
Значения по умолчанию для ограничений ресурсов в dnsmasq в целом консервативны и подходят для устройств типа встроенного маршрутизатора с медленными процессорами и ограниченной памятью. На более мощном оборудовании можно увеличить ограничения и обрабатывать гораздо больше клиентов. Следующее относится к dnsmasq-2.37: более ранние версии не масштабировались так же хорошо.

Dnsmasq способен обрабатывать DNS и DHCP как минимум для тысячи клиентов. Время аренды DHCP не должно быть очень коротким (менее одного часа). Значение --dns-forward-max можно увеличить: начните с него, равного количеству клиентов, и увеличивайте, если DNS кажется медленным. Обратите внимание, что производительность DNS также зависит от производительности серверов имен верхнего уровня. Размер кэша DNS можно увеличить: жесткий предел составляет 10000 имен, а значение по умолчанию (150) очень мало. Отправка SIGUSR1 в dnsmasq заставляет его регистрировать информацию, которая полезна для настройки размера кэша. Подробности см. в разделе ПРИМЕЧАНИЯ .

Встроенный сервер TFTP способен выполнять множество одновременных передач файлов: абсолютный предел связан с числом файловых дескрипторов, разрешенных процессу, и способностью системного вызова select() справляться с большим числом файловых дескрипторов. Если предел установлен слишком высоким с помощью --tftp-max, он будет уменьшен, а фактический предел будет записан в журнал при запуске. Обратите внимание, что при отправке одного и того же файла возможно больше передач, чем при отправке разных файлов в каждой передаче.

Можно использовать dnsmasq для блокировки веб-рекламы, используя список известных серверов баннерной рекламы, все из которых разрешаются в 127.0.0.1 или 0.0.0.0, в /etc/hosts или дополнительном файле hosts. Список может быть очень длинным, dnsmasq был успешно протестирован с миллионом имен. Для такого размера файла требуется процессор 1 ГГц и около 60 Мб оперативной памяти.



ИНТЕРНАЦИОНАЛИЗАЦИЯ
Dnsmasq может быть скомпилирован для поддержки интернационализации. Для этого следует использовать цели make "all-i18n" и "install-i18n" вместо стандартных целей "all" и "install". При компиляции интернационализации dnsmasq будет создавать сообщения журнала на локальном языке и поддерживать интернационализированные доменные имена (IDN). Доменные имена в /etc/hosts, /etc/ethers и /etc/dnsmasq.conf, содержащие символы, отличные от ASCII, будут переведены во внутреннее представление DNS punycode. Обратите внимание, что dnsmasq определяет как язык сообщений, так и предполагаемую кодировку для файлов конфигурации из переменной среды LANG. Это должно быть установлено в системное значение по умолчанию скриптом, который отвечает за запуск dnsmasq. При редактировании файлов конфигурации будьте осторожны и используйте только системную локаль по умолчанию, а не локаль пользователя, поскольку dnsmasq не имеет прямого способа определить используемую кодировку и должен предполагать, что это системная кодировка по умолчанию.

ФАЙЛЫ
/etc/dnsmasq.conf
/usr/local/etc/dnsmasq.conf

/etc/resolv.conf /var/run/dnsmasq/resolv.conf /etc/ppp/resolv.conf /etc/dhcpc/resolv.conf

/etc/хосты

/etc/эфиры

/var/lib/misc/dnsmasq.leases

/var/db/dnsmasq.leases

/var/run/dnsmasq.pid


СМОТРИ ТАКЖЕ
хосты (5), резолвер (5)

АВТОР
Эту страницу руководства написал Саймон Келли < simon@thekelleys.org.uk >.
Этот документ был создан man2html с использованием страниц руководства. Время: 13:50:43 GMT, 13 февраля 2024 г.
количество слов: 1652
Ответить Пред. темаСлед. тема

Вернуться в «Linux»