Назад | Перейти на главную страницу

Dnsmasq используется в качестве DNS-сервера сервера, хотя это не должно быть

У меня есть сервер 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