Почему dnsmasq помещает IP-адрес моего маршрутизатора в /etc/resolv.conf вместо 127.0.0.1?

Почему dnsmasq помещает IP-адрес моего маршрутизатора в /etc/resolv.conf вместо 127.0.0.1?

У меня возникают проблемы с разрешением DNS в различных контекстах, которые, по-видимому, связаны с моей сетевой конфигурацией.

Я запускаю только dnsmasq-baseустановку dnsmasqна двух установках Linux (Lubuntu 12.04 и 12.10). Я не делал ничего особенного для настройки dnsmasq, но думаю, что некоторые другие изменения, которые я сделал ранее, могли привести к неправильной конфигурации при обновлении.

Рабочая конфигурация на машине 'A' с 12.04 настроена /etc/resolv.confна использование 127.0.1.1 (который /etc/hostsустановлен на $HOSTNAME). На машине 'B', где некоторые приложения, такие как OpenVPN, испытывают проблемы с разрешением DNS, /etc/resolv.confустановлен на 192.168.1.1, который является IP моего шлюза. Затрагиваются только некоторые приложения. Например, просмотр веб-страниц работает нормально.

Есть ли идеи, является ли эта разница причиной проблем с разрешением DNS, и почему «B» ведет себя по-другому?

Изменения:

Оба устройства «A» и «B» работают dnsmasq, оба используют DHCP для получения конфигурации DNS, а я использую только dnsmasq для DNS.

Файла нет /etc/dnsmasq.conf. Я понимаю, что это нормально, когда запущен только dnsmasq-base.

Содержимое /etc/resolvconfна двух машинах выглядит идентичным. Никаких посторонних/отсутствующих файлов.

Извините, я не могу более конкретно описать суть проблемы. «Проблема разрешения DNS» была конечной точкой моего обсуждения с технической поддержкой моего VPN-провайдера.

решение1

На машине B, если /etc/NetworkManager/NetworkManager.confсодержит dns=dnsmasq, то resolv.confдолжен содержать только одну строку "nameserver", а именно nameserver 127.0.1.1. 127.0.1.1 — это адрес, по которому слушает локальный сервер имен пересылки, контролируемый NetworkManager. NetworkManager предоставляет этому серверу имен адреса пересылки для использования.

Попробуйте запустить sudo dpkg-reconfigure resolvconfна машине B. Это восстановит необходимую символическую ссылку с /etc/resolv.confна ../run/resolvconf/resolv.conf.

Вы используете сторонний VPN-клиент? Такие клиенты известны тем, что затирают /etc/resolv.confи не восстанавливают его при выходе. Возможно, вам придется делать это sudo dpkg-reconfigure resolvconfкаждый раз, когда вы останавливаете такой клиент.

Еще одна вещь, которую можно попробовать: закомментировать dns=dnsmasqи /etc/NetworkManager/NetworkManager.confперезагрузить. Это отключает контролируемый NetworkManager локальный сервер имен пересылки, у которого есть некоторые известные проблемы.

Связанный контент