Dnsmasq - это открытый, полностью бесплатный, простой в настройке и легкий программный продукт командной строки, разработанный со смещения для работы в качестве сервера DHCP (Dynamic Host Configuration Protocol) и DNS (Domain Name System ) в GNU / Linux и UNIX-подобных операционных системах.
Программное обеспечение было спроектировано таким образом, что оно обеспечивает DNS, а также функции DHCP для небольшой сети. Он способен обслуживать имена локальных машин, которые aren & rsquo; t в глобальном DNS и содержит множество привлекательных функций.
Мощные параметры командной строки
Для этого проекта доступен широкий диапазон параметров командной строки, которые можно просмотреть с первого взгляда, запустив & lsquo; dnsmasq --help & rsquo; команды в приложении терминала. Среди них можно указать возможность указать локальный адрес для прослушивания, указать размер кэша в записях, а также указать настраиваемый файл конфигурации.
Начало работы с Dnsmasq
Установка Dnsmasq в операционной системе GNU / Linux выполняется так же, как и с любой другой программой с открытым исходным кодом, которая распространяется как исходный архив. Сначала вы загружаете пакет, сохраняете его на своем компьютере (желательно в домашнем каталоге) и извлекаете его содержимое с помощью утилиты диспетчера архива.
Затем перейдите в место, где вы извлекли архивный файл в эмуляторе терминала (например, cd /home/softoware/dnsmasq-2.72 - замените & lsquo; softoware & rsquo; с вашим именем пользователя), запустите & lsquo; ./ configure & amp ; & амп; сделать & Rsquo; команду для конфигурирования и компиляции программы, за которой следует установка & lsquo; sudo make install & rsquo; для его полной установки.
Работает на GNU / Linux, BSD и Mac OS X
Поддержка Dnsmasq для нескольких операционных систем, включая Linux (Debian, Gentoo, Slackware, Smoothwall, SUSE, IP-Cop, Firebox, floppyfw, LEAF, CoyoteLinux, Clarkconnect, Freesco и т. д.), BSD (FreeBSD) и Mac OS X. Он работает на 32-разрядных и 64-разрядных компьютерных платформах.
Что нового в этой версии:
- Генерировать ошибку при настройке с помощью CNAME-цикла, а не сбоя. Спасибо Джорджу Мецу за обнаружение этой проблемы.
- Вычислите длину пакета ответа об ошибке TFTP правильно. Это устраняет проблему, когда сообщение об ошибке в TFTP-пакете превышает произвольный лимит в 500 символов. Сообщение было правильно усечено, но не длина пакета, поэтому добавлены дополнительные данные. Это возможный риск для безопасности, поскольку дополнительные данные поступают из буфера, который также используется для DNS, так что могут возникать предыдущие DNS-запросы или ответы. Благодаря Mozilla для финансирования аудита безопасности, который выявил эту ошибку.
- Исправить логическую ошибку в коде netlink Linux. Это может привести к тому, что dnsmasq войдет в замкнутый цикл в системах с очень большим количеством сетевых интерфейсов. Благодаря Ивану Кокшайскому для диагностики и исправления.
- Исправить проблему с -dnssec-timestamp, при которой получение SIGHUP ошибочно будет задействовать проверку метки времени. Спасибо Кевину Дарбиширу-Брайанту за эту работу.
- Сегмент зоны Bump при перезагрузке / etc / hosts и друзей при предоставлении авторитетного DNS. Спасибо Harrald Dunkel за то, что вы заметили это.
- Обращаться с адресами IPv6 с отображением v4 в ssynth-домене. Они имеют стандартное представление типа :: ffff: 1.2.3.4 и теперь преобразуются в имена, такие как -ffff-1-2-3-4.
- Обрабатывать привязку восходящих серверов к интерфейсу (--server=1.2.3.4@eth0), когда именованный интерфейс уничтожается и воссоздается в ядре. Спасибо Бениамино Гальвани за патч.
- Разрешить групповые записи CNAME в авторитетных зонах. Например, --cname = *. Example.com, default.example.com Благодаря Pro Backup для спонсирования этой разработки.
- Предотвратите возможное отставание TCP-соединений от 5 до 32 и сделайте это настраиваемым параметром времени компиляции. Благодаря Donatas Abraitis для диагностики этого как потенциальной проблемы.
- Добавьте переменную окружения DNSMASQ_REQUESTED_OPTIONS в сценарий замены аренды. Благодаря ZHAO Yu для патча.
- Исправьте foobar в коде rrfilter, что может привести к неправильным ответам, особенно когда проверка DNSSEC включена, и восходящий сервер возвращает ответ с RR в определенном порядке. Единственный DNS-сервер, который, как известно, щекочет, это Nominum's. Спасибо Дейву Тахту за обнаружение ошибки и помощь в исправлении.
- Исправьте man-страницу, в которой утверждается, что только -Интерфейс-имя используется только основным адресом интерфейса.
- Сделать -localise-запросы применяются к именам из -interface-name. Спасибо Кевину Дарбиширу-Брайанту и Эрику Люерсуну за то, что он нажал.
- Улучшение связи при разговоре с серверами upstream TCP. В частности, будьте готовы открыть новое TCP-соединение, когда мы хотим сделать несколько запросов, но восходящий сервер принимает меньше запросов на соединение.
- Улучшить протоколирование восходящих серверов, когда есть много записей «только локальные адреса». Спасибо Hannu Nyman за патч.
- Сделать --bogus-priv применять к IPv6, для префиксов, указанных в RFC6303. Спасибо Кевину Дарбиширу-Брайанту за работу над этим.
- Разрешить использование MAC-адресов с --tftp-unique-root. Спасибо Флорису Босу за патч.
- Добавить параметр --dhcp-reply-delay. Спасибо Флорису Босу за патч.
- Добавьте параметр настройки mtu в параметр -ra-param. Спасибо Дэвиду Фламанду за патч.
- Захват STDOUT и STDERR вывода из dhcp-скрипта и запись в него как часть потока журнала dnsmasq. Делает жизнь проще для диагностики неожиданных проблем в сценариях. Спасибо Петру Менсику за патч.
- Генерировать фатальные ошибки при отсутствии синтаксического анализа вывода dhcp-скрипта в режиме «init». Избегает странных ошибок, когда скрипт случайно генерирует сообщения об ошибках. Спасибо Петру Менсику за патч.
- Make -rev-сервер для подсети RFC1918 работает даже при наличии флага -bogus-priv. Спасибо Владиславу Грищенко за патч.
- Расширить --ra-param mtu: поле, чтобы разрешить имя интерфейса. Это позволяет рекламировать MTU интерфейса WAN на внутренних интерфейсах маршрутизатора. Спасибо Владиславу Грищенко за патч.
- Проверяйте ICMP-пинг на адрес в использовании для DHCPv4, когда клиент указывает адрес в DHCPDISCOVER и когда адрес сконфигурирован локально. Спасибо Alin Nastac за выявление проблемы.
- Добавить новый тег DHCP «known-othernet», который устанавливается, когда для другой подсети существует только один dhcp-хост. Может использоваться для обеспечения того, чтобы привилегированные хосты не получали «гостевые» адреса случайно. Спасибо Тодд Санке за предложение.
- Удалить историческое автоматическое включение поддержки IDN при создании поддержки интернационализации. Это не подходит сейчас, есть выбор библиотек IDN. Не забудьте включить либо -DHAVE_IDN, либо -DHAVE_LIBIDN2 для поддержки IDN.
Что нового в версии 2.72:
- Добавить режим ra-advrouter для поддержки мобильного IPv6 для RFC-3775.
- Добавьте поддержку «ipsets» в * BSD, используя pf. Спасибо Sven Falempim за патч.
- Исправить состояние гонки, которое может заблокировать dnsmasq, когда интерфейс быстро и быстро опускается. Спасибо Конраду Костецки за помощь в преследовании.
- Добавьте методы DBus SetFilterWin2KOption и SetBogusPrivOption. Благодаря проекту Smoothwall для патча.
- Исправить ошибку при создании Nettle-3.0. Спасибо Стивену Барту за то, что он нашел это и нашел исправление. При назначении существующих лизинга DHCP для intefaces путем сравнения сетей обрабатывайте случай, когда два или более интерфейса имеют одну и ту же сетевую часть, но разные длины префикса (предпочитают более длинную длину префикса.) Благодаря Lung-Pin Chang для патча.
- Добавить режим, который обнаруживает и удаляет циклы пересылки DNS, т. е. запрос, отправленный на восходящий сервер, возвращается как новый запрос к dnsmasq и поэтому будет перенаправлен снова, в результате чего запрос будет повторяться много раз перед тем, как его отбросить. Серверы восходящего потока, которые обращаются назад, отключены, и это событие регистрируется. Благодаря Smoothwall для их спонсорства этой функции.
- Расширьте --conf-dir, чтобы разрешить фильтрацию файлов. Итак, --conf-dir = / etc / dnsmasq.d, *. Conf загрузит все файлы в /etc/dnsmasq.d, которые заканчиваются на .conf
- Исправлена ошибка, когда в некоторых случаях приводились ответы NXDOMAIN вместо NODATA.
- Исправить ошибку, из-за которой dnsmasq перестает отвечать на запросы, если он не смог отправить пакеты из-за исчезновения сетевого интерфейса. Спасибо Niels Peen за это.
- Устранить проблему с параметром --local-service на платформах большого числа. Спасибо Ричарду Геноуду за патч.
Что нового в версии 2.68:
- Используйте произвольные адреса для распределения временных адресов DHCPv6 вместо алгоритмически определенных стабильных адресов.
- Исправлена ошибка, которая означала, что DHCPv6 DUID не был доступен в сценариях DHCP-скриптов в течение всего жизненного цикла процесса dnsmasq, который создал DUID de-novo. Когда DUID был создан и сохранен в файле аренды, а dnsmasq перезапущен, эта ошибка исчезла.
- Исправлена ошибка, введенная в 2.67, которая может привести к ошибке NXDOMAIN в запросах CNAME.
- Исправить ошибки сборки на MacOS X и openBSD.
- Разрешить спецификации подсети в --auth-zone - имена интерфейсов, а также литералы адресов. Это позволяет настраивать авторитетный DNS, когда диапазоны локальных адресов являются динамическими и работают намного лучше, чем предыдущий обход, который освобождал диапазоны DHCP от фильтрации IP-адресов. Как следствие, эта работа устранена. При определенных обстоятельствах это изменение приведет к нарушению существующей конфигурации: если вы полагаетесь на исключение с расширенным диапазоном, вам нужно изменить --auth-zone, чтобы указать тот же интерфейс, который используется для построения диапазонов DHCP, возможно, с завершающим «/ 6» следующим образом: --auth-zone = example.com, eth0 / 6, чтобы ограничить адреса адресами IPv6 eth0.
- Исправить проблемы при удалении префиксов IPv6. Если префикс удален (а не заменен), он не будет рекламироваться с нулевым предпочтительным временем. Спасибо Tsachi за сообщение об ошибке.
- Исправить segfault с помощью некоторых локально настроенных CNAME. Спасибо Andrew Childs за выявление проблемы.
- Исправить утечку памяти при повторном чтении / etc / hosts и друзей, введенном в 2.67.
- Проверьте интерфейс поступления входящих DNS и TFTP-запросов через IPv6, даже в режиме -bind-interfaces. Это невозможно для IPv4 и может генерировать страшные предупреждения, но, поскольку это всегда возможно для IPv6 (API всегда существует), мы должны делать это всегда.
- Измените правила для префикс-длины в -dhcp-range для IPv6. Новое правило состоит в том, что указанная длина префикса должна быть больше или равна длине префикса соответствующего адреса в локальном интерфейсе.
Что нового в версии 2.63:
- Основное дополнение в этом выпуске - это новый режим: -bind-dynamic, который позволяет избежать привязки подстановочного IP-адреса и справляется с динамически создаваемыми сетевыми интерфейсами, тем самым устраняя основные ограничения двух существующих сетевых режимов.
Что нового в версии 2.61:
- В этой версии есть много дополнительной работы над кодом DHCPv6, который дебютировал в 2.60.
- Исправлено множество ошибок и добавлены дополнительные функции.
- Функция рекламы маршрутизатора теперь намного более настраивается, и есть режим, позволяющий dnsmasq делать записи AAAA DNS для хостов, которые используют адреса SLAAC IPv6 и адреса DHCP IPv4.
Что нового в версии 2.59:
- В этой версии рассмотрена пара проблем, появившихся с помощью dnsmasq-2.58, что может вызвать проблемы при запуске с локальными адресами ссылок IPv6.
- Один из них - это регрессия в dnsmasq, а вторая - из-за изменения поведения интерфейсов моста в последних ядрах Linux.
Что нового в версии 2.58:
- версия 2.58
- Укажите макрос SA_SIZE, где он отсутствует. Исправление сбоев сборки в openBSD.
- Не включать нулевой ограничитель в конце сообщений, отправленных в / dev / log, когда / dev / log - это сокет датаграммы. Спасибо Дидье Раббоун за обнаружение проблемы.
- Добавить флаг --dhcp-sequential-ip для принудительного распределения IP-адресов в порядке возрастания. Обратите внимание, что псевдослучайный режим по умолчанию в целом лучше, но некоторые приложения для развертывания серверов нуждаются в этом.
- Исправить проблему, когда сервер-идентификатор 0.0.0.0 отправляется клиенту, когда используется dhcp-relay, если клиент возобновляет аренду после перезапуска dnsmasq и перед тем, как все клиенты в подсети получат новую аренду. Спасибо Майку Руису за помощь в преследовании этого.
- Не возвращайте NXDOMAIN в запрос AAAA, если у нас есть CNAME, который указывает только на запись A: NODATA - правильный ответ в этом случае. Спасибо Тому Фернандесу за обнаружение проблемы.
- Откажитесь от необходимости использовать сетевую маску в диапазоне --dhcp для сетей, использующих реле DHCP. Хотя это все еще желательно, в отсутствие сетевой маски dnsmasq будет использовать значение по умолчанию, основанное на классе (A, B или C) адреса. Это должно по крайней мере устранить причину таинственного отказа для людей, использующих адреса и реле RFC1918.
- Добавить поддержку для маркировки соединения conntrack Linux. Если включено с помощью --conntrack, метка соединения для входящих DNS-запросов будет скопирована на исходящие соединения, используемые для ответа на эти запросы. Это позволяет использовать умный брандмауэр и бухгалтерский учет. Доступно только в том случае, если dnsmasq скомпилирован с помощью HAVE_CONNTRACK и добавляет зависимость от libnetfilter-conntrack. Благодаря Ed Wildgoose для первоначальной идеи, тестирования и спонсорства этой функции.
- Предоставить сообщение об ошибке, когда кто-то пытается сопоставить тег в -dhcp-host.
- Измените поведение --domain-required, чтобы избежать проблем с рекурсивными серверами имен ниже dnsmasq. Новое поведение останавливает запросы A и AAAA и возвращает NODATA, а не ответы NXDOMAIN.
- Исправление эффективности для очень больших конфигураций DHCP, благодаря Джеймсу Гартреллу и Майку Руису за помощь в этом.
- Разрешить адрес TFTP-сервера в --dhcp-boot быть именем домена, которое просматривается в / etc / hosts. Это может привести к нескольким IP-адресам, которые используются циклически, таким образом делая балансировку нагрузки TFTP-сервера. Спасибо Sushil Agrawal за патч.
- Если два аргумента dhcp-метки для определенного номера параметра действительны, используйте тот, который действителен без тега из диапазона dhcp. Позволяет переопределить значение параметра DHCP для определенного хоста, а также значений для каждой сети.
- - DHCP-хост = набор: MyHost, .....
- - DHCP-опция = тег: interface1, опция: нис-домен "domain1"
- - DHCP-опция = тег: MyHost, опция: нис-домен "domain2"
- установит NIS-домен в домен 1 для хостов в диапазоне, но
- переопределить это для домена2 для определенного хоста.
- Исправить ошибку, которая привела к усечению файлов и таймаутам для некоторых передач TFTP. Ошибка возникает только при переносе netascii и требует неудачной связи между размером файла, размером и количеством строк в последнем блоке до того, как он проявится. Большое спасибо Alkis Georgopoulos за выявление проблемы и предоставление всестороннего теста.
- Исправить регрессию на TFTP-сервере на * BSD-платформах, введенных в версии 2.56, из-за путаницы с длиной sockaddr. Большое спасибо LoA & macr; c Pefferkorn за то, что вы нашли это.
- Поддерживать области видимости в IPv6-адресах серверов имен из /etc/resolv.conf и в параметрах -server. E
- Например, nameserver fe80 :: 202: a412: 4512: 7bbf% eth0
- Сервер = fe80 :: 202: A412: 4512: 7bbf% eth0. Благодаря
- Майкл Стапельберг за это предложение.
- Обновление польского перевода, благодаря Ян Псота.
- Обновить французский перевод. Благодаря Гильдасу Ле Надану.
<Литий> - DHCP-диапазон = набор: порт1, ......
Что нового в версии 2.57:
- Эта версия исправляет пару регрессий в предыдущей версии и добавляет поддержку платформы Android.
Что нового в версии 2.56:
- Добавьте патч, чтобы позволить dnsmasq получить имена интерфейсов прямо в зоне Solaris. Спасибо Dj Padzensky за это.
- Улучшить эвристику синтаксического анализа типа данных, чтобы опция -dhcp-option =: domain-search ,. обрабатывает значение как строку, а не IP-адрес. Благодаря Clemens Fischer для определения этого.
- Добавить поддержку IPv6 для TFTP-сервера. Большое спасибо Jan 'RedBully' Seiffert для патчей.
- Запишите DNS-запросы на уровне LOG_INFO, а не LOG_DEBUG. Это упрощает согласование протоколов DHCP. Спасибо Адаму Прибылю за выявление проблемы.
- Убедитесь, что dnsmasq полностью завершается при использовании - syslog-async, даже если он не может подключиться к syslogd.
- Добавить параметр --add-mac. Это поддержка существующих в настоящее время фильтров фильтрации DNS. Благодаря Бенджамину Петрину для паттерна orignal.
- Исправлена ошибка, которая означала, что теги игнорировались в конфигурации диапазона dhcp, задающей службу PXE-proxy. Спасибо Криштиану Кумеру за это.
- Поднимите ошибку, если в командной строке есть дополнительный мусор, а не часть опции.
- Отметьте пару сообщений журнала в cache.c, исходящих из подсистемы DHCP. Спасибо Olaf Westrik за патч.
- Отметить отметки времени из журналов, когда: a) регистрация в stderr и b) задана настройка -keep-in-forground. Для того, чтобы предоставить их, можно найти средство регистрации на другом конце stderr. Спасибо Джону Халламу за патч.
- Не жалуйтесь на строки длиной более 255 символов в -txt-записи, вместо этого разделите длинные строки на 255character chunks.
- Исправить ошибку при двойном освобождении. Эта ошибка может произойти только тогда, когда используется dhcp-script, а затем только в редких случаях, вызванных высокой скоростью транзакций DHCP и медленным скриптом. Благодаря Ференцу Вагнеру для поиска проблемы
- Только зарегистрировать, что файл был отправлен TFTP после того, как передача завершилась успешно.
- Хорошее предложение от Ференца Вагнера: добавьте опцию --domain, чтобы разрешить такую вещь: --domain = thekelleys.org.uk, 192.168.0.0 / 24, local, которая автоматически создает
- - локальный = / thekelleys.org.uk /
- - локальный = / 0.168.192.in-addr.arpa /
- Затяните синтаксическую проверку шестнадцатеричных констант в файле конфигурации. Спасибо Фред Дамен за то, что он заметил это.
- Добавить логотип / значок dnsmasq, внесенный Джастином Свифтом. Большое спасибо за это.
- Никогда не кэшируйте ответы DNS, у которых установлен бит «cd», или результат от запросов, отправленных с установленным битом «cd». Бит «cd» указывает серверу проверки подлинности DNSSEC вверх, чтобы игнорировать сбои подписи и возвращать ответы в любом случае. Без этого изменения можно загрязнить кеш dnsmasq плохими данными, сделав запрос с установленным битом «cd», и последующие запросы вернут эти данные, не помеченные как подозрительные. Спасибо Anders Kaseorg за то, что он указал на эту проблему.
- Добавить флаг -proxy-dnssec для соответствия RFC 4035. Теперь Dnsmasq очистит бит «объявления» в ответах, возвращаемых с проверки правильности имен серверов восходящего потока, если эта опция не установлена.
- Разрешить имя файла «-» для --conf-файла читать stdin. Предложение от Тимоти Редаэлли.
- Поверните порядок записей SRV в ответах, чтобы обеспечить сбалансированную балансировку нагрузки, когда все приоритеты равны. Спасибо Питеру МакКинни за предложение.
- Изменить вкладку / MacOSX-launchd / uk.org.thekelleys.dnsmasq.plist, чтобы он не регистрировал все запросы в файл по умолчанию. Еще раз спасибо Питеру МакКинни.
- По умолчанию установка IPv4-адреса для домена, но не адрес IPv6, заставляет dnsmasq возвращать ответ NODATA для IPv6 (или наоборот). So --address = / google.com / 1.2.3.4 останавливает запросы IPv6 для переадресации * google.com. Позвольте переопределить это поведение, определив семантику, если тот же домен появится на обоих - server и - address. В этом случае адрес -адрес имеет приоритет для семейства адресов, в котором отображается, но у -сервера есть приоритет семейства адресов, который не появляется в - adddress
- Итак:
- - адрес = / google.com / 1.2.3.4
- - сервер = / google.com / #
- Вернет 1.2.3.4 для запросов IPv4 для * .google.com, но перенаправляет запросы IPv6 в нормальный сервер имен вверх. Аналогично при настройке адреса IPv6 это позволит пересылать запросы IPv4. Благодаря Уильяму, указав на необходимость этого.
- Разрешить более одного файла --dhcp-optsfile и -dhcp-hostsfile и заставить их понимать каталоги в качестве аргументов так же, как -addn-hosts. Предложение от Джона Хэнкса.
- Игнорировать запросы на перепродажу для аренды, о которых мы не знаем. Rebind транслируется, поэтому мы можем подслушать запрос, предназначенный для другого DHCP-сервера. NAKing это неправильно. Спасибо Брэду Д'Хонду за помощь в этом.
- Исправьте косметическую ошибку, которая произвела странный вывод при сбросе статистики кеша с некоторыми конфигурациями. Спасибо Федору Кожевникову за то, что он заметил это.
Что нового в версии 2.55:
- Исправить сбой при использовании / etc / эфиров. Спасибо Gianluigi Tiesi за то, что вы нашли это.
- Исправить ошибку в netlink_multicast (). Спасибо Арно Вальду за то, что он нашел этот.
- Разрешить пустой домен "." в параметрах dhcp domain-search (119).
Комментарии не найдены