Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| netadmin:dns:systemd-resolved [2020/12/08 15:01] – Ajout vidage du cache DNS yoann | netadmin:dns:systemd-resolved [2026/10/21 13:25] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| - | ===== 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 |
| + | * 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' | ||
| + | * 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 ===== | ||
| + | |||
| + | 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' | ||
| + | |||
| + | **Le //routing DNS// ou routage DNS est le processus décidant quel serveur de noms interroger pour un nom de domaine donné**. | ||
| + | |||
| + | <note warning> | ||
| + | Le routage du point de vue du DNS ne doit pas être confondu avec le routage des paquets du protocole IP. | ||
| + | </ | ||
| + | |||
| + | Dans systemd-resolved, | ||
| + | |||
| + | Pour toute interface, on distingue deux types de domaines: | ||
| + | * **routing domains**: domaines de routage; | ||
| + | * **search domains**: domaines de recherche. | ||
| + | |||
| + | Utilisés conjointement, | ||
| + | |||
| + | < | ||
| + | Le **search domain** a également pour fonction de servir de suffixe pour les recherches concernant des noms de domaines n' | ||
| + | </ | ||
| + | |||
| + | Dans la configuration de systemd-resolved un **routing domain** est préfixé par le caractère '' | ||
| + | |||
| + | |||
| + | ===== Exemple commun de routage ===== | ||
| + | |||
| + | Considérons une connexion VPN via une interface '' | ||
| + | |||
| + | Si l'on recherche '' | ||
| + | |||
| + | Si l'on demande '' | ||
| + | |||
| + | Si à présent on demande '' | ||
| + | |||
| + | |||
| + | ===== Configuration du daemon ===== | ||
| + | |||
| + | Pour altérer la configuration du service, modifier le fichier **/ | ||
| + | |||
| + | Cela est déclaré dans le fichier de configuration via la directive | ||
| + | < | ||
| + | . . . | ||
| + | |||
| + | [Resolve] | ||
| + | # Par défaut le service stub dns est actif | ||
| + | # Décommenter et changer la valeur pour modifier le comportement par défaut | ||
| + | # | ||
| + | </ | ||
| + | |||
| + | Si le fichier a été modifié, relancer le service: | ||
| + | <code bash> | ||
| + | systemctl restart systemd-resolved.service | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | On peut être amené à désactiver ce service, par exemple si on souhaite utiliser un autre résolveur. | ||
| + | </ | ||
| + | |||
| + | Pour que l' | ||
| + | |||
| + | <code bash> | ||
| + | # Affiche les détail du fichier / | ||
| + | ls -l / | ||
| + | lrwxrwxrwx 1 root root 37 janv. 18 19:31 / | ||
| + | </ | ||
| + | |||
| + | 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 / | ||
| + | </ | ||
| Pour consulter l' | Pour consulter l' | ||
| Ligne 28: | Ligne 103: | ||
| </ | </ | ||
| - | ===== redéfinir des DNS ===== | + | ===== Redéfinir les serveurs |
| - | 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 | ||
| </ | </ | ||
| + | |||
| + | Dans l' | ||
| 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 |
| </ | </ | ||
| - | ===== Troubleshooting | + | ===== Dépannage |
| + | |||
| + | Vérifier quel service DNS est utilisé par le système | ||
| + | |||
| + | <code bash> | ||
| + | ls -l / | ||
| + | lrwxrwxrwx 1 root root 39 Apr 20 20:07 / | ||
| + | </ | ||
| + | |||
| + | Dans l' | ||
| + | |||
| + | Pour valider l' | ||
| + | <code bash> | ||
| + | systemctl status systemd-resolved | ||
| + | </ | ||
| ==== Vider le cache ==== | ==== Vider le cache ==== | ||
| Ligne 50: | 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 | ||
| </ | </ | ||
| + | |||
| + | Afficher le niveau de journalisation (par défaut '' | ||
| + | <code bash> | ||
| + | resolvectl log-level | ||
| + | </ | ||
| + | |||
| + | Augmenter le niveau de journalisation : | ||
| + | <code bash> | ||
| + | resolvectl log-level debug | ||
| + | </ | ||
| + | |||
| + | Pour afficher les traces en continu : | ||
| + | <code bash> | ||
| + | journalctl --unit systemd-resolved.service --follow | ||
| + | </ | ||
| + | |||
| ==== Statistiques ==== | ==== Statistiques ==== | ||
| <code bash> | <code bash> | ||
| - | sudo systemd-resolve --statistics | + | resolvectl |
| </ | </ | ||
| Ligne 65: | Ligne 172: | ||
| * https:// | * https:// | ||
| * https:// | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||