Menu Fermer

Utiliser la commande resolvectl sur Linux

resolvectl est une commande utilisée pour interagir avec le système de résolution de noms de domaine (DNS) sur les systèmes Linux utilisant systemd comme gestionnaire de système et de services. Elle fait partie de systemd-resolved, un service qui fournit des fonctionnalités de résolution de noms DNS, DNSSEC, LLMNR et mDNS pour le système d’exploitation.

Dans ce tutoriel, je vous montre comment utiliser la commande resolvectl sur Linux pour modifier les serveurs DNS, connaître la configuration DNS et vider le cache DNS.

Comment utiliser la commande resolvectl sur Linux

Comment utiliser la commande resolvectl sur Linux

Connaître les serveurs DNS par interface réseau

Pour afficher la configuration DNS, utilisez l’option status :

resolvectl status

Cette commande affiche des informations sur les serveurs DNS actuellement configurés pour chaque interfaces réseau, et le statut de la résolution de noms.
Elle vous indique aussi si les protocoles DNSSEC, LLMNR et mDNS sont actifs.

Connaître les serveurs DNS par interface réseau sur Linux avec resolvectl

Tester la résolution de noms

Une autre utilisation pratique de la commande resolvectl est la possibilité de tester une résolution DNS.
Pour cela, on utilise l’option query.

resolvectl query malekal.com

L’utilitaire renvoie la ou les adresses IP de l’hôte et vous indique aussi quelle interface réseau a effectué la résolution DNS.
Cela est pratique, par exemple si un VPN est configuré pour savoir si la résolution DNS passe par ce dernier.
De plus, vous obtenez le temps de résolution DNS et si l’authentification ou le chiffrement est configuré.

Bien entendu, il est possible d’effectuer une résolution DNS inverse à partir d’une adresse IP pour obtenir le nom d’hôte.

resolvectl query <adresse ip>

Configurer les serveurs DNS pour une interface réseau spécifique

Vous pouvez aussi modifier la configuration DNS de Linux en ligne de commandes grâce à cet outil.
La syntaxe est la suivante :

sudo resolvectl dns <interface> <Serveur DNS primaire> <Serveur DNS secondaire>
sudo resolvectl dns <interface> <Serveur DNS primaire> <Serveur DNS secondaire>

Par exemple, pour modifier l’interface enp0s3 avec les serveurs DNS de Google :

sudo resolvectl dns enp0s3 8.8.8.8 8.8.4.4
Configurer les serveurs DNS pour une interface réseau spécifique avec resolvectl

Configurer les domaines de recherche DNS pour une interface réseau

De la même manière, vous pouvez configurer le domaine de recherche DNS avec l’option domain :

sudo resolvectl domain enp0s3 exemple.com

Monitorer les connexions DNS

Vous pouvez aussi écouter les résolutions DNS, ce qui peut être utile si vous pensez que des connexions malveillantes ont lieu ou pour débugueur les problèmes de connexions DNS.
Cela grâce à l’option monitor qui nécessite un accès root.

sudo resolvectl monitor
Monitorer les connexions DNS dans Linux

Afficher et vider le cache DNS

Pour afficher le cache DNS de Linux, utilisez l’option show-cache comme ceci :

sudo resolvectl show-cache

Et si vous souhaitez vider le cache DNS de Linux :

sudo resolvectl flush-cache
Afficher le cache DNS de Linux de Linux

Afficher les statistiques

Utiliser l’option statistics pour afficher les statistiques générales du résolveur, y compris des informations sur l’activation et la disponibilité de DNSSEC, ainsi que des statistiques sur la résolution et la validation.

sudo resolvectl statistics

Pour remettre à zéro les compteurs de statistiques affichés dans statistics. Cette opération requiert les privilèges de l’administrateur.

sudo resolvectl reset-statistics

Configurer les options de résolution DNS (DNS, DNSSEC, LLMNR et mDNS)

Cette commande permet de configurer les options de résolution LLMNR pour une interface réseau.

sudo resolvectl set-link-llmnr eth0 yes

Récupérer enregistrement MX, SRV

Récupérer un enregistrement MX du domaine :

sudo resolvectl --legend=no --type=MX query <domaine>

Résoudre un enregistrement SRV, par exemple _xmpp-server._tcp gmail.com :

sudo resolvectl service _service._protocol <nom>

Récupérer une clé openpgp ou TLS

Récupérer la clé publique d’une adresse électronique à partir d’un enregistrement DNS OPENPGPKEY :

sudo resolvectl opengpg <email>

Récupérer une clé TLS :

sudo resolvectl tlsa tcp <domaine>:443