Настройка DNS клиента в CentOS/RHEL 7 & 8 совместно с dnsmasq при помощью Ansible¶
Общее описание¶
DNS-клиент — программа (или модуль в программе), обеспечивающая определение IP-адреса узла по его полному имени. Dnsmasq — легковесный и быстроконфигурируемый DNS, является более современным подходом к настройке сети.
Dnsmasq предоставляет следующие возможности:
- Простая конфигурация DNS-машин за межceтевым экраном, независимо от особенностей и доступности DNS-серверов провайдера.
- Мгновенная передача клиентам информации о недоступности сайта, если внешнее соединение прервано.
- Может переопределить другие имена для глобальных IP-адресов без необходимости исправлять файл /etc/hosts на каждой машине.
- Кэширует интернет-адреса (A-записи и записи AAAA) и PTR-записи, снижая нагрузки на внешние серверы и повышая производительность (особенно на модемных соединениях).
- Пользователи могут настроить Dnsmasq для отправки запросов для определённых доменов на обработку внешним серверам.
- Поддерживает MX-записи и может вернуть MX-записи для любой или всех локальных машин.
- Поддерживает NAPTR-запись, что позволяет использовать регулярные выражения, основанные на переписывании доменных имён, которые затем могут быть использованы в качестве URI, дополнительных доменных имён для поиска.
- Некоторые провайдеры переписывают NXDOMAIN-ответы (домен не существует) от DNS-серверов. Это заставляет веб-браузеры искать страницы в домене, который не существует. Dnsmasq может отфильтровать такие записи.
Примечание
В процессе выполнения роли отключается настройка управление DNS через NetworkManager
, настройка производится только через dnsmasq.conf
и resolv.dnsmasq
.
Внимание, при ошибке
Так как DNSMASQ является альтернативным DNS сервером, данное решение не следует применять на серверах с другими DNS службами.
Параметры¶
Название переменной | Тип переменной | Значения по умолчанию | Описание |
---|---|---|---|
dns_cache | string | '1000' | Количество кешируемых записей. |
dns_domain | string | 'ansible_domain' | Задает локальное имя клиента. |
nameserver | array | '1.1.1.1','8.8.8.8' | Список DNS серверов. |
Примеры¶
inventory/hosts
[example-servers]
<host_name> ansible_ssh_host=<host_ip> ansible_ssh_user=<user_name_for_connect>
[example-servers:vars]
ansible_connection=ssh
dns_cache='1111'
nameserver=['1.1.1.1','1.0.0.1','8.8.8.8','8.8.4.4']
Дополнительные материалы¶
Последнее обновление: July 10, 2024