dnsmasq что это такое
Установка и примеры настройки Dnsmasq
Данная инструкция будет состоять из двух основных частей — установка программного обеспечения и примеры по его настройки под различные задачи. Мы рассмотрим примеры работы на системах Linux Ubuntu и Rocky Linux (CentOS).
Установка, настройка системы и запуск
1. Установка выполняется немного, по-разному, в зависимости от выбранного дистрибутива Linux. Рассмотрим примеры систем на базе Deb и RPM.
а) Для Debian / Ubuntu (Deb):
apt install dnsmasq
б) Для Rocky Linux / CentOS (RPM):
yum install dnsmasq
2. После установки разрешим автозапуск сервиса.
systemctl enable dnsmasq
Для систем на базе RPM также необходимо запустить сервис:
systemctl start dnsmasq
3. Настраиваем брандмауэр. Нам необходимо открыть UDP порт 53.
Как правило, используется 2 системы управления netfilter — iptables и firewalld. Рассмотрим обе.
а) При использовании iptables (как правило, для систем на базе Deb):
б) При использовании firewalld (как правило, для систем на базе RPM):
4. Проверяем работоспособность сервиса. На любом из компьютеров в сети делаем запрос при помощи nslookup:
nslookup dmoks.ru 192.168.0.15
* где 192.168.0.15 — адрес в сети нашего сервера, куда мы установили dnsmasq.
Мы должны получить ответ на подобие:
Server: 192.168.0.15
Address: 192.168.0.15#53
Non-authoritative answer:
Name: dmosk.ru
Address: 92.53.96.18
Наш dnsmasq установлен и готов к дальнейшей настройке.
Примеры настройки dnsmasq
Переходим к основной части инструкции. Приведем примеры использования и соответствующей настройки dnsmasq.
1. Перевод запросов на другой DNS-сервер для определенного домена
Предположим, у нас есть задача — переводить все запросы для имен с доменом consul на другой DNS-сервер, который находится в нашей сети. Также, данный сервер слушает не на стандартном для NS-сервера порту (53), а на порту 8600. Кстати, это реальный пример работы при настройке кластера consul.
Создаем конфигурационный файл:
В него добавим одну строку:
* в данном примере мы будем переводить все запросы для домена consul на сервер 127.0.0.1 (в этом примере локальный сервер, но может быть любой) и порт 8600.
Чтобы настройки вступили в силу, перезапускаем dnsmasq:
systemctl restart dnsmasq
2. Настройка кэширования
По умолчанию, dnsmasq работает как кэширующий сервер. Мы же подредактируем настройки.
Создаем конфигурационный файл:
cache-size=10000
all-servers
no-negcache
Чтобы настройки вступили в силу, перезапускаем dnsmasq:
systemctl restart dnsmasq
3. Подмена IP-адресов
Есть несколько вариантов подмены IP-адресов в dnsmasq. Для настройки создадим файл:
В зависимости от ситуации, применяем один из вариантов, описанных ниже.
а) Подмена одного адреса:
* в данном примере если наш сервер получит ответ 1.1.1.1, он его заменит на 2.2.2.2.
б) Подмена адресов в подсети:
* в данном примере все адреса из подсети 1.1.1.0/24 будут заменены на соответствующие адреса подсети 2.2.2.2/24.
* в данном примере адреса в диапазоне от 1.1.1.100 до 1.1.1.200 будут переопределены в адреса в диапазоне от 192.168.0.100 до 192.168.0.200.
После внесения необходимых строк, нужно перезагрузить сервис.
systemctl restart dnsmasq
Это, далеко, не все возможности dnsmasq. По мере необходимости, они будут дополняться в данной инструкции.
MNorin.com
Блог про Linux, Bash и другие информационные технологии
Настройка dnsmasq: DHCP и DNS
Dnsmasq — это программа, поддерживающая работу сразу двух сетевых сервисов, DNS и DHCP. Dnsmasq как сервис имеет ряд преимуществ по сравнению с другими сервисами DNS и DHCP. Во-первых, настройка dnsmasq проста, во-вторых, он нетребователен к ресурсам, в-третьих, он реализует сразу два сервиса, в-четвертых, он гибок и позволяет, например, реализовать обращение по именам к компьютерам в локальной сети, причем сделать это просто и быстро. Именно поэтому он используется как на серверах, так и в embeded-системах, например, в роутерах, и отлично подходит для обеспечения работы небольших сетей.
Установка
Обычно dnsmasq устанавливается на машину, выполняющую роль сетевого шлюза, в небольших сетях обычно именно на нем работают сервисы DHCP и DNS. Поскольку dnsmasq присутствует в репозиториях многих дистрибутивов, его можно установить при помощи менеджера пакетов:
После этого можно приступать к настройке.
Настройка dnsmasq как DHCP
DHCP — это один из базовых сервисов в локальных сетях, благодаря которому отпадает необходимость конфигурировать настройки сети вручную. Он позволяет выдавать автоматически такие настройки как IP-адрес, адрес DNS-сервера и шлюза по-умолчанию, а также резервировать IP-адреса по MAC-адресам.
Для того, чтобы dnsmasq работал как DHCP-сервер, в конфигурационном файле /etc/dnsmasq.conf должны присутствовать следующие строки (они могут уже присутствовать в конфиге, их надо только раскомментировать и исправить):
Эта строка не обязательна, она нужна в том случае, если вы хотите, чтобы хосты, получающие адреса по DHCP, имели FQDN-имя, то есть полное имя, включающее имя домена.
Сетевой интерфейс, на котором будет работать сервис. Обычно основной интерфейс eth0 подключен к провайдеру, поэтому его крайне нежелательно указывать в качестве интерфейса для работы сервиса.
Интервал выдаваемых адресов и время аренды адресов (в данном случае 24 часа).
Резервация IP-адреса по MAC-адресу, чтобы устройство с указанным MAC-адресом всегда получало указанный IP-адрес.
Задать значение опции DHCP с номером 1. Опция с номером 1 — это маска подсети (netmask).
Задать значение опции DHCP с номером 3. Опция с номером 3 — это шлюз по умолчанию (default gateway).
Этих опций в небольшой офисной или домашней сети обычно достаточно.
Список всех опций DHCP можно посмотреть на странице IANA (Internet Assigned Numbers Authority).
После задания настроек надо рестартовать сервис:
Теперь можно задавать настройки на компьютерах в сети на автоматическое получение адресов по DHCP.
Настройка dnsmasq как DNS
DNS — это второй базовый сервис, без которого в локальных сетях не обойтись, если, конечно, вы не планируете обращаться к компьютерам в локальной сети и Интернете по IP-адресам, в чем я сильно сомневаюсь. Dnsmasq работает как кэширующий DNS-сервер. У него есть одна полезная особенность. Он умеет использовать файл /etc/hosts как источник информации для DNS, что может быть очень полезно. Например, если есть какой-то локальный сервис, с которым работают пользователи в локальной сети, они могут к нему обращаться по имени, а не по адресу, адрес будет запрашиваться у DNS-сервера, который будет возвращать IP-адрес, к которому необходимо обращаться.
Настройка dnsmasq как DNS по сути не отличается от настройки как DHCP, поскольку все настройки хранятся в том же файле — /etc/dnsmasq.conf
Самое первое, что необходимо, — это название домена
Для определенной подсети можно указать отдельное имя домена:
И точно так же можно указать имя домена для интервала адресов:
Основная функция DNS-сервера — это преобразование доменных имен в IP-адреса и наоборот, но DNS-серверов даже в локальной сети может быть несколько. Поэтому может потребоваться указать для определенных доменов адреса DNS-серверов, на которые должны отравляться запросы:
Аналогично указывается сервер для обратной зоны:
В конфигурационном файле также можно указать соответствие имени IP-адресу.
Запись типа A в прямой зоне DNS (сопоставляющей IP-адрес запрошенному имени):
На любое имя хоста *.extdomain.net возвращается адрес 127.0.0.1.
Эта запись создает алиас для локального имени sambaserver, чтобы к нему можно было обращаться по более короткому имени smb.
По умолчанию dnsmasq использует файл /etc/hosts для сопоставления имен хостов IP-адресам, но это тоже можно изменить. Если вы не хотите использовать /etc/hosts, вы можете указать это при помощи опции
Если же вы хотите использовать совместно с /etc/hosts еще один файл аналогичной структуры, для этого есть опция
Кроме задания собственных записей DNS можно изменять информацию, получаемую от внешних DNS-серверов путем подмены полученного IP-адреса. Для замены одного адреса:
Если при запросе доменного имени от внешнего DNS-сервера мы получим IP-адрес 1.2.3.4, то мы подменим его на адрес 5.6.7.8. Можно осуществлять подмену целыми подсетями:
Такая запись подменит любой адрес из подсети 1.2.3.0/24 на адрес из подсети 5.6.7.0/24. Если же вам необходимо подменять определенный интервал адресов, то такая возможность тоже есть:
Эта запись подменит адреса из интервала 10.0.0.10-10.0.0.40 на адреса 192.168.0.10-192.168.0.40
Для того, чтобы обращения к DNS шли именно на dnsmasq на том же сервере, где он сам работает, необходимо указать первой записью в /etc/resolv.conf следующую строку:
Сам dnsmasq будет игнорировать эту запись, поскольку предполагает, что эта запись обозначает его собственный сервис, он начинает использование записей с указанием серверов имен со следующей записи, в которой указывается уже внешний DNS-сервер.
Во многих системах /etc/resolv.conf генерируется автоматически при получении адреса от провайдера по DHCP, поэтому если просто записать эту строчку руками, при переподключении основного сетевого интерфейса файл будет перезаписан и эта строка исчезнет. Этого можно избежать, если раскомментировать в файле /etc/dhcp/dhclient.conf (или /etc/dhcp3/dhclient.conf, в зависимости от системы) строчку
Тогда даже при получении списка DNS-серверов по DHCP первой строчкой в /etc/resolv.conf будет строчка «nameserver 127.0.0.1».
И еще одна опция, которая может вам пригодиться, если вы хотите использовать свой список DNS-серверов:
Файл, который указывается в этой опции, должен иметь такую же структуру, как и /etc/resolv.conf. При наличии этой опции будет использован указанный файл вместо /etc/resolv.conf. И таких записей может быть больше одной.
А если необходимо просто указать несколько DNS-серверов, на которые будут форвардиться запросы, это можно сделать при помощи записи нескольких строчек с опцией server:
Вот, в общем, и всё. И не забывайте после изменения настроек рестартовать dnsmasq командой
Dnsmasq
dnsmasq — это простой DHCP/DNS сервер, который можно использовать в локальной сети до 1000 клиентов. Его основные особенности — простота настройки и небольшой расход системных ресурсов. Он также поддерживает IPv6.
Contents
Установка
USE-флаги
Выберите нужные USE-флаги:
USE flags for net-dns/dnsmasq Small forwarding DNS server
auth-dns | Add support for acting as an authorative DNS server. |
conntrack | Add support for Linux conntrack connection marking. |
dbus | Enable dbus support for anything that needs it (gpsd, gnomemeeting, etc) |
dhcp | Enable support for acting as a DHCP server. |
dhcp-tools | Install extra command line tools for manually managing DHCP leases. |
dnssec | Enable support DNSSEC validation and caching. |
dumpfile | Include code to dump packets to a libpcap-format file for debugging |
id | Whether report *.bind CHAOS info to clients, otherwise forward such requests upstream instead |
idn | Enable support for Internationalized Domain Names |
inotify | Enable inotify filesystem monitoring support |
ipv6 | Add support for IP version 6 |
libidn2 | Enable support for Internationalized Domain Names, via net-dns/libidn2 rather than net-dns/libidn |
loop | Include functionality to probe for and remove DNS forwarding loops |
lua | Enable Lua scripting support |
nettlehash | Use hashing functions from dev-libs/nettle |
nls | Add Native Language Support (using gettextGNU locale utilities) |
script | Enable support for calling scripts when leases change. |
selinux | !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur |
static | !!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically |
tftp | Enables built in TFTP server for netbooting. |
Emerge
Затем установите пакет net-dns/dnsmasq:
Конфигурация
Поведением dnsmasq можно управлять с помощью следующих ресурсов:
Сервис
OpenRC
Если необходима автоматическая загрузка при старте, добавьте dnsmasq на уровень запуска по умолчанию:
Чтобы запустить сервсис сейчас:
Настройка сервиса
В /etc/conf.d/dnsmasq можно настроить параметры командной строки, подаваемые демону dnsmasq при его запуске.
Основной файл конфигурации
Пример файла конфигурации:
После редактирования файла конфигурации нужно перезапустить (restart) сервис — перезагрузка (reload) поддерживается, но для других ресурсов.
Файл hosts
После обновления /etc/hosts dnsmasq должен получить сигнал SIGHUP, чтобы перезагрузить настройки. Это также можно сделать с помощью команды reload из init-скрипта:
Дополнительный файл hosts
Так же как и со стандартным файлом hosts, сигнал SIGHUP перезагружает файл.
Upstream сервера имен
Возможности
Dnsmasq поддерживает DNS, TFTP, PXE, router advertisements и сервисы DHCP. Он является гибкой утилитой управления сетью для небольших и средних по размеру сетей.
Сервисы DNS
Затем укажите этот файл dnsmasq с помощью файла конфигурации:
Чтобы удостовериться, что сервис работает (после перезапуска, поскольку файл конфигурации был изменен), воспользуйтесь командой dig (она входит в пакет net-dns/bind-tools) для того, чтобы попросить сервер DNS (запущенный на localhost в следующем примере) разрешить локальный или удаленный адрес:
DNSSEC
Dnsmasq может проверять достоверность данных DNSSEC во время передачи данных. Это можно реализовать, добавив следующие строки в файл конфигурации:
Trusted anchor можно найти на сайте iana.org. После этих изменений, если проверка достоверности не удастся, dnsmasq вернет SERVFAIL и не вернет никаких данных DNS. Если проверка достоверности завершается успехом, dnsmasq устанавливает флаг ad. В случае, если домен не поддерживает DNSSEC, dnsmasq ведет себя, как и раньше.
Сервисы DHCP
Например, для того, чтобы включить настройку адреса IPv6 посредством router advertisement (RA) с бесконечной арендой, и настройку адреса IPv4 также с бесконечной арендой:
Использование
Этот раздел содержит описание различных вариантов использования (обслуживания и практических задач) сервиса dnsmasq.
Сброс аренды
Клиенты, у которых был обновлен сетевой интерфейс, что привело к изменению MAC-адреса, могут не сразу получить нужный IP-адрес. Это происходит оттого, что сервис dnsmasq предоставил этот IP-адрес старому MAC-адресу и ожидает истечения аренды этого адреса, прежде чем присвоить новый.
Перезагрузка неосновных настроек конфигурации
После изменения этих файлов сигнал SIGHUP заставит dnsmasq перезагрузить эти настройки.
avatar.png (70.93 KB, Downloads: 0)
2021-06-05 22:42:34 Upload
Alkris2
У вас в настройках, подключения, частный dns сервер отключено стоит?
Ни чего, кроме вк, и пару программ не ставил. Телефон купил неделю назад, настроил по быстрому. и все. Вот и офигел)
впн да, скачал. но этот впн у меня на всех Телефонах был, и с ним не было проблем.
и сейчас стоит на поко про. И классно все.
Может какой-то глюк прошивки? хотя обнова залетела официально, скачал по воздуху и готово.
PavelGennadievich
впн да, скачал. но этот впн у меня на всех Телефонах был, и с ним не было проблем.
и сейчас стоит на поко про. И классно все.
Может какой-то глюк прошивки? хотя обнова залетела официально, скачал по воздуху и готово.
Попробуйте сперва скачать полную прошивку через три точки, если не поможет сбросьте до заводских. Кусок обновления который пришел, мог криво встать
Alkris2
Попробуйте сперва скачать полную прошивку через три точки, если не поможет сбросьте до заводских. Кусок обновления который пришел, мог криво встать
В первый раз, когда появилось это. Я скачал через три точки. Пропало.
прошло дня три, и вот снова появилась.
на заводские я еще не делал.
PavelGennadievich
В первый раз, когда появилось это. Я скачал через три точки. Пропало.
прошло дня три, и вот снова появилась.
на заводские я еще не делал.
уже много раз писали про эту непонятную программу, но ни одинписатель коментов не дал ни какого решения! пишут умники которые увидели знакомые буквы dns. если никто не знает как это решить или отключить, нехер тут умничать. |
PavelGennadievich
В первый раз, когда появилось это. Я скачал через три точки. Пропало.
прошло дня три, и вот снова появилась.
на заводские я еще не делал.
Mi Comm APP
Получайте новости о Mi продукции и MIUI
Рекомендации
* Рекомендуется загружать изображения для обложки с разрешением 720*312
Изменения необратимы после отправки
Cookies Preference Center
We use cookies on this website. To learn in detail about how we use cookies, please read our full Cookies Notice. To reject all non-essential cookies simply click «Save and Close» below. To accept or reject cookies by category please simply click on the tabs to the left. You can revisit and change your settings at any time. read more
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services such as setting your privacy preferences, logging in or filling in formsYou can set your browser to block or alert you about these cookies, but some parts of thesite will not then work. These cookies do not store any personally identifiable information.
Русские Блоги
Подробное объяснение dnsmasq и его использования в openstack и контейнерах
Введение в dnsmasq
Чтобы понять Dnsmasq, он все еще начинает с изучения нейтронной сети с открытым стеком. В сети с открытым стеком dnsmasq предоставляет функции dhcp и dns для указанной сети. Этот процесс в фоновом режиме выглядит следующим образом:
Этот процесс запускается, когда функция подсети dhcp или dns включена.Если функция dhcp или dns нескольких подсетей включена в одной сети, процесс запуска dnsmasq в первый раз в сети будет изменен. То есть, если процесс dnsmasq запущен в первой подсети, подсеть под сетью связи, созданной позже, не перезапустит новый процесс, но изменит процесс, запущенный в первый раз. Следующим образом:
Подсеть запускает процесс dnsmasq:
Две подсети запускают процесс dnsmasq:
Dnsmasq (dnsmasq)
Предоставляет функции DNS-кэша и службы DHCP. Будучи сервером разрешения доменных имен (DNS), dnsmasq может кэшировать DNS-запросы, чтобы увеличить скорость нашего соединения с посещаемыми веб-сайтами. В качестве DHCP-сервера dnsmasq может предоставлять IP-адреса в интрасети и маршрутизацию для компьютеров (облачных хостов) в локальной сети (например, сети в openstack). Две функции DNS и DHCP могут быть реализованы одновременно или по отдельности. dnsmasq является легким и простым в настройке, подходит для отдельных пользователей или сетей с менее чем 50 хостами.
файл конфигурации dnsmasq
Давайте поговорим о конфигурации dnsmasq, файл конфигурации dnsmasq находится в /etc/dnsmasq.conf, или он может находиться в / etc / default / dnsmasq, /etc/dnsmasq.d/ или / etc / dnsmasq из-за вашей другой версии Linux В каталоге d-available / мы также можем указать адрес файла конфигурации при запуске процесса dnsmasq или вызвать другие файлы конфигурации с помощью опции conf-file = в файле конфигурации. Они могут быть гибко определены в соответствии с потребностями.
Ниже приведены выдержки из dnsmasq.conf, которые являются важными и часто используемыми элементами конфигурации и краткими описаниями:
Не читать ни одного сервера. Файл /etc/resolv.conf по умолчанию можно настроить с помощью resolv-файла
не загружать локальный файл / etc / hosts
Добавьте для чтения дополнительные пути к файлам хостов, которые можно указывать несколько раз. Если указано в качестве каталога, все файлы в каталоге читаются.
Прочитать все файлы в каталоге, обновления файлов будут прочитаны автоматически
Укажите пользователей и группы
Укажите порт DNS, по умолчанию 53, установите порт = 0, чтобы полностью отключить функцию DNS, использовать только DHCP / TFTP
Установить размер кеша DNS (единица измерения: количество разрешений DNS)
Кэш неизвестного доменного имени не кэшируется. По умолчанию dnsmasq кэширует неизвестное доменное имя и возвращает его непосредственно клиенту.
Укажите номер пересылки DNS-запроса
Определите адрес, который отслеживает dnsmasq. По умолчанию контролируется все сетевые карты на этом компьютере. Чтобы использовать службу dnsmasq на хосте в локальной сети, укажите IP-адрес этого компьютера.
address включает разрешение доменных имен, то есть настраиваемое разрешение записи, следующим образом: все доменные имена при доступе к demon.com будут преобразованы в 127.0.0.1
#serverSpecify, какой DNS-сервер используется программой dnsmasq для разрешения. Для разных сайтов разные доменные имена могут использоваться для соответствующего разрешения.
# Для служб Google используйте разрешение Google для DNS
Определите, где dnsmasq получает адрес вышестоящего DNS-сервера, по умолчанию его получают из /etc/resolv.conf
Указывает, что разрешение DNS выполняется строго сверху вниз в порядке в файле resolv-файла, пока первое разрешение не будет успешным
Привязать интерфейс, открыть этот пункт будет слушать только указанный интерфейс.
Недавно добавленный интерфейс также связан.
Ограничьте сетевые интерфейсы, которые слушает Dnsmasq
Укажите интерфейс, который нужно исключить из прослушивания, с высоким приоритетом, чтобы исключить, вы можете использовать подстановочный знак ‘*’
Указывает интерфейс, который не предоставляет службы DHCP или TFTP, а предоставляет только службы DNS.
dhcp динамически распределяемый диапазон адресов
Статическая привязка службы DHCP
Установить аренду по умолчанию
Аренда сохранена в следующем файле
Игнорирование запроса DHCP для MAC-адреса ниже
Домен, в котором находится dhcp
Командная строка dnsmasq и анализ параметров процесса в openstack
После прочтения файла конфигурации давайте взглянем на параметры процесса dnsmasq, которые можно настроить:
Вы можете обратиться к документации на английском языке:анализ параметров командной строки dnsmasq
Выше приведены некоторые часто используемые элементы конфигурации, если нет объяснения, вы можете проверить анализ файла конфигурации выше
Далее мы проанализируем параметры процесса dnsmasq в openstack в приведенной выше конфигурации:
установка dnsmasq
Dnsmasq также установлен в контейнере, следующая установка для версии centos7:
Прост в использовании:
Настройка тестовой среды dnsmasq
Простая топология сети выглядит следующим образом: создайте следующую сеть в среде ovs + kvm, процесс dnsmasq прослушивает устройство DHCP tap1, широковещательные пакеты dhcp, отправленные хостом host1 и host2, принимаются tap1, процесс dnsmasq найдет соответствующий mac в соответствующем файле хоста. Ip доставляется на хост. Если он не найден, хост не может получить ip.
Для этой среды, пожалуйста, смотрите:Настройка тестовой среды
запуск и тестирование процесса dnsmasq
Запишите mac двух хостов в соответствующий файл хоста:
Введите виртуальную машину для автоматического получения теста ip:
запуск и тестирование контейнера dnsmasq
Чтобы запустить dnsmasq в контейнере, контейнер должен быть запущен в сетевом режиме net = host, чтобы можно было отслеживать интерфейс dhcp_tap на хосте и сохранять такие файлы, как host и pid, в контейнере.
Начать процесс в контейнере
После тестирования, когда виртуальная машина получает IP, процесс сообщает о следующей ошибке:
Операция не разрешена, вот из-за проблемы с разрешениями, при создании контейнера вы можете дать режим привилегий.
Повторно протестируйте, виртуальная машина может нормально получить IP: