Оглавление |
---|
Информация | ||
---|---|---|
| ||
|
Общая информация
Для повышения устойчивости работы доменных клиентов можно использовать локальное кеширование данных службы разрешения имен (DNS). Использование кеширования позволяет устранить случайные ошибки в работе клиентов, возникающие при временной недоступности серверов DNS. Кеширование может применяться в любых доменах (доменах ALD Pro
/FreeIPA
, Samba, Windows AD). Далее предполагается, что управление сетью осуществляется с помощью службы NetworkManager
. Для кеширования используется служба dnsmasq.
Установка пакетов
Служба кеширования dnsmasq представлена пакетом dnsmasq. Пакет может быть установлен с помощью графического менеджера пакетов synaptic или командой:
Command |
---|
sudo apt install dnsmasq |
Настройка кеширования
Для настройки кеширования:
Создать файл в каталоге /etc/
dnsmasq.d/ с произвольным именем, расширением .conf и следующим содержимым:
Блок кода all-servers
Например, файл /etc/dnsmasq.d/dnacache.conf:
Command echo "all-servers" | sudo tee /etc/dnsmasq.d/dnacache.conf Опция all-servers включает одновременную (параллельную) отправку запросов всем серверам если первый опрошенный сервер не ответил. При этом будет использован первый полученный ответ.
Создать файл в каталоге /etc/NetworkManager/conf.d/ с произвольным именем, расширением .conf и следующим содержимым:
Блок кода [main] dns=dnsmasq
Например, файл /etc/NetworkManager/conf.d/00-use-dnsmasq.conf:
Command echo -e "[main]\ndns=dnsmasq" | sudo tee /etc/NetworkManager/conf.d/00-use-dnsmasq.conf - Настроить списки серверов DNS, к которым будут направляться запросы:
Если используется автоматическое получение IP-адресов через службу DHCP, то включить принудительное добавление адреса локальной петли в начало списка серверов. Для этого в файл /etc/dhcp/dhclient.conf добавить строчку:
Блок кода prepend domain-name-servers 127.0.0.1;
Если автоматическое получение IP-адресов через службу DHCP не используется, то серверы можно указать в конфигурации службы dnsmasq
. Например, в созданном в соответствии с п. 1 файле /etc/dnsmasq.d/dnacache.conf. Для этого добавить в файл одну или несколько опций server:
Блок кода server=<IP-адрес_1> server=<IP-адрес_2> ...
Перезапустить службы NetworkManager и dnsmasq:
Command sudo systemctl restart NetworkManager dnsmasq
После выполнения указанных действий в файле /etc/resolv.conf в качестве адреса DNS-сервера будет указан локальный адрес и дополнительные опции:
Блок кода |
---|
# Generated by NetworkManager nameserver 127.0.0.1 |
title | Данная статья применима к: |
---|
options edns0 trust-ad |
Где дополнительные опции:
- edns0 — включение расширений DNS, описанных в RFC2671;
- trust-ad — опция, управляющая обработкой бита AD в ответах серверов DNS. Установленный в ответе бит AD указывает на то, что данные в ответе были проверены в соответствии с протоколом DNSSEC. Чтобы доверять биту AD, локальная система должна доверять как серверу, проверяющему DNSSEC, так и сетевому пути к нему, поэтому требуется явное подтверждение доверия. Если опция trust-ad активна, dnsseq устанавливает бит AD в исходящих DNS-запросах (чтобы включить поддержку бита AD) и сохраняет бит AD в ответах. Без этой опции бит AD в запросах не устанавливается и всегда удаляется из ответов прежде чем они будут переданы приложению. В glibc 2.30 и более ранних версиях (Astra Linux Special Edition 1.7 и ранее) бит AD не устанавливается автоматически в запросах и передается приложениям в ответах без изменений.