Estou usando um Raspberry Pi 3 com o Ubuntu 18.04. Na minha empresa, temos um servidor DNS e alguns domínios com ".local". Eu sei que tecnicamente isso não está correto e deve ser ".lan", porque .local é reservado para DNS multicast. Mas é assim que as coisas são e não podem ser facilmente alteradas. Portanto, na minha máquina Windows, posso executar ping e navegar para esses nomes de domínio sem problemas. No meu Ubuntu, no entanto, eu não posso.
Não consigo usar IPs porque alguns domínios estão na mesma máquina e o servidor da Web IIS organiza as coisas para onde vai.
Eu pesquisei e aparece com bastante frequência:
- https://smallbusiness.chron.com/resolving-local-ubuntu-38861.html
- Por que nenhum dos meus servidores locais resolve?
- servidor ubuntu não resolvendo nomes de host da LAN
No entanto, alterar o /etc/nsswitch.conf não faz o truque para mim. eu tentei
- hosts: arquivos mdns4_minimal [NOTFOUND = return] dns myhostname # default
- hosts: arquivos dns
- hosts: arquivos mdns4_minimal [NOTFOUND = continue] dns myhostname
- hosts: arquivos mdns4 [NOTFOUND = return] dns myhostname
- hosts: arquivos mdns4 [NOTFOUND = continue] dns myhostname
- hosts: arquivos dns mdsn4_minimal myhostname
- hosts: dns
- alguns outros
Nenhum dos quais funcionou. Também tentei reiniciar após uma alteração. Tentei dizer ao avahi que o nome do domínio = alocal no /etc/avahi/avahi-daemon.conf, não funcionou após a reinicialização do serviço, não funcionou após a reinicialização. Depois que isso não funcionou, tentei desativar completamente o serviço avahi-daemon.
sudo systemctl disable avahi-daemon
Após uma reinicialização, tentei algumas permutações no /etc/nsswitch.conf novamente, sem nenhum efeito.
com minhas configurações atuais em hosts (arquivos dns), recebo esta resposta:
dig login.name.local # not the actual name
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33538
;; flags: qr rd ra; QUERY: 1, ANSWER:0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0 IN A
;; Query time: 2msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE rcvd: 56
No entanto, quando instruo o Dig a consultar o servidor diretamente, recebo a resposta correta:
dig @dnsIP login.name.local
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> login.name.local
; (1 server found)
;; global options: +cmd
;; Got answer:
;; WARNING .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57866
;; flags: qr aa rd ra; QUERY: 1, ANSWER:1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;login.name.local. 0 IN A
;; ANSWER SECTION:
login.name.local. 3600 IN A serverIP
;; Query time: 2msec
;; SERVER: dnsIP#53(dnsIP)
;; WHEN: Thu Aug 23 10:51:50 CEST 2018
;; MSG SIZE rcvd: 56
Esta versão do Ubuntu usa o netplan com o gerenciador de rede. O IP DNS correto está definitivamente na lista. (na verdade, é o DNS primário.) Além disso, o dnsIp é o mesmo que serverIP, mas isso não deve ser um problema.
Faça ping ou conecte-se via navegador e isso não funciona, é claro. Nenhum usa a consulta DNS.
Estou sem saber o que fazer. Certamente não podemos mudar para um nome de domínio diferente. Coloquei o nome do servidor em / etc / hosts, mas isso é apenas uma solução temporária.
fonte
Respostas:
Eu enfrentei um problema muito semelhante (se não exatamente o mesmo) no Linux Mint 19 (Tara). Consegui resolvê-lo combinando três informações diferentes. Tudo parece estar relacionado a alterações recentes com o systemd-resolved.
Primeiro, sim, eu precisava configurar o /etc/nsswitch.conf como você fez e esperaria. Enquanto o dns vier antes do mdns, você deve ser bom. Eu terminei com simplesmente:
ref: /unix//a/457172/271210
Antes de atualizar para esta versão do Mint, esta é a única coisa que eu precisava fazer. Agora também acabei fazendo as outras duas alterações abaixo para fazê-lo funcionar ...
Depois disso, configurei meu domínio de pesquisa para que o systemd-resolved funcionasse como eu queria. Então, editei o arquivo /etc/systemd/resolved.conf , a configuração de Domínios na seção [resolver] . No meu caso, acabou parecendo:
ref: /ubuntu//a/1031271/872881
Também mudei a configuração do avahi para outra coisa ("mdns", se bem me lembro, mas isso não importa). Não deve ser exigido, no entanto, pelo meu entendimento. Apenas adicionando para completar.
Mas nada funcionou até eu ligar para o seguinte:
ref: /ubuntu//a/938703/872881
Depois de chamar isso, tudo começou a funcionar perfeitamente e como esperado!
Portanto, é possível que eu realmente não precisei alterar o arquivo /etc/systemd/resolved.conf, mas mantive essa alteração, pois fazia sentido e me permitia digitar apenas o nome de uma máquina, sem o FQDN completo, para que a resolução do DNS funcionasse. .
fonte
A resposta aceita não resolveu meu problema. Não tinha nada a ver com avahi - eu não tinha o serviço avahi instalado. Eu tenho o meu sistema definido para obter seu IP e suas configurações de servidor DNS do DHCP. No entanto, o DNS fornecido pelo dhcp não estava sendo verificado quanto a consultas usando .local
O verdadeiro problema é que o Ubuntu 18.4 tem seu resolv.conf vinculado a um arquivo stub que aponta para o host local para a resolução de nomes. A resolução de nomes DNS do host local significa que o sistema se recusa a procurar nomes .local no servidor DNS fornecido, acreditando (incorretamente) que esses nomes são inválidos. Esta é a configuração padrão do /etc/resolv.conf:
o conteúdo do arquivo stub é (comentários removidos):
a resolução 'real' conf tem a configuração de DNS correta (do dhcp):
Para fazer com que o sistema use seu resolvedor DNS preferido em vez do host local, altere o link simbólico para apontar para /run/systemd/resolve/resolv.conf em vez de /run/systemd/resolve/stub-resolv.conf:
Imediatamente após isso, a resolução do .local começou a funcionar. não há necessidade de reiniciar ou reiniciar qualquer serviço.
fonte
Para mim, o caminho do Ubuntu 18.04 é:
Edite avahi conf:
e altere .local para .alocal:
em seguida, abra resolved.conf:
e remova o comentário e edite domínios:
e finalmente reinicie os serviços:
fonte
Domains
em/etc/systemd/resolved.conf
(e reiniciar o serviço).O que funcionou para mim foi adicionar o DNS local como servidor de nomes
/etc/resolvconf/resolv.conf.d/head
(conforme descrito aqui ).Instale o pacote resolvconf.
Edite
/etc/resolvconf/resolv.conf.d/head
e adicione o seguinte:Reinicie o serviço resolvconf.
A correção deve ser permanente.
fonte
head
arquivo é a fonte usada para gerar/run/resolvconf/resolv.conf
. No entanto, eu também não editaria esse arquivo.Minha situação era semelhante, mas um pouco diferente: usamos nomes de servidores como
myserver
no Windows, mas isso não funcionou no Ubuntu 16.04 e eu tive que usarmyserver.mycompany.local
. Após a atualização para o 18.04, obtive o seguinte comportamento:Eu simplesmente tinha que substituir
myserver.mycompany.local
commyserver
em minhas aplicações.fonte