Les recherches DNS résolues par le système Ubuntu 17.04 échouent de manière aléatoire


38

Je suis passé à Ubuntu 17.04 et il semble qu’un nouveau mécanisme de résolution DNS ait été introduit pour la première fois dans Ubuntu 16.10.

Je reçois maintenant des erreurs de recherche DNS dans 50% des cas. Tous les autres appels à nslookup échouent, la moitié des appels ayant abouti à la résolution de l'amende et l'autre moitié donnant ceci:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

D'après ce que j'ai compris, cette adresse IP du serveur DNS est maintenant utilisée pour représenter la résolution de systemd, qui effectue une sorte de méta-recherche pour éviter les requêtes DNS plus lentes (ou quelque chose du genre ...). Je constate exactement le même comportement sur deux ordinateurs que j'ai mis à niveau vers 17.04 la semaine dernière.

Avez-vous une idée du problème et de la manière correcte de le résoudre?

Les choses fonctionnaient bien avant la mise à niveau (à partir de 16.04 ou 16.10, je ne me souviens plus lequel, désolé). Je pensais que 17.04 était une version LTS mais maintenant je vois que j'ai sauté le pistolet et il ne sera pas considéré comme stable avant avril. Alors ... je suis là.

À noter également que les navigateurs ne semblent pas présenter de problèmes, mais que nslookup, ping, git, etc.


2
Astuce pour l'avenir: les versions Ubuntu sont l'année où il sortira .le mois de sa sortie. (Donc dans votre cas ce sera dans 04/ 17)
timotree

On dirait que résoudre des problèmes liés à systemd dans des distributions cause aussi des problèmes à d’autres personnes .
moodboom

Réponses:


46

Ubuntu 17.04 ne peut pas résoudre les serveurs DNS avec prise en charge de DNSSEC à partir du 18/04/2017. Désactivez DNSSEC avec ce démon:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Vous pouvez éventuellement reconfigurer resolvconf si vous vous êtes planté (dites oui à "préparer /etc/resolve.conf pour les mises à jour dynamiques?"):

sudo dpkg-reconfigure resolvconf

Redémarrez systemd résolu:

sudo systemctl restart systemd-resolved

Votre DNS devrait commencer à fonctionner. Vous pouvez vérifier en essayant de systemd-resolve www.google.comvoir une réponse.


Merci pour la réponse - pouvez-vous expliquer ce que cela fait?
Bertieb

Ubuntu 17.04 ne peut pas (jusqu’ici ici) résoudre le serveur DNS avec le support DNSSEC. Je désactive DNSSEC avec ce démon.
Sajad Bahmani

Merci, pouvez-vous modifier cette explication dans votre réponse? :)
bertieb

Cette solution ne fonctionnait pas pour moi. Après l'avoir définie, toujours lorsque j'effectue une recherche pour la première fois, une erreur SERVFAIL apparaît, après quelques tentatives, le résultat est mis en cache.
Guss

1
@SamuelL. en ce qui concerne le tee-shirt, c’est une façon élégante d’imprimer quelque chose et de l’envoyer dans un fichier en même temps. En règle générale, vous pouvez rediriger la sortie vers un fichier avec> [le caractère supérieur à], mais vous ne verrez pas la sortie. Le tee-shirt le laisse aller aux deux endroits. Resolvconf "configure la résolution".
moodboom

12

J'ai alterné entre la gestion manuelle de /etc/resolv.conf, résolue par systemd, et je n'ai pas encore trouvé le mécanisme de résolution DNS systemd stable.

Il y a apparemment au moins un bogue de libnss dans Ubuntu 16.10 et apparemment toujours dans 17.04. Il y a beaucoup de personnes avec des problèmes de DNS depuis qu'Ubuntu 16.10 a activé la résolution système, voici une analyse et voici la solution de contournement d'une autre personne. Aucun d’entre eux n’a fonctionné pour moi jusqu’à ce que j’ai écrasé /etc/resolv.conf manuellement avec les serveurs DNS de Google.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

C'est un solution parfaitement valable si vous n'avez pas besoin d'une configuration DNS dynamique. Assurez-vous simplement d'arrêter et de désactiver systemd-resolu:

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Passer à resolveconf n’a pas aidé mon problème, comment puis-je revenir à l’utilisation de systemd-resolu? (Merci)
Edward Moffett

1
Essayez:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
moodboom

1
Mec, tu viens de sauver mon système !! BRAVO
révolutionnaire

A bien travaillé en 18.04
André M. Faria le

4

Ubuntu 17.04 et d'autres distributions englobent systemd, qui inclut la résolution systemd, ce qui soumet les utilisateurs à une résolution DNS plutôt lourde.

  • Comme indiqué dans la réponse de SjB, la prise en charge de DNSSEC peut entraîner des problèmes.
  • systemd-resolu pings tous les résolveurs DNS afin qu'il puisse utiliser le plus rapide. Cela peut causer des problèmes avec les VPN, etc. dans des environnements plus complexes.
  • Les certificats de serveur DNS sont vérifiés. Des erreurs se sont produites si mon horloge était faussée.

Je ne pense pas que ce soit nécessairement un mauvais changement, c'est juste BEAUCOUP de changement. Je vais essayer de mettre à jour et d'élargir cette réponse à mesure que j'en apprends davantage.



1

ajoutez simplement le serveur de noms /etc/systemd/resolved.conf DNS = 194.109.xxx.xxx (sur votre routeur, serveur de noms externe)

systemctl redémarrer systemd-résolu

pas besoin de changer rand de 3 à 2, pas besoin de changer le réglage de dnssec sur off


Malheureusement, cela ne résout pas à lui seul le problème "chaque demande sur un autre".
moodboom

D'accord avec @moodboom, cela ne résout pas pour moi aussi.
André M. Faria le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.