web-dev-qa-db-fra.com

Comment configurer la recherche DNS locale dans Ubuntu 16.10?

J'ai fraîchement installé Ubuntu 16.10 et rsync une sauvegarde de mon répertoire personnel précédent de kubuntu 16.04 à ma nouvelle installation. Les choses fonctionnent bien, mais je n’ai pas pu résoudre les adresses locales malgré de nombreux essais et erreurs.

Tous les réseaux semblent fonctionner parfaitement. La navigation sur Internet, la recherche DNS d'adresses extérieures, ssh, etc. sont excellents. Localement, je peux accéder aux machines via ssh avec leurs adresses, mais pas leurs noms. Tout fonctionne très bien dans Nautilus/Samba, ce qui signifie que WINS fonctionne. Le seul problème, semble-t-il, est le DNS du réseau local. Avahi-daemon est installé et fonctionne comme il est venu avec Ubuntu.

J'ai inclus un peu de dépannage, en utilisant << >> pour raccourcir les portions redondantes ou fonctionnant correctement.

$ 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

Note: J'ai passé beaucoup de temps à chercher des solutions "plus anciennes" avant de passer à Ubuntu vers systemd.resolved in 16.10. Ils n'ont pas fonctionné pour moi et je ne crois pas qu'il s'agisse d'une question en double avec des questions similaires avec des configurations antérieures d'Ubuntu.

9
mightypile

Si je comprends bien votre question, vous ne pouvez pas résoudre vos noms d’hôte locaux.

Sur ce, j'ai eu le même problème avec une nouvelle installation de 16.10, et il s'avère être un problème connu ( https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624071) ) liée à libnss-resol dans systemd.

Dans mon cas, la solution consistait à examiner votre fichier /etc/nsswitch.conf et à noter spécifiquement la façon dont NSS résout vos hôtes:

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

Cette logique semble échouer dans la résolution du nom d'hôte avant même d'arriver à mDNS.

La modification de la ligne d'hôtes dans une version antérieure à 16.10 corrige cette erreur de logique apparente:

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

Le lien de rapport de bogue inclus suggère qu'une future version du paquet systemd pourrait éventuellement résoudre ce problème.

Riches

18
richbl

Une solution alternative qui édite automatiquement /etc/nsswitch.conf supprime [edit: et réinstalle] libnss-resolve:

Sudo apt purge libnss-resolve
Sudo apt install libnss-resolve
7
nitrogen

J'ai eu ce problème avec une nouvelle installation d'Ubuntu 17.04. J'ai choisi de passer de résolution systemd à dnsmasq sur mon ordinateur portable (le serveur de noms utilise également dnsmasq). J'ai suivi les étapes de Comment désactiver systemd et résoudre le DNS avec dnsmasq?

1
Edward Moffett