web-dev-qa-db-fra.com

netplan: noms de serveurs dans netplan yaml. Quel effet?

Quel est l'effet du champ nameservers/adresses dans le fichier de configuration yaml?

Toute application que j'ai essayée utilise les serveurs de noms /etc/resolv.conf. Cela se produit même avec resolvconf arrêté.

Ceci utilise systemd comme résolveur. Aucune erreur sur générer ou appliquer.

RÉSOLUTION

Merci à tous ceux qui ont répondu. La configuration de netplan yaml configure les serveurs de noms après avoir effectué cette opération:

  1. Purge resolvconf;
  2. Placer mon DNS LAN en tant que transitaire dans /etc/bind/named.conf.options;
  3. Remplacez le lien /etc/resolv.conf par un fichier statique en tant que

    recherche serveur de noms 127.0.0.53

Et ça marche. Je trouve que je dois inclure la recherche dans le resolv.conf même si j'ai un champ de recherche dans mon netplan config yaml. Puzzle pour un autre jour.

3
Stephen Boston

NOTE: Ceci pourrait faire double emploi avec les informations de chili555. Cependant, en discutant avec eux, l'individu susmentionné a suggéré d'envoyer une réponse "faisant autorité" car j'ai déjà travaillé avec cette question/question exacte auparavant.

Le comportement observé dans votre environnement est l'équivalent de systemd-resolved équivalent à ce que dnsmasq était antérieur à 18.04. Les mises à jour netplan affectent les serveurs de noms que systemd-resolved utilise pour ses recherches. Ceci est détaillé dans la dernière section de la réponse.

Mais tout d’abord, pour les plus curieux, un historique de ce comportement et de ses différences avec les versions plus anciennes d’Ubuntu qui utilisent Network Manager et dnsmasq. (N'hésitez pas à passer la section suivante de cette réponse si vous souhaitez uniquement les éléments liés à 18.04)


Avant 18.04: dnsmasq en tant que résolveur de mise en cache local

Avant 18.04, lorsque vous utilisiez l'interface graphique Ubuntu, _dnsmasq était installé à côté de Network Manager. L'intégration de Network Manager avec dnsmasq mettrait à jour la liste dnsmasq des serveurs de "saut suivant" (serveurs DNS en amont) pour indiquer où envoyer une requête.

Par conséquent, une requête DNS pour google.com passerait de l'application qui demande la résolution à dnsmasq. Si dnsmasq ne connaissait pas l'adresse IP ou si une entrée en cache avait expiré, la requête DNS serait transmise à tout serveur DNS en amont ( pour cet exemple, 8.8.8.8 ou 8.8.4.4). Vous devez ensuite vérifier Network Manager ou la configuration dnsmasq pour savoir où se trouvent les serveurs DNS "en amont".

C'est un comportement typique dans un Ubuntu graphique installé à partir des ISO de bureau.

À l’inverse, l’installation par défaut à partir des ISO de serveur a suivi la méthode traditionnelle "update /etc/resolv.conf" via le package resolvconf et a utilisé /etc/resolv.conf directement au lieu de communiquer via dnsmasq.


18.04: netplan et systemd-resolved

Avec 18.04, le système DNS par défaut est systemd-resolved. Cela fonctionne comme le dnsmasq de l'ancien, sauf qu'il le fait pour les installations ISO de bureau et de serveur actuellement. Il peut également s'intégrer à Network Manager (utilisé dans les environnements d'interface graphique pour gérer le wifi, etc.), et à Netplan (qui gère mieux les éthernets).

systemd-resolved provient de netplan (serveurs ou postes de travail personnalisés) ou Network Manager (images du bureau par défaut) de la liste des serveurs DNS auxquels envoyer les requêtes (configurées statiquement ou via DHCP). Par conséquent, en utilisant le même exemple que ci-dessus, une requête DNS vers google.com transmettrait par le résolveur de stub de systemd-resolved qui renverrait la valeur de recherche en cache ou la transmettrait aux serveurs DNS en amont.

Ceci émule le comportement par défaut de dnsmasq, mais ajoute également un traitement de recherche supplémentaire pour la manière dont "localhost" et d'autres adresses liées à la localisation peuvent être interrogés.

Avec NetPlan ou Network Manager, vous pouvez obtenir la liste des serveurs DNS en amont via systemd-resolved à l'aide de la commande suivante:

systemd-resolve --status

ce qui vous donnera un tas de sortie. La section pertinente ressemblerait à ceci (tiré de la réponse de chili555 pour plus de commodité):

DNS Servers: 8.8.8.8
             8.8.4.4
             2600:1700:5aa0:830::1
4
Thomas Ward

Déni de responsabilité: Il s'agit d'une conjecture bien éduquée et non d'une réponse canonique et documentée.

Toute application que j'ai essayée utilise les serveurs de noms /etc/resolv.conf.

Sur mon système 18.04, la section non commentée, c'est-à-dire réellement opérationnelle, de /etc/resolv.conf dit:

nameserver 127.0.0.53

Je pense que c’est un symptôme de l’utilisation de Dnsmasq, le système qui met en cache les informations DNS. Cela signifie, je crois, qu’il faut tout d’abord regarder dans le cache local avant de demander aux serveurs de noms externes.

Mais le cache local ne contient aucune information de serveur de noms concernant un site Web qui n’a jamais été visité auparavant. Dans ce cas, le système utilise des serveurs de noms DNS externes déclarés. Ceux-ci peuvent être déclarés dans/etc/network/interfaces dans des systèmes plus anciens; dans /etc/netplan/*.yaml dans les systèmes plus récents ou, dans presque toutes les installations de bureau, dans Network Manager.

En fait, /etc/resolv.conf nous explique comment trouver les serveurs de noms externes.

Exécutez "systemd-resolution --status" pour afficher des détails sur les serveurs DNS de liaison montante actuellement utilisés.

Dans mon système, le rapport indique notamment:

DNS Servers: 8.8.8.8
             8.8.4.4
             2600:1700:5aa0:830::1

En bref, je pense que les serveurs de noms DNS sont déclarés dans netplan pour indiquer au système où chercher si les informations DNS ne sont pas trouvées dans le cache local.

2
chili555