Résolution DNS locale en noms courts en auto-hébergement

Le besoin est tout bête : pouvoir utiliser des noms DNS courts pour les machines de mon réseau local, plutôt que les adresses IP.

Ca se passe très différemment suivant l’appareil qui gère le DHCP et le DNS : j’ai testé avec une box SFR et un routeur Turris.

En utilisant la box SFR

Au départ, j’ai pensé que ce serait très simple. J’ai déclaré ces noms courts dans le serveur DNS de ma box (fournie par Red-by-SFR, type NB6VAC-FXC-r0, version du firmware NB6VAC-MAIN-R4.0.44j).

Pas de souci sur les serveurs qui tournent sous Debian : les noms courts fonctionnent instantanément.

Par contre, ces noms courts ne fonctionnaient pas sur mes PCs Ubuntu. Après recherche, c’est à cause du fait qu’Ubuntu s’appuie sur systemd-resolved, qui ne propage pas les requêtes de noms courts au serveur DNS (pour des raisons de confidentialité apparemment, car il ne sait pas s’il est local ou distant. Cf https://askubuntu.com/questions/917784/systemd-resolved-does-not-query-dns-server-for-local-domain).

Il est possible de le forcer à le faire (cf https://github.com/systemd/systemd/issues/13763), mais ce n’est pas très sécurisant.

J’ai mis en œuvre une autre solution, en déclarant sur le serveur DNS à la fois des noms courts et des noms longs (en les suffixant par « .lan », par exemple).

Et j’ai déclaré ce nom de domaine dans le fichier /etc/systemd/resolved.conf de mes machines ubuntu :

Domains=lan

Après un redémarrage du service systemd-resolved (ou un reboot), la machine suffixe automatiquement le nom de domaine aux noms courts, et ça fonctionne.

Sur d’autres types d’OS, il peut être nécessaire d’ajouter la ligne suivante dans /etc/resolv.conf (c’est fait automatiquement par systemd-resolved s’il est utilisé par la machine) :

search lan

En utilisant le routeur Turris

Un peu plus tard, j’ai mis en place un routeur Turris Mox sur mon réseau local, qui gère le DHCP et le DNS à la place de la box SFR.

C’est beaucoup plus simple dans ce cas-là : le serveur DHCP est par défaut configuré pour définir un domaine local « lan ». Lorsque les machines du réseau local demandent une adresse IP en DHCP, elles reçoivent ce nom de domaine en même temps que l’adresse IP. Il devient donc inutile de le configurer manuellement dans /etc/systemd/resolved.conf : c’est fait dynamiquement dans la réponse DHCP.

Et il est également inutile de configurer les adresses en « .lan » sur le Turris : il connaît le nom de domaine local, et répond donc à la fois aux requêtes sur des noms courts et sur des noms suffixés en « .lan »

En bref, la box SFR assure le service minimum du DHCP/DNS, alors que le Turris fournit le service qu’on attendrait pour un réseau local d’entreprise (ou pour de l’auto-hébergement avec pas mal de machines)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *