Essuyer les plâtres DNS sur Ubuntu

Si il y a une chose dont j’ai horreur c’est d’essuyer les plâtres d’outils mal finalisés. La dernière version d’Ubuntu 17.04 Zesty Zapus est sortie le 13/04 et j’ai eu la chance malchance d’avoir un peu de temps pour mettre à jour mes postes. Mais bon restons positif ça me donne l’occasion d’aider les pauvres malheureux qui vont se retrouver avec des ennuis DNS comme moi.

Un des changements importants apportés par cette nouvelle version est que systemd-resolved est maintenant utilisé comme résolveur DNS par défaut. Afin de jeter un œil vous pouvez faire un petit systemd-resolve status dans votre terminal. Vous pourrez également constater les changements dans le fichier /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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.

nameserver 127.0.0.53

nameserver 127.0.0.53 pointe donc en réalité vers le daemon systemd-resolved comme c’est marqué ci-dessus. Chez moi ça se traduit tout de suite par une extrême lenteur pour aller sur le web, parfois des DNS Probe Finished, parfois des timeouts. Joie.

La communauté commence à s’activer et on voit fleurir quelques pistes pour résoudre le problème. J’ai personnellement apprécié cet article en Anglais qui propose dans un premier temps de désactiver DNSSEC source de la majorité des soucis apparemment. Comme il le souligne ce n’est pas propre, ce n’est pas une solution définitive car DNSSEC est utile d’un point de vue sécurité. Dans un second temps il propose de remplacer systemd-resolved par Unbound. C’est radical comme solution mais beaucoup de lecteurs souligneront que c’est LA bonne solution. Je vous fournis le lien pour des tutos en Français (moteur de recherche du Jdh powaaaa !).

Pour ma part j’ai choisi une autre solution moins radicale croisée ici. On peut constater que /etc/resolv.conf est en réalité un lien symbolique pointant vers /run/resolvconf/resolv.conf. On va supprimer ce lien symbolique puis en tirer un autre vers /run/systemd/resolve/resolv.conf qui est un fichier maintenu à jour par systemd-resolved pour compatibilité avec les programmes traditionnels Linux.

ls -la /etc/resolv.conf
sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

Je vous invite à présent à afficher /etc/resolv.conf pour constater le changement. Lorsque les plâtres sur systemd-resolved seront corrigés par les développeurs il vous suffira de faire un rollback en supprimant le lien symbolique et en tirant un lien symbolique vers /run/resolvconf/resolv.conf pour revenir à la configuration initiale.

ls -la /etc/resolv.conf
sudo rm -f /etc/resolv.conf
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

Tcho !

Déjà 6 avis pertinents dans Essuyer les plâtres DNS sur Ubuntu

  • Ce n’est pas systemd-resolved qui pose problème, la plupart du temps, mais dnsmasq qui est installé lorsque l’on utilise des systèmes virtualisés avec lxd par exemple. D’ailleurs dans une mise-à-jour de l’article sur unbound l’auteur retrouve le même problème de ralentissement avec celui-ci, certes moins important. Il semble que dnsmasq ne gère pas correctement le DNSSEC dans sa configuration par défaut.
    Il n’y a pas qu’une cause, le problème est plus complexe qu’il n’y parait.
  • egan
    Y’a pas Fedora qui utilise systemd-resolved depuis une ou deux versions ? Comment ça se passe chez eux ? Y’a des problèmes de perf aussi ou pas ?

Les commentaires sont fermés.