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...