resolvectl¶
resolvectl est l'outil d'interrogation et de configuration de systemd-resolved, le résolveur DNS avec cache intégré à systemd. Il permet de résoudre des noms, d'inspecter le cache, de configurer les serveurs DNS par interface et de vérifier l'état DNSSEC.
Syntaxe générale¶
État global¶
# Vue d'ensemble : DNS global, DNSSEC, mDNS, LLMNR, état des interfaces
resolvectl status
# État d'une interface spécifique
resolvectl status eth0
resolvectl status eth0 wlan0
# Sans paginateur
resolvectl --no-pager status
La sortie montre pour chaque interface : les serveurs DNS en cours d'utilisation, les domaines de recherche, l'état DNSSEC et mDNS.
Résolution DNS¶
# Résoudre un nom (A + AAAA)
resolvectl query example.com
# Résolution inverse (PTR)
resolvectl query 93.184.216.34
resolvectl query 2606:2800:220:1:248:1893:25c8:1946
# Forcer un type d'enregistrement
resolvectl query --type=MX example.com
resolvectl query --type=TXT example.com
resolvectl query --type=NS example.com
resolvectl query --type=SRV _https._tcp.example.com
# Forcer une classe DNS
resolvectl query --class=IN example.com
# Désactiver le cache pour cette requête
resolvectl query --cache=no example.com
# Requête via une interface spécifique
resolvectl query --interface=eth0 example.com
Résolution de services (SRV/DNS-SD)¶
# Rechercher un service DNS-SD
resolvectl service _http._tcp example.com
# Rechercher un service mDNS local
resolvectl service _ssh._tcp local
DNSSEC¶
# Vérifier la chaîne DNSSEC d'un domaine
resolvectl query --validate example.com
# Afficher les enregistrements DNSKEY
resolvectl query --type=DNSKEY example.com
# Afficher les enregistrements DS
resolvectl query --type=DS example.com
Gestion du cache¶
# Statistiques du cache (hits, misses, taille)
resolvectl statistics
# Vider le cache DNS
resolvectl flush-caches
# Réinitialiser les statistiques
resolvectl reset-statistics
Configuration DNS par interface¶
Ces réglages sont temporaires (perdus au redémarrage ou à la reconfiguration de l'interface). Pour une configuration persistante, utiliser un fichier .network.
# Définir des serveurs DNS pour une interface
resolvectl dns eth0 9.9.9.9 149.112.112.112
resolvectl dns eth0 2620:fe::fe 2620:fe::9
# Définir des domaines de recherche
resolvectl domain eth0 example.com internal.example.com
# Domaine de routage (préfixe ~ = routage DNS split)
resolvectl domain eth0 ~internal.example.com
# Activer/désactiver DNSSEC par interface
resolvectl dnssec eth0 yes
resolvectl dnssec eth0 no
resolvectl dnssec eth0 allow-downgrade
# Activer/désactiver mDNS par interface
resolvectl mdns eth0 yes
resolvectl mdns eth0 no
resolvectl mdns eth0 resolve # recevoir seulement, sans émettre
# Activer/désactiver LLMNR par interface
resolvectl llmnr eth0 yes
resolvectl llmnr eth0 no
Logs DNS (DNSSEC debugging)¶
# Voir les requêtes DNS en temps réel
resolvectl log-level debug
journalctl -u systemd-resolved -f
# Remettre au niveau normal
resolvectl log-level info
Diagnostics courants¶
Vérifier quel serveur DNS est utilisé¶
resolvectl status
# Chercher "DNS Servers" et "DNS Domain" par interface
# "Current DNS Server" indique le serveur actif
Tester la résolution pas à pas¶
# Résolution avec détail du chemin DNSSEC
resolvectl query --validate --legend=yes example.com
# Comparer avec une résolution directe (bypasse resolved)
dig @9.9.9.9 example.com
resolved et /etc/resolv.conf¶
# Vérifier le mode de gestion de resolv.conf
ls -la /etc/resolv.conf
# → lien vers /run/systemd/resolve/stub-resolv.conf (mode stub, recommandé)
# → lien vers /run/systemd/resolve/resolv.conf (mode uplink)
# → fichier statique (non géré par resolved)
# Recréer le lien si supprimé
sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
Résolution échoue sur une interface VPN¶
# Vérifier les domaines de routage DNS de l'interface VPN
resolvectl status tun0
# Forcer le routage DNS pour un domaine vers cette interface
resolvectl domain tun0 ~corp.example.com
Options globales utiles¶
| Option | Description |
|---|---|
--no-pager | Désactiver le paginateur |
--no-legend | Supprimer les en-têtes |
-i, --interface= | Interface réseau cible |
-p, --protocol= | Protocole : dns, llmnr, mdns |
-t, --type= | Type d'enregistrement DNS |
--validate | Activer la validation DNSSEC |
--cache=no | Ignorer le cache pour la requête |
--json=short | Sortie JSON compacte |
--json=pretty | Sortie JSON formatée |
Voir aussi¶
- networkctl — configuration réseau des interfaces
man resolvectlman systemd-resolved.serviceman resolved.conf