web-dev-qa-db-fra.com

systemd-resolution n'interroge pas le serveur DNS pour le domaine local

Depuis la mise à niveau vers 17.04, je ne peux plus résoudre les adresses de mon réseau local (silvesternet.local). Je reçois la réponse suivante:

$ systemd-resolve edgerouter
edgerouter: resolve call failed: No appropriate name servers or networks for name found

Dans le journal, il n'y a que des rapports sur les délais d'attente pour les transactions liées à cette recherche.

J'ai utilisé Wireshark pour détecter le trafic sur le réseau, et il semble qu'il n'essaye même pas de rechercher le nom. Il n'y a pas de trafic DNS que ce soit. Rechercher un autre domaine externe fonctionne très bien.

De nombreux problèmes autour du même sujet mentionnent la modification de nsswitch.conf, mais cela ne semble rien résoudre. Mes paramètres actuels sont:

hosts:          files mdns4_minimal dns [NOTFOUND=return] resolve [!UNAVAIL=return] mdns4
10
Rob van der Most

Je crois que c'est par conception.

Ubuntu 17.04 a opté pour la résolution de noms par résolution systemd et utilise uniquement la recherche de noms multidiffusion (LLMNR) pour la résolution de noms en une seule étiquette. Voir ce lien pour plus de détails: https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

Pour les raisons qui ont motivé cette décision, consultez la réponse de poettering dans ce rapport de bogue: https://github.com/systemd/systemd/issues/2514

UPD: Ce problème peut être contourné en utilisant un domaine pour le réseau local. Si l'interface réseau est configurée (manuellement ou par DHCP) pour utiliser un domaine de recherche, alors systemd-resolution ajoute ce domaine à des noms en une partie, puis les recherche via DNS unicast.

Il est évident que le serveur DNS local doit être reconfiguré pour reconnaître ces domaines. Si dnsmasq lit les paires hôte/IP locales à partir de/etc/hosts, vous pouvez le faire en ajoutant les instructions suivantes à dnsmasq.conf:

domain=mydomain.net
local=/mydomain.net/
expand-hosts

UPD2: ou vous pouvez simplement revenir à dnsmasq comme décrit ici https://askubuntu.com/a/911432/692094

9
ish-west

J'ai eu le même problème sur Ubuntu 18.04, qui utilise également systemd-resolu pour DNS. Sa configuration par défaut ne résout pas les noms d'hôte en une seule étiquette ni les noms d'hôte de domaine .local par DNS, mais par LLMNR ou mDNS, respectivement.

Pour que les noms d’hôte locaux à étiquette unique ou les noms d’hôte de domaine .local soient résolus par DNS, j’ai activé le troisième des "Quatre modes de gestion de /etc/resolv.conf" décrits dans la page de manuel de systemd. -resolved.service :

Sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Une réponse similaire a été donnée ici . Et encore une fois, pour le raisonnement derrière le défaut, voir la réponse de poettering dans ce rapport de bogue .

6
Mats Lindén

Après la mise à niveau vers 18.04, ce qui a fonctionné pour moi a été de configurer le fichier /etc/systemd/resolved.conf en modifiant le paramètre Domains du domaine (local ou, comme dans mon cas, mydomain.local). J'ai également changé le paramètre DNS, mais il semblait que ce n'était pas pertinent, mais je le mentionne au cas où ce ne serait pas vrai. Pour plus d'informations, accédez à https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html .

De plus, j'ai changé la configuration d'avahi (/etc/avahi/avahi-daemon.conf) pour changer le paramètre de domaine dans la section serveur de local (par défaut) à autre chose, comme certaines personnes l'ont souligné dans ce forum.

Avec les modifications mentionnées, je peux atteindre les machines en utilisant des noms sans points, par exemple, en envoyant une commande ping à mon ordinateur lorsque la machine est contactée avec succès. Toutefois, si je cinglerais à mycomputer.mydomain.local cela ne fonctionnerait pas, le nom de domaine complet n'est pas résolu comme prévu.

En espérant que cela aide dans certains cas ou aboutisse à une solution plus générale.

2
Skyeagle

J'ai rencontré ce problème à cause de nsswitch.conf mal configuré. Depuis 12.04 la chaîne suivante a fonctionné comme prévu. Les noms d'hôte sans domaine sont résolus avec succès.

Mais la nouvelle version 17.04 (ainsi que la version 16.10) d’ubuntu avec l’ancien modèle de configuration du système nss ne fonctionne plus comme avant.

Version mal configurée de hosts, à partir des anciennes versions d'ubuntu:hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Version de travail réussie de hosts, par exemple à partir de 17.04:hosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

0
vskubriev