Como configurar a pesquisa de DNS local no Ubuntu 16.10?

9

Eu recentemente instalei o Ubuntu 16.10 e fiz um backup do meu diretório anterior do rsync do kubuntu 16.04 para a minha nova instalação. As coisas funcionam bem, mas não consegui resolver os endereços locais apesar de muitas tentativas e erros.

Toda a rede parece estar funcionando perfeitamente. Navegação na Internet, pesquisa de DNS de endereços externos, ssh, etc. são ótimos. Localmente, posso acessar máquinas via ssh com seus endereços, mas não seus nomes. Tudo funciona bem no nautilus / samba, o que significa que o WINS funciona. O único problema, parece, é o DNS da rede local. Eu tenho avahi-daemon instalado e funcionando, como veio com o Ubuntu.

Eu incluí algumas soluções de problemas, usando < < > > para encurtar porções redundantes ou corretamente em funcionamento.

$ nmcli g
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 

$ ping tendril8 << or tendril8.local >>
ping: tendril8: Name or service not known

$ ping gateway
PING gateway (192.168.1.1) 56(84) bytes of data.
64 bytes from gateway (192.168.1.1): icmp_seq=1 ttl=64 time=4.16 ms

$ ping askubuntu.com
PING askubuntu.com (151.101.129.69) 56(84) bytes of data.
64 bytes from 151.101.129.69 (151.101.129.69): icmp_seq=1 ttl=49 time=43.0 ms

$ nslookup askubuntu.com
Server:     127.0.1.1
Address:    127.0.0.1#53
<< followed by several IP addresses >>

$ nslookup tendril8 << or tendril8.local >>
Server:     127.0.1.1
Address:    127.0.0.1#53
** server can't find tendril8: NXDOMAIN

$ cat /etc/resolv.conf
# 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
nameserver 127.0.1.1

$ ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Oct 15 19:30 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the 'glibc-doc-reference' and 'info' packages installed, try:
# 'info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat
gshadow:        files

hosts:          files resolve [!UNAVAIL=return] mdns4_minimal dns [NOTFOUND=return]
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Nota: Eu gastei muito tempo olhando para soluções mais antigas, antes do Ubuntu migrar para systemd. resolvido em 16.10. Eles não funcionaram para mim e eu não acredito que seja uma pergunta duplicada para outras similares com configurações anteriores do Ubuntu.

    
por mightypile 16.10.2016 / 20:03

3 respostas

17

Se eu entendi sua pergunta corretamente, você não pode resolver seus nomes de host locais.

Por causa disso, eu tive o mesmo problema com uma nova instalação de 16.10, e isso acaba sendo um problema conhecido ( link ) relacionado a libnss-resolve no systemd.

A solução no meu caso foi revisar seu arquivo /etc/nsswitch.conf e observar especificamente como o NSS resolve seus hosts:

hosts: files resolve [!UNAVAIL=return] mdns4_minimal [NOTFOUND=return] dns myhostname

Essa lógica parece falhar na resolução do nome do host antes mesmo de chegar ao mDNS.

A edição da linha de hosts de volta para uma versão anterior a 16.10 corrige esse erro lógico aparente:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

O link de relatório de bugs incluído sugere que uma versão futura do pacote systemd possa eventualmente corrigir este problema.

Rich

    
por richbl 17.10.2016 / 17:45
6

Uma solução alternativa que edita automaticamente /etc/nsswitch.conf está removendo [ edit: e reinstalando] libnss-resolve :

sudo apt purge libnss-resolve
sudo apt install libnss-resolve
    
por nitrogen 14.12.2016 / 08:37
1

Eu tive esse problema com uma nova instalação do Ubuntu 17.04. Eu escolhi mudar de usar systemd-resolved para dnsmasq no meu laptop (o servidor de nomes também está usando dnsmasq). Eu segui os passos em Como desabilitar o systemd-resolvido e resolve DNS com dnsmasq?

    
por Edward Moffett 17.07.2017 / 19:06