Meu servidor DNS é 192.168.1.152
.
Este DNS é fornecido aos clientes pelo DHCP. Os clientes Windows na minha LAN resolvem nomes corretamente usando esse DNS, mas minha VM Ubuntu não.
A VM está configurada com rede de ponte e está sendo fornecida corretamente ao servidor DNS, mas meus nomes de host locais não estão sendo resolvidos pelo nslookup ou pelos navegadores.
Aqui está um nslookup
dos meus domínios locais:
# nslookup unraid.local
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find unraid.local: SERVFAIL
Aqui está o que deve ser resolvido usando meu servidor DNS:
# nslookup unraid.local 192.168.1.152
Server: 192.168.1.152
Address: 192.168.1.152#53
Name: unraid.local
Address: 192.168.1.152
/etc/resolv.conf
tem um servidor de nomes errado:
# 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
Eu executei esse comando. Em Servidores DNS, de forma confusa, ele especifica o servidor correto (e meu gateway padrão).
root@ubuntu:~# 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 2 (ens33)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.1.152
192.168.1.1
Não quero "codificar" o IP do servidor DNS em um arquivo de configuração porque não poderei resolver quando mudar de rede.
Como posso fazer com que o resolvconf e o NetworkManagerautomaticamentedefinir o IP do servidor DHCP em /etc/resolv.conf
?
Responder1
Solução temporáriasem necessidade de reconfiguração se o IP do DNS mudar:
sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
reboot
Responder2
Tente editar /etc/systemd/resolved.conf
, adicionando o servidor DNS desejado:
mude isso:
[Resolve]
#DNS=
para isso (mas use o que você quiser - este é um exemplo):
[Resolve]
DNS=192.168.1.152
depois disso, reinicie o serviço:
service systemd-resolved restart
E quando você verificar o status, você deverá ver
$ systemd-resolve --status
Global
DNS Servers: 192.168.1.152
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
Responder3
Finalmente consegui uma solução para este problema para o Ubuntu 17.10. Por padrão, esta versão do Ubuntu usa o systemd-resolved
, que espero que seja estável para as próximas versões.
Para usar o DNS personalizado em vez do cache local resolvido pelo systemd, faça o seguinte:
adicione novos servidores de nomes. Edite o arquivo
/etc/systemd/resolved.conf
como sudoer. Aqui comentei a entrada DNS e coloquei meu DNS[Resolve] DNS=10.96.0.10 8.8.8.8 8.8.4.4
cancelar o link simbólico real para
/etc/resolv.conf
- crie um novo link simbólico
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf
- reinicie o serviço
sudo service systemd-resolved restart
- reinicie o gerenciador de rede
sudo systemctl restart networking
E agora, se você procurar um nome fornecido pelo seu add DNS, deverá ver o registro resolvidodig nexus.default.svc.cluster.mydomain
O último passo é atualizar a ordem de resolução /etc/nsswitch.conf
, colocando o DNS antes do mdns4_minimal
hosts files dns mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] myhostname
Responder4
No meu sistema encontrei um link simbólico incorreto: /etc/resolv.conf
era um link simbólico que aponta para/run/systemd/resolve/stub-resolv.conf
Este arquivo contém apenas uma linha:
nameserver 127.0.0.53#53
Como resultado, muitas vezes faltava a pesquisa de DNS da rede local.
Então, em vez disso, mudei /etc/reolv.conf
para apontar para/run/systemd/resolve/resolv.conf
e agora funciona corretamente.