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. По мере необходимости, они будут дополняться в данной инструкции.
Linuxoid
OpenSource forever
Ускоряем веб-серфинг с Dnsmasq
Где Linux хранит параметры?
Также в этом файле могут присутствовать параметры: domain и search. В записи domain вводится доменное имя локальной системы, а в записи search приводится список доменов на тот случай, если задается только имя. Если к какой-либо системе пользователь обращается часто, он может ввести имя домена в запись search, а затем использовать в качестве адреса только имя.
При этом порядок работы с ними описан в /etc/host.conf. Например, запись
Ну, что ж. Будем искать ему замену. Запрос к репозитарию Ubuntu “ sudo apt — cache search dns ”, среди предлагаемых решений показал и Dnsmasq, о настройках которого и поговорим дальше.
Возможности Dnsmasq
Различают два типа серверов: сервер умеющий хранить таблицы соответствий между именами и IP-адресами компьютеров (доменные зоны) и кеширующие (forwarding) DNS сервер, которые просто запоминают информацию и при повторном запросе выдают ее из своей памяти. Dnsmasq поддерживает, оба этих режима.
Обновите список пакетов “ sudo apt — get update ” и повторите установку.
Теперь открываем /etc/resolv.conf и добавляем следующую строку ставя ее первой по списку чем указываем, что сервером имен по-умолчанию является локальная система.
prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, host-name,
В этом случае при получении обновления, первой строкой будет вставлена запись nameserver 127.0.0.1
Хотя если хотите, чтобы записи о некоторых DNS серверах сохранились, можно эту строку записать и так (в моем естественно случае).
prepend domain-name-servers 127.0.0.1, 194.44.245.244, 207.46.225.60;
; > DiG 9.3.2 > google.com
;; global options: printcmd
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4
google.com. 170 IN A 64.233.187.99
google.com. 170 IN A 72.14.207.99
google.com. 170 IN A 64.233.167.99
google.com. 158531 IN NS ns4.google.com.
google.com. 158531 IN NS ns1.google.com.
google.com. 158531 IN NS ns2.google.com.
google.com. 158531 IN NS ns3.google.com.
ns1.google.com. 161053 IN A 216.239.32.10
ns2.google.com. 161129 IN A 216.239.34.10
ns3.google.com. 334439 IN A 216.239.36.10
ns4.google.com. 161802 IN A 216.239.38.10
;; Query time: 71 msec
;; WHEN: Tue Nov 14 15:18:58 2006
$ sudo /etc/init.d/dnsmasq restart
Restarting DNS forwarder and DHCP server: dnsmasq.
google.com. 156 IN A 64.233.187.99
google.com. 156 IN A 72.14.207.99
google.com. 156 IN A 64.233.167.99
;; WHEN: Tue Nov 14 15:27:35 2006
Теперь поздравляем себя с успехом :). Как видите, в позиции SERVER стоит локальный компьютер 127.0.0.1 и время ответа составляет уже 9 мс, то есть результата мы добились. Также обратите внимание на отличие в работе. В ответ на запрос dnsmasq показал только A записи, но в нашем случае этого достаточно. Кроме этого dnsmasq может кешировать PTR записи обратного преобразования.
Отличия настроек для ADSL
$ sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf
$ sudo cp /etc/resolv.conf /etc/ppp/resolv.conf
И наконец в файле настроек ADSL соединения /etc/ppp/peers/dsl-provider запретим обновлять resolv.conf комментируя следующую линию :
#usepeerdns
Вот в принципе и все. Настройка DHCP сервера также проста, поэтому при необходимости ее разберете сами. Если все же dnsmasq показался вам достаточно сложным, попробуйте nscd ( Name Service Cache Daemon ), который еще проще в настройках. Dnsmasq имеет один некритичный, но недостаток, после перезагрузки он потеряет всю информацию и процесс наполнения локального кеша начнется сначала. Если вас это не устраивает и необходимо сохранение кеша попробуйте pdnsd, который обладает такой функциональностью. Linux forever!
avatar.png (70.93 KB, Downloads: 0)
2021-06-05 22:42:34 Upload
Alkris2
У вас в настройках, подключения, частный dns сервер отключено стоит?
Ни чего, кроме вк, и пару программ не ставил. Телефон купил неделю назад, настроил по быстрому. и все. Вот и офигел)
впн да, скачал. но этот впн у меня на всех Телефонах был, и с ним не было проблем.
и сейчас стоит на поко про. И классно все.
Может какой-то глюк прошивки? хотя обнова залетела официально, скачал по воздуху и готово.
PavelGennadievich
впн да, скачал. но этот впн у меня на всех Телефонах был, и с ним не было проблем.
и сейчас стоит на поко про. И классно все.
Может какой-то глюк прошивки? хотя обнова залетела официально, скачал по воздуху и готово.
Попробуйте сперва скачать полную прошивку через три точки, если не поможет сбросьте до заводских. Кусок обновления который пришел, мог криво встать
Alkris2
Попробуйте сперва скачать полную прошивку через три точки, если не поможет сбросьте до заводских. Кусок обновления который пришел, мог криво встать
В первый раз, когда появилось это. Я скачал через три точки. Пропало.
прошло дня три, и вот снова появилась.
на заводские я еще не делал.
PavelGennadievich
В первый раз, когда появилось это. Я скачал через три точки. Пропало.
прошло дня три, и вот снова появилась.
на заводские я еще не делал.
уже много раз писали про эту непонятную программу, но ни одинписатель коментов не дал ни какого решения! пишут умники которые увидели знакомые буквы dns. если никто не знает как это решить или отключить, нехер тут умничать. |
PavelGennadievich
В первый раз, когда появилось это. Я скачал через три точки. Пропало.
прошло дня три, и вот снова появилась.
на заводские я еще не делал.
Xiaomi 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.
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 и его использования в 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: