Dnsmasq no funciona después de la actualización a Bionic: funciona, pero tarda ~30 segundos en resolver cualquier consulta

Dnsmasq no funciona después de la actualización a Bionic: funciona, pero tarda ~30 segundos en resolver cualquier consulta

mi configuración de dnsmasq se rompió después de actualizar a Ubuntu 18.04 desde 16.04.

  • systemd-resolved está habilitado y ejecutándose
  • dnsmasq está habilitado y ejecutándose

Cualquier consulta de DNS al mundo exterior se bloqueará durante unos 30 segundos antes de tener éxito. Las consultas a mis servidores locales (anything.mylocal) se realizarán correctamente de inmediato.

Si detengo dnsmasq (es decir service dnsmasq stop), todas las consultas de DNS al mundo exterior funcionarán inmediatamente (pero .mylocal, por supuesto, no).

En: /etc/dnsmasq.conf

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

En: /etc/NetworkManager/NetworkManager.conf

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

Descomentar la línea dns= evitará CUALQUIER consulta de dns.

En: /etc/systemd/resolved.conf

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

En: /etc/resolv.conf

Este archivo es un enlace a: ../run/resolvconf/resolv.conf, que contiene:

# 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

En: /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

Una diferencia notable con la salida de systemd-resolve --status:

  • Con dnsmasq ejecutándose, la primera línea en Global dice:DNS Servers: 127.0.0.1
  • Con dnsmasq detenido, esta línea está ausente, no hay un servidor DNS global y el primer servidor útil se define en la sección Enlace 2, que especifica mi puerta de enlace predeterminada (192.168.1.1).

Cualquier ayuda es muy apreciada :)

Respuesta1

Después de una noche de sueño ;-) esto es lo que se me ocurrió. Acabo de agregar manualmente algunos servidores públicos ascendentes (1.1.1.1 es de CloudFlare, 8.8.8.8 es de Google)

En: /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

Todos los archivos restantes se dejan como en mi pregunta. Tanto systemd-resolved como dnsmasq están habilitados y ejecutándose.

Esto hace que las consultas DNS funcionen.

Todavía no considero que esta sea la respuesta correcta, porque preferiría usar el DNS proporcionado por la red, pero al menos funciona...

información relacionada