Home >Industrial IoT>Industrial IoT
Présentation de la résolution DNS

Qu'est-ce que le DNS ?

DNS (Domain Name System) est un système qui traduit les noms de domaine en adresses IP.

En résumé, la fonction du service de résolution DNS est de convertir les noms de domaine en adresses IP.

Le processus de résolution DNS implique les rôles suivants :

  • Le nom de domaine à résoudre

  • Le client DNS

  • Le serveur DNS

  • L'adresse IP correspondant au nom de domaine

Le processus de résolution DNS suit généralement ces étapes :

  1. L'utilisateur utilise un nom de domaine dans une application.

  2. L'application appelle le client DNS pour demander une résolution de domaine.

  3. Le client DNS envoie le nom de domaine au serveur DNS pour résolution (si le cache local contient la résolution, aucune autre demande n'est effectuée).

  4. Le serveur DNS renvoie l'adresse IP résolue au client (le serveur peut mettre en cache les résultats de la résolution DNS pour éviter les requêtes redondantes).

  5. L'application utilise l'adresse IP correspondant au nom de domaine (le client peut mettre en cache le résultat de la résolution DNS pour des réponses plus rapides).

Les systèmes Windows et Linux utilisent tous deux des services de résolution DNS couramment utilisés, tels que le client DNS sous Windows et systemd-resolved, BIND, etc., sous Linux. Parmi ceux-ci, systemd-resolved est le service de résolution DNS par défaut et le plus couramment utilisé dans les distributions Linux modernes (basé sur systemd). Dans cet article, nous discuterons du service de résolution DNS résolu par systemd

Commandes courantes pour systemd-resolved

vérifier l'état actuel de systemd-résolu

statut systemctl résolu par systemd 

Ce service est activé par défaut sur les systèmes basés sur systemd. Vous pouvez également utiliser le champ d'état pour démarrer ou arrêter le service en le remplaçant par start ou stop. Étant donné que cet article se concentre principalement sur les problèmes résolus par systemd, les explications détaillées des commandes systemctl ne sont pas incluses.

Vérification des statistiques pour systemd-résolu

systemd-resolve --statistiques 

Cette commande affiche des statistiques telles que les taux de réussite du cache, la taille du cache et l'état de validation DNSSEC.

Vérification de la configuration DNS actuelle

statut résolu 

ou

systemd-resolve --status # Pour les anciennes versions 

Effacement du cache DNS

systemd-resolve --flush-caches 

Le système met en cache les résultats DNS dans la mémoire, mais ne les conserve pas. Si le cache devient trop volumineux, cette commande efface le cache local.

Test de résolution de domaine manuel

systemd-résolution www.xxx.com 

Cette commande vous permet de tester manuellement la résolution du domaine. La sortie affiche l’adresse IP résolue et le temps de résolution.

Configuration temporaire d'un serveur DNS pour une interface spécifique

solvectl dns eth0 8.8.8.8 

Ceci définit un serveur DNS pour l'interface spécifiée (par exemple, eth0). Cette configuration est temporaire et sera perdue après un redémarrage. Pour le rendre permanent, vous devez modifier le fichier /etc/systemd/resolved.conf ou les fichiers de configuration associés

Fichiers de configuration pour systemd-résolu

Fichier de configuration /etc/resolv.conf

/etc/resolv.conf est le fichier de configuration DNS principal. Lorsque systemd-resolved effectue une résolution DNS, il lit ce fichier pour obtenir les adresses IP du serveur DNS et procède à la résolution.

Étant donné que /etc/resolv.conf est souvent généré dynamiquement, il est crucial de comprendre qu'il est géré par différents composants pour configurer la résolution DNS.

Pour la configuration temporaire du serveur DNS, vous pouvez directement modifier ce fichier et ajouter les IP du serveur DNS :

serveur de noms 114.114.114.114serveur de noms 8.8.8.8 

Cependant, ces modifications ne sont pas persistantes car /etc/resolv.conf est généralement un lien symbolique généré dynamiquement. Par exemple:

lrwxrwxrwx 1 racine racine 37 5 décembre 14:24 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf 

Le fichier pointe vers /run/systemd/resolve/stub-resolv.conf, qui sera expliqué plus tard.

Fichier de configuration /etc/systemd/resolved.conf

/etc/systemd/resolved.conf est le fichier de configuration principal de systemd-resolved, utilisé pour définir les serveurs DNS, les politiques de résolution DNS, etc. Après avoir modifié ce fichier, vous devez redémarrer le service résolu par systemd pour que les modifications prennent effet.

Exemple de configuration :

[Resolve]DNS=8.8.8.8 8.8.4.4 
# Liste des serveurs DNSFallbackDNS=114.114.114.114
# DNS de secours lorsque le DNS principal n'est pas disponibleDomains=example.com
# Liste de recherche de domaineLLMNR=no
# LLMNR (Link-Local Multicast Name Resolution) paramètreDNSSEC= no
# DNSSEC (extensions de sécurité DNS) settingsCache=yes
# Activer DNS mise en cache

Fichiers /run/systemd/resolve/stub-resolv.conf et /run/systemd/resolve/resolv.conf

Comme mentionné dans la section 3.1, /etc/resolv.conf est un lien symbolique qui pointe vers /run/systemd/resolve/stub-resolv.conf ou /run/systemd/resolve/resolv.conf. Ces deux fichiers sont directement gérés et générés par systemd-resolved.

  • /run/systemd/resolve/resolv.conf : généré par systemd-resolved en fonction des paramètres de /etc/systemd/resolved.conf. Il spécifie les serveurs DNS pour connecter les clients locaux directement aux serveurs DNS.

Exemple de contenu :

# Ce fichier est géré par systemd-resolved. Ne pas modifier.nameserver 8.8.8.8nameserver 8.8.4.4search example.com 
  • /run/systemd/resolve/stub-resolv.conf : ce fichier configure un résolveur de stub DNS pour systemd-resolved. Dans ce cas, les applications ne communiquent pas directement avec systemd-resolved mais utilisent plutôt le résolveur de stub qui transmet les requêtes à systemd-resolved. Normalement, les applications doivent uniquement interroger 127.0.0.53, qui est transmis à systemd-resolved par le résolveur de stub.

Exemple de contenu :

# Ce fichier est géré par systemd-resolved. Ne pas modifier.nameserver 127.0.0.53options edns0 trust-adsearch example.com 


En pratique, vous pouvez vous concentrer sur le fichier /etc/resolv.conf :

  • Pour des modifications temporaires du serveur DNS du système, éditez directement /etc/resolv.conf ou utilisez la commande solvectl (qui offre un meilleur contrôle).

  • Pour les modifications persistantes apportées au serveur DNS du système, configurez /run/systemd/resolve/resolv.conf et assurez-vous que /etc/resolv.conf est lié symboliquement à /run/systemd/resolve/resolv.conf.

  • Pour utiliser le DNS Stub Resolver, configurez /run/systemd/resolve/resolv.conf et assurez-vous que /etc/resolv.conf est lié symboliquement à /run/systemd/resolve/stub-resolv.conf.

Comprendre comment systemd-resolved gère les requêtes DNS et comment les fichiers de configuration affectent le comportement de résolution DNS est suffisant pour la plupart des tâches quotidiennes de configuration et de dépannage.

Pour des fonctionnalités plus avancées, vous pouvez explorer les principes sous-jacents du DNS, les fonctionnalités avancées du protocole DNS, et approfondir les commandes avancées et les mesures de sécurité de systemd-resolved.


Recommend