J’ai eu la bonne surprise de découvrir récemment que mon système Linux Mint utilise sans que je le sache le stubresolveur de systemd. Problème, j’avais fait le choix dès l’installation de l’OS d’avoir mon propre résolveur sur mon ordinateur à savoir Unbourd.

J’ai fini par m’en rendre compte suite à des tests de résolution de nom de domaine avec l’outil dig. En effet, je n’arrivais pas à comprendre que DNSSEC ne fonctionnait pas alors que j’avais configuré Unbound pour gérer cette technologie. Chose étrange, au lieu d’interroger unbound sur l’adresse localhost 127.0.0.1, dig choisissait 127.0.0.53. C’est ce dernier élément qui m’a mis la puce à l’oreille.

Après quelques recherches sur le Web, j’ai fini par découvrir le pot aux roses. Linux Mint utilise par défaut le stubresolveur de systemd à savoir systemd-resolved qui prend le dessus sur Network-Manager. Car oui, je m’étais dit qu’en précisant une adresse IP de DNS récursif statique dans ma configuration réseau Network-Manager, cela ferait l’affaire. Et bien non.

Ce qui me gêne le plus dans l’histoire, c’est que le système faisait un choix concernant la gestion DNS incidieux pendant que j’étais persuadé que cette dernière fonctionnait normalement via Network-Manager. Ce petit évènement m’a donc passablement mis les nerfs et n’a fait que confirmer que systemd était bien trop intrusif pour un gestionnaire d’init.

</troll>Les béni-oui-oui qui, il y a encore quelques mois, soutenaient mordicus que non mais dans systemd tout est paramétrable et modulable, et puis on peut choisir quelle brique on installe, se sont fourvoyés. Car non, je ne peux pas désinstaller systemd-resolved car cela casserait des dépendances systèmes. Oui, Lennart et son soft continuent d’imposer des services pourris qui sortent totalement du cadre d’un gestionnaire d’init. Je n’en dirais pas plus…</troll>

Bref pour ceux qui rencontreraient une situation similaire, voici ce que j’ai trouvé pour résoudre ce désagrément et pouvoir utiliser Unbound tranquillement via le stubresolver classique de l’OS.

Dans un premier temps, on éteint le service systemd-resolved, puis on le désactive lors du démarrage du système et enfin on supprime le fichier /etc/resolv.conf qui est en fait un lien symbolique vers un fichier de configuration de systemd-resolved.

$ sudo systemctl stop systemd-resolved
$ sudo systemctl disable systemd-resolved
$ sudo rm /etc/resolv.conf

Ensuite on édite le fichier de configuration de Network-Manager afin de lui spécifier que la gestion du DNS se fera normalement et plus via systemd.

$ sudo nano /etc/NetworkManager/NetworkManager.conf
[main]
dns=default

Enfin, on redémarre le service. Et voilà, les paramètres réseaux définis dans Network-Manager sont correctement pris en compte.

$ sudo systemctl restart network-manager

J’espère que ce billet aidera les personnes ayant rencontrées une problématique identique. Il est clair que si je n’étais pas contraint de rester sur une distribution de ce type, cela ferait bien longtemps que j’aurais migré sur FreeBSD, ou VoidLinux.

À bon entendeur…