1

моя конфигурация dnsmasq была повреждена после обновления до Ubuntu 18.04 с 16.04.

  • systemd-resolved включен и работает
  • dnsmasq включен и работает

Любой DNS-запрос к внешнему миру будет зависать в течение 30 секунд, прежде чем завершится успешно. Запросы к моим локальным хостам (any.mylocal) будут выполнены немедленно.

Если я остановлю dnsmasq (то есть service dnsmasq stop), то все DNS-запросы к внешнему миру будут работать немедленно (но .mylocal, конечно, нет).

В: /etc/dnsmasq.conf

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1

В: /etc/NetworkManager/NetworkManager.conf

[main]
...
# dns=dnsmasq
...

Раскомментирование строки dns = предотвратит ЛЮБОЙ запрос dns.

В: /etc/systemd/resolved.conf

[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=no

В: /etc/resolv.conf

Этот файл является ссылкой на: ../run/resolvconf/resolv.conf, которая содержит:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

В: /etc/nsswitch.conf

passwd:         compat systemd
group:          compat systemd
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns myhostname
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Одно заметное отличие с выводом systemd-resolve --status:

  • Когда запущен dnsmasq, первая строка в Global гласит: DNS Servers: 127.0.0.1
  • При остановленном dnsmasq эта строка отсутствует, глобальный DNS-сервер отсутствует, а первый полезный сервер определен в разделе «Ссылка 2», в котором указан мой шлюз по умолчанию (192.168.1.1).

Любая помощь очень ценится :)

1 ответ1

0

После ночного сна ;-) это то, что я придумал. Я просто вручную добавил несколько общедоступных серверов (1.1.1.1 - это CloudFlare, 8.8.8.8 - это Google)

В: /etc/dnsmasq.conf:

listen-address=127.0.0.1
address=/.mylocal/127.0.0.1
server=1.1.1.1
server=8.8.8.8

Все остальные файлы остались как у меня в вопросе. И systemd-resolved, и dnsmasq включены и работают.

Это заставляет DNS-запросы работать.

Я все еще не считаю это правильным ответом, потому что я предпочел бы использовать DNS, предоставленный сетью, но по крайней мере это работает ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .