Outils pour utilisateurs

Outils du site


netadmin:dns:systemd-resolved

Ceci est une ancienne révision du document !


systemd-resolved

Les versions récentes de nombreuses distributions GNU/Linux utilisent à présent le daemon systemd-resolved comme résolveur.

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é.

Le routage du point de vue du DNS ne doit pas être confondu avec le routage des paquets du protocole IP.

Dans systemd-resolved, l'interface prévaut. systemd-resolved sélectionne une ou plusieurs interfaces appropriées pour un nom de domaine donné et interroge un des serveurs de noms associés. Ce fonctionnement est désigné par le terme split DNS.

Pour toute interface, on distingue deux types de domaines:

  • routing domains: domaines de routage
  • 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é.

Le search domain a également pour fonction de servir de suffixe pour les recherches concernant des noms de domaines n'ayant qu'un seul composant (ou label). Par exemple une recherche pour le nom de domaine “test” sera considérée comme une recherche pour le nom de domaine “test.exemple.com” si le search domain vaut “exemple.com”

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 tun0 avec un domaine de recherche network.company.com et un domaine de routage ~company.com.

Si l'on recherche mail.network.company.com, il y a correspondance à la fois sur le domaine de recherche et le domaine de routage, l'interface tun0 sera utilisée pour la résolution de nom.

Si l'on demande www.company.com il y a correspondance sur le domaine de routage ~compagny.com, l'interface tun0 est encore utilisée.

Si à présent on demande www (ici la recherche comporte un unique label ou composant) la différence entre search domain et routing domain commence à se manifester puisque le domaine de recherche est utilisé comme suffixe, la requête devient donc www.network.company.com sur l'interface tun0. En outre, si plusieurs interfaces possèdent des domaines de recherche, le label unique est suffixé par tous les domaines de recherche déclarés et des recherches sont émises en parallèle. C'est la correspondance la plus longue qui sera retournée.

Pour consulter l'état du service:

resolvectl status

Lister les serveurs DNS renseignés pour chaque interfaces

resolvectl dns

Lister les domaines associés aux interfaces

resolvectl domain

Pour tester une résolution:

resolvectl query example.com

Redéfinir des DNS

Pour redéfinir dynamiquement les serveurs DNS associés à une interface:

sudo resolvectl dns tun0 208.67.220.220 208.67.222.222

Pour définir dynamiquement le routage de domaines via une interface

sudo resolvectl domain tun0 ~entreprise.local entreprise.com

Troubleshooting

Vider le cache

systemd-resolve --flush-caches

Logs

Pour consulter les logs:

journalctl --unit systemd-resolved.service

Statistiques

sudo systemd-resolve --statistics

Références

netadmin/dns/systemd-resolved.1642525870.txt.gz · Dernière modification : 2022/01/18 17:11 de yoann