Passer au contenu principal

Réseau (Linux)

DNS et résolution de noms

La résolution de noms traduit debian.org en adresse IP. Sur Debian avec systemd-networkd activé, la chaîne passe par systemd-resolved, qui consulte /etc/hosts en premier, puis les serveurs DNS configurés. Sans systemd-resolved, /etc/resolv.conf est un fichier statique pointant directement vers les DNS de l'hébergeur ou du réseau.

Si systemd-resolved a été activé en suivant le chapitre Configuration réseau, le symlink est déjà en place. Vérifier :

ls -la /etc/resolv.conf
# doit pointer vers /run/systemd/resolve/stub-resolv.conf

systemctl status systemd-resolved

Résolution locale : /etc/hosts

/etc/hosts est consulté avant tout serveur DNS. C'est le premier point de résolution sur toute machine Linux.

cat /etc/hosts
# 127.0.0.1   localhost
# 127.0.1.1   monserveur.local monserveur
# ::1         localhost ip6-localhost

Utile pour forcer la résolution d'un nom en local (tests, overrides temporaires), définir un hostname court pour la machine, ou bloquer un domaine en le redirigeant vers 127.0.0.1. Les modifications sont prises en compte immédiatement, sans redémarrage de service.

Serveurs DNS : /etc/resolv.conf

Avec systemd-resolved actif, /etc/resolv.conf pointe sur le stub resolver local 127.0.0.53. Ce resolver interroge en coulisses les DNS configurés dans les fichiers .network de systemd-networkd.

resolvectl status        # DNS effectivement utilisés par interface

Sans systemd-resolved (install par défaut sans migration), /etc/resolv.conf est un fichier statique :

cat /etc/resolv.conf
# nameserver 192.168.1.1
# nameserver 9.9.9.9

Pour configurer des serveurs DNS statiques dans le cas systemd-networkd :

[Network]
DNS=9.9.9.9 149.112.112.112

Interroger le DNS : dig

dig (paquet dnsutils) est l'outil de référence pour interroger les serveurs DNS.

apt install dnsutils

dig debian.org              # requête A (IPv4) par défaut
dig AAAA debian.org         # requête IPv6
dig MX debian.org           # enregistrements mail
dig TXT debian.org          # enregistrements TXT (SPF, DKIM...)
dig NS debian.org           # serveurs de noms autoritaires
dig @9.9.9.9 debian.org     # interroger un DNS spécifique
dig +short debian.org       # réponse courte (IP uniquement)

Types d'enregistrements courants

  • A : nom vers IPv4
  • AAAA : nom vers IPv6
  • CNAME : alias vers un autre nom
  • MX : serveur de messagerie
  • TXT : données texte libres (SPF, DKIM, vérification de domaine)
  • PTR : IP vers nom (DNS inverse)
  • NS : serveurs de noms autoritaires du domaine

En pratique

Quand un nom ne résout pas, dig +short nom.domaine confirme si le problème est DNS ou réseau. Si dig @9.9.9.9 nom.domaine répond mais pas dig nom.domaine, le resolver local est le problème. Avec systemd-resolved, vérifier resolvectl status et l'état du service. Sans, vérifier le contenu de /etc/resolv.conf. Si aucun des deux ne répond, le domaine n'existe pas ou la connectivité UDP/53 est bloquée par un firewall.