Рассмотрим частную сеть из нескольких сайтов, каждый из которых имеет свой собственный DNS-сервер (-ы) для разрешения внутренних частных IP-адресов / хостов. DHCP не требуется.
любой на сервере работает dnsmasq, 127.0.0.1 установлен как DNS (в пределах resolv.conf
) и dnsmasq указывает на локальные DNS-серверы. Похоже, что dnsmasq действует только как DNS-прокси.
В чем преимущество этой конфигурации по сравнению с обычной конфигурацией, когда каждый сервер напрямую указывает на локальные DNS-серверы? Я ожидаю, что в этом случае имена хостов / IP-адреса также кэшируются, не так ли?
dnsmasq
может быть вариант. Вы можете получить некоторую производительность, если включите кеш, вы можете добавить некоторые пользовательские конфигурации (например, отправлять «локальные» запросы в DNS вашего сайта и «общедоступные» в 8.8.8.8 Google) и лучший мониторинг действий DNS. Но лично я бы оценил другие альтернативы, такие как Power DNS Recursor ( https://www.powerdns.com/recursor.html ) или распознаватель узлов ( https://www.knot-resolver.cz/ )
Эти DNS-преобразователи имеют больше возможностей, чем dnsmasq
(например, поддержка RPZ), поэтому вам следует оценить их, если вам интересно иметь локальные преобразователи.
Многие недавние дистрибутивы Linux полагаются на dnsmasq
для разрешения их имен см. это объяснение. Основная причина:
Это было сделано, чтобы лучше поддерживать разделенный DNS для пользователей VPN и лучше обрабатывать сбои и откаты DNS. Этот сервер dnsmasq не является кэширующим сервером по соображениям безопасности, чтобы избежать рисков, связанных с заражением локального кеша и перехватом пользователями чужих DNS-запросов в многопользовательской системе.
Я также нахожу это довольно раздражающим, поскольку я чувствую, что теряю контроль над своим управлением DNS и не нахожу его таким удобным, как предполагалось, больше кэширования, больше отладки в случае сложных настроек и так далее.
К счастью, от такого поведения довольно просто избавиться, закомментировав следующую строку:
dns=dnsmasq
В /etc/NetworkManager/NetworkManager.conf
и перезапустите Сетевой менеджер:
# sudo systemctl restart network-manager
# sudo service network-manager restart