O DNS do systemd, estimado em 127.0.0.53, parece estar funcionando, exceto quando eu consulta máquinas locais por nome. Mas se eu os procurar e especificar especificamente o servidor DNS local (meu roteador), receberei a resposta correta. Mas o arquivo de configuração diz que também está usando o roteador como o endereço de pesquisa. Alguma ideia?
Estou executando o Ubuntu 18.04 no meu laptop Dell.
Resultados incorretos:
$ nslookup web1
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find web1: SERVFAIL
Também falha
$ nslookup -i wlp3s0 web1
nslookup: couldn't get address for 'web1': not found
Resultados corretos:
$ nslookup web1 192.168.1.1
Server: 192.168.1.1
Address: 192.168.1.1#53
Name: web1
Address: 192.168.1.107
Informações de configuração systemd-resolve
$ systemd-resolve --status
Global
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 3 (wlp3s0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.1
DNS Domain: wp.comcast.net
Link 2 (enp2s0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Informações de configuração NetworkManager
$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
Então, como faço para que o nslookup retorne a resposta correta? O link 3 parece ser a informação correta (minha conexão wifi) e meu DNS no roteador está retornando a resposta correta, mas o cache local nunca tenta procurar o endereço (ou assim parece).
fonte
nslookup -i wlp3s0 web1
Respostas:
Seu arquivo resolv.conf não estava apontando para o lugar errado -
../run/systemd/resolve/stub-resolv.conf
é para onde deveria apontar por padrão.O problema é que
systemd-resolved
não passa nomes não pontilhados para o DNS. Aparentemente, isso está funcionando "como projetado". Veja este problema do github que afirma que "resolvido nunca permitirá que pesquisas de rótulo único vazem no DNS unicast".Se você concorda ou não com o raciocínio nessa edição github, não é uma maneira de corrigir isso. Nem sequer é necessário fazer alterações na configuração padrão da sua máquina Ubuntu:
Primeiro, o DNS da sua LAN deve ter um nome de domínio.
Se você estiver usando o dnsmasq, adicione o seguinte
/etc/dnsmasq.conf
no servidor DNS:Agora você deve conseguir resolver os nomes de host da LAN se adicionar o domínio:
Segundo, verifique se o nome do domínio da sua LAN também está definido no servidor DHCP, se for diferente do servidor DNS. No meu servidor DHCP (meu roteador), essa configuração é chamada apenas de "Nome de Domínio".
Se você renovar sua concessão de DHCP na sua caixa Ubuntu, deverá ver uma diretiva de pesquisa em
/run/systemd/resolve/stub-resolv.conf
:Agora, olhando para cima,
web1
será expandido paraweb1.your-domain
, o que resolverá o uso do DNS.Observe que se você usar em
dig
vez denslookup
,dig
não usará o caminho de pesquisa por padrão - use sua+search
opção para habilitá-lo.fonte
/etc/resolv.conf
ou no resultado de umnmcli -g all
ou desystemd-resolve --status
? Talvez tente analisar o que está em sua concessão de DHCP ?Encontrei a correção que funcionou para mim.
meu arquivo resolv.conf estava apontando para o lugar errado. Isso parece um bug no Ubuntu, como aconteceu no meu laptop (a máquina em que notei esse problema) e em uma nova instalação do Ubuntu 18.04 Server.
O padrão
Eu apaguei isso e apontei para o arquivo correto. Após a reinicialização, isso resolveu meu problema. E até consegui mudar de rede no meu laptop e o DNS mudou corretamente. É claro que em redes externas não consigo resolver nenhuma das minhas máquinas locais, mas isso é esperado. Assim que eu volto à minha rede local, todas as máquinas locais resolvem corretamente porque meu roteador é o DNS.
O conserto
Depois disso, tudo funcionou como eu esperava e o 127.0.0.53 não está mais sendo usado.
Os resultados corretos
fonte
ubuntu-bug resolvconf
.systemd-resolve
é fornecido pelosystemd
pacote , então tenteubuntu-bug systemd
.resolv.conf
está configurado dessa maneira para o DNS da rede de ponte docker, certo?