У меня есть сервер DNS-имен коробки, жестко закодированный в / etc / network / interfaces с
dns-nameservers 8.8.8.8
(Мне просто нужно гуглить DNS во время тестирования, используя другой DNS live.)
И затем у меня есть dnsmasq, работающий на коробке, чтобы быть кешем DNS, а также переписать несколько записей DNS, чтобы указать на Apache в качестве прокси.
Теперь по какой-то причине я не смог понять, что ящик использует dnsmasq для своего DNS-сервера, когда dnsmasq запущен, несмотря на то, что DNS-сервер имен тоже установлен. Если у меня dnsmasq настроен на прослушивание на всех интерфейсах и 127.0.0.1, все поиски просто проходят через dnsmasq, включая те, которые должны быть проксированы, поэтому он просто попадает в цикл вместо проксирования. Если я использую не использовать lo и закомментировать прослушивание 127.0.0.1, я вообще не получаю DNS.
except-interface=lo
#listen-address=127.0.0.1
Не существует правила iptables или чего-либо, перенаправляющего весь DNS-трафик, а разрешается доступ только к нашему диапазону IP-адресов.
Должно быть что-то, чего мне не хватает, но я не могу этого понять.
Если dnsmasq отключен, поиски проходят через заданный DNS, если он включен, он проходит через 127.0.0.1
Любые идеи?
Сценарий запуска в Ubuntu и Debian для dnsmasq явно добавляет серверы имен в /etc/resolv.conf при запуске или завершении службы.
Чтобы предотвратить это, вам нужно отредактировать / etc / default / dnsmasq (не /etc/dnsmasq.conf) и добавить строку
DNSMASQ_EXCEPT=lo
Это предотвратит автоматическую установку dnsmasq в качестве сервера имен в resolv.conf, хотя он по-прежнему будет вносить изменения, устанавливая resolv.conf как
nameserver (your nameserver)
nameserver 127.0.0.1