Outils pour utilisateurs

Outils du site


netadmin:dns:systemd-resolved

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
netadmin:dns:systemd-resolved [2022/01/18 17:11] – yoannnetadmin:dns:systemd-resolved [2026/10/21 13:25] (Version actuelle) – yoann
Ligne 1: Ligne 1:
-{{tag>netadmin sysadmin linux dns debian ubuntu todo}}+{{tag>netadmin sysadmin linux dns split-dns debian ubuntu systemd}}
  
 ====== systemd-resolved ====== ====== systemd-resolved ======
  
-Les versions récentes de nombreuses distributions GNU/Linux utilisent à présent le daemon systemd-resolved comme résolveur.+Les versions récentes de nombreuses distributions GNU/Linux utilisent à présent le daemon **systemd-resolved** comme résolveur. Tous les programmes s'exécutant sur le système local ayant besoin de convertir un nom en adresse IP passent par lui. Cette centralisation des recherches DNS est avantageuse pour l'ensemble du système: 
 +  * Le service propose un cache qui accélère les réponses pour les demandes les plus fréquentes; 
 +  * Le daemon identifie les serveurs non réactifs et évite à chaque programme d'en faire la découverte individuellement après un timeout; 
 +  * Les programmes s'adressent au service via un transport local et sont ainsi mieux isolés du réseau. 
 +  * Le daemon peut être paramétré finement pour définir quel serveur de noms doit être utilisé en fonction du domaine recherché (routage ou split DNS).  
 + 
  
 ===== Notions de routage et split DNS ===== ===== Notions de routage et split DNS =====
  
-Dans de nombreux cas, les machines se connectent à différents réseaux physiques ou virtuels. Un ordinateur portable peut par exemple être connecté en parallèle aux réseaux Ethernet et wifi et avoir en plus une connexion VPN vers un réseau d'entreprise. Chacune de ces trois connexions à une interface dédiée dans le noyau à laquelle peuvent être associés plusieurs serveurs de noms. Le //routing// ou routage est le processus décidant quel serveur de noms interroger pour un nom de domaine donné.+Dans de nombreux cas, les machines se connectent à différents réseaux physiques ou virtuels. Un ordinateur portable peut par exemple être connecté en parallèle aux réseaux Ethernet et wifi et avoir en plus une connexion VPN vers un réseau d'entreprise. Chacune de ces trois connexions à une interface dédiée dans le noyau à laquelle peuvent être associés plusieurs serveurs de noms. 
 + 
 +**Le //routing DNS// ou routage DNS est le processus décidant quel serveur de noms interroger pour un nom de domaine donné**.
  
 <note warning> <note warning>
Ligne 16: Ligne 24:
  
 Pour toute interface, on distingue deux types de domaines: Pour toute interface, on distingue deux types de domaines:
-  * **routing domains**: domaines de routage +  * **routing domains**: domaines de routage; 
-  * **search domains**: domaines de recherche+  * **search domains**: domaines de recherche.
  
 Utilisés conjointement, ils permettent à systemd-resolved de déterminer sur quelles interfaces s'appuyer pour résoudre un nom de domaine donné.  Utilisés conjointement, ils permettent à systemd-resolved de déterminer sur quelles interfaces s'appuyer pour résoudre un nom de domaine donné. 
Ligne 39: Ligne 47:
    
  
 +===== Configuration du daemon =====
 +
 +Pour altérer la configuration du service, modifier le fichier **/etc/systemd/resolved.conf**. Par défaut systemd-resolved agit comme **stub DNS** (résolveur minimal). Il transmet les requêtes aux résolveurs complets associés aux différentes interfaces du système et conserve un cache.
 +
 +Cela est déclaré dans le fichier de configuration via la directive
 +<file>
 +. . .
 +
 +[Resolve]
 +# Par défaut le service stub dns est actif
 +# Décommenter et changer la valeur pour modifier le comportement par défaut
 +#DNSStubListener=yes
 +</file>
 +
 +Si le fichier a été modifié, relancer le service:
 +<code bash>
 +systemctl restart systemd-resolved.service
 +</code>
 +
 +<note>
 +On peut être amené à désactiver ce service, par exemple si on souhaite utiliser un autre résolveur.
 +</note>
 +
 +Pour que l'ensemble des applications s'exécutant localement puisse s'appuyer sur la résolution proposée par systemd-resolv.conf, le fichier **''/etc/resolv.conf''** doit être un lien symbolique pointant sur le fichier de configuration généré par le service: **''/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf''**
 +
 +<code bash>
 +# Affiche les détail du fichier /etc/resolv.conf
 +ls -l /etc/resolv.conf
 +lrwxrwxrwx 1 root root 37 janv. 18 19:31 /etc/resolv.conf -> /run/systemd/resolve/stub-resolv.conf
 +</code>
 +
 +Ici la configuration est celle attendue. Si ce n'est pas le cas, on peut toujours recréer le lien via la commande:
 +<code bash>
 +sudo rm /etc/resolv.conf && sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
 +</code>
 Pour consulter l'état du service: Pour consulter l'état du service:
    
Ligne 60: Ligne 103:
 </code> </code>
  
-===== Redéfinir des DNS =====+===== Redéfinir les serveurs DNS =====
  
-Pour redéfinir dynamiquement les serveurs DNS associés à une interface:+Il est possible de redéfinir dynamiquement les serveurs DNS associés à une interface:
 <code bash> <code bash>
 sudo resolvectl dns tun0 208.67.220.220 208.67.222.222 sudo resolvectl dns tun0 208.67.220.220 208.67.222.222
 </code> </code>
 +
 +Dans l'exemple ci-dessus on associe deux résolveurs DNS à l'interface tun0, les précédents s'ils existent seront remplacés.
  
 Pour définir dynamiquement le routage de domaines via une interface  Pour définir dynamiquement le routage de domaines via une interface 
 <code bash> <code bash>
-sudo resolvectl domain tun0 ~entreprise.local entreprise.com+sudo resolvectl domain tun0 ~entreprise.local private.entreprise.com
 </code>  </code> 
  
-===== Troubleshooting =====+===== Dépannage ===== 
 + 
 +Vérifier quel service DNS est utilisé par le système 
 + 
 +<code bash> 
 +ls -l /etc/resolv.conf  
 +lrwxrwxrwx 1 root root 39 Apr 20 20:07 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf 
 +</code> 
 + 
 +Dans l'exemple ci-dessus le fichier /etc/resolv.conf est un lien symbolique vers le fichier de configuration du service systemd-resolved. Ceci sera confirmé par les commentaires présents dans le fichier. 
 + 
 +Pour valider l'état du service : 
 +<code bash> 
 +systemctl status systemd-resolved 
 +</code>
  
 ==== Vider le cache ==== ==== Vider le cache ====
Ligne 82: Ligne 141:
 ==== Logs ==== ==== Logs ====
  
-Pour consulter les logs:+Pour consulter les logs :
 <code bash> <code bash>
 journalctl --unit systemd-resolved.service journalctl --unit systemd-resolved.service
 </code> </code>
 +
 +Afficher le niveau de journalisation (par défaut ''info'') :
 +<code bash>
 +resolvectl log-level
 +</code>
 +
 +Augmenter le niveau de journalisation :
 +<code bash>
 +resolvectl log-level debug
 +</code>
 +
 +Pour afficher les traces en continu :
 +<code bash>
 +journalctl --unit systemd-resolved.service --follow
 +</code>
 +
  
 ==== Statistiques ==== ==== Statistiques ====
  
 <code bash> <code bash>
-sudo systemd-resolve --statistics+resolvectl statistics
 </code> </code>
  
Ligne 98: Ligne 173:
   * https://www.linuxuprising.com/2019/07/how-to-flush-dns-cache-on-linux-for.html   * https://www.linuxuprising.com/2019/07/how-to-flush-dns-cache-on-linux-for.html
   * https://www.bortzmeyer.org/7719.html   * https://www.bortzmeyer.org/7719.html
 +  * https://www.linuxquestions.org/questions/linux-networking-3/dns-server-priority-in-systemd-resolve-4175680247/
 +  * [[https://unix.stackexchange.com/questions/328131/how-to-troubleshoot-dns-with-systemd-resolved|Comment dépanner le service DNS de systemd-resolved (unix.stackexchange.com) (en)]]
 +  * [[https://www.linuxtricks.fr/wiki/systemd-la-resolution-de-nom-avec-systemd-resolved|Fonctionnement de la résolution de nom via systemd-resolved (linuxtricks.fr)]]
 +  * [[https://blogs.gnome.org/mcatanzaro/2020/12/17/understanding-systemd-resolved-split-dns-and-vpn-configuration/|Comprendre systemd-resolved, le Split-DNS et la configuration VPN (blogs.gnome.org) (en)]]
netadmin/dns/systemd-resolved.1642525870.txt.gz · Dernière modification : 2022/01/18 17:11 de yoann