Dnsmasq quebrado após atualização para Bionic: funciona, mas leva cerca de 30 segundos para resolver qualquer dúvida

Dnsmasq quebrado após atualização para Bionic: funciona, mas leva cerca de 30 segundos para resolver qualquer dúvida

minha configuração do dnsmasq foi quebrada após atualizar para o Ubuntu 18.04 a partir de 16.04.

  • systemd-resolved está habilitado e em execução
  • dnsmasq está ativado e em execução

Qualquer consulta DNS para o mundo externo ficará suspensa por cerca de 30 segundos antes de ser bem-sucedida. As consultas aos meus hosts locais (anything.mylocal) serão bem-sucedidas imediatamente.

Se eu parar o dnsmasq (ou seja service dnsmasq stop), todas as consultas DNS para o mundo externo funcionarão imediatamente (mas .mylocal, é claro, não).

Em: /etc/dnsmasq.conf

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

Em: /etc/NetworkManager/NetworkManager.conf

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

Remover o comentário da linha dns= impedirá QUALQUER consulta de DNS.

Em: /etc/systemd/resolved.conf

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

Em: /etc/resolv.conf

Este arquivo é um link para: ../run/resolvconf/resolv.conf, que contém:

# 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

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

Uma diferença notável com a saída de systemd-resolve --status:

  • Com o dnsmasq em execução, a primeira linha em Global diz:DNS Servers: 127.0.0.1
  • Com o dnsmasq parado, esta linha está ausente, não há servidor DNS global e o primeiro servidor útil é definido na seção Link 2, que especifica meu gateway padrão (192.168.1.1)

Qualquer ajuda é muito apreciada :)

Responder1

Depois de uma noite de sono ;-) foi isso que eu descobri. Acabei de adicionar manualmente alguns servidores upstream públicos (1.1.1.1 é do CloudFlare, 8.8.8.8 é do Google)

Em: /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 os arquivos restantes são deixados como na minha pergunta. Tanto o systemd-resolved quanto o dnsmasq estão habilitados e em execução.

Isso faz com que as consultas DNS funcionem.

Ainda não considero esta a resposta correta, pois preferiria usar o DNS fornecido pela rede, mas pelo menos funciona...

informação relacionada