Requête DNS
Une adresse DNS peut être résolue en adresse IP avec les commandes getent hosts, host, ou encore drill. Les bases de données consultées sont configurées par le Name Service Switch, plus précisément dans l’entrée suivante du fichier /etc/nsswitch.conf:
hosts: files mymachines myhostname resolve [!UNAVAIL=return] dns
Les différentes bases de données sont consultées dans l’ordre:
- files correspond au fichier /etc/hosts pour une configuration locale et manuelle.
- dns correspond à une requête DNS aux serveurs de noms
Systemd fournit d’autres bases de données: mymachines, myhostname et resolve.
Les serveurs de noms utilisé pour une requête DNS est spécifié dans /etc/resolv.conf. Celui-ci est modifié par de nombreux programmes, ce qui rend sa configuration complexe.
- dhcpcd
- “resolvconf is available DNS information will be sent to it, if not, then dhcpcd itself will write to “/etc/resolv.conf“.”
- netctl
- “If you use DNS options in your profile, netctl calls resolvconf to overwrite resolv.conf.”*
- NetworkManager
- “By default “/etc/resolv.conf“ is managed by NetworkManager unless it is a symlink. It can be configured to write it through openresolv or to not touch it at all.”
Sans parlers des outils de gestion des VPN.
Un fichier resolv.conf ressemble à:
search myisp.tld nameserver xxx.yyy.zzz.ttt nameserver xxx.yyy.zzz.ttt
Les entrées nameserver sont les adresses IP des serveurs de noms, l’entrée search indique dans quels domaines chercher les noms qui ne sont pas pleinement qualifiés.
Configuration de resolv.conf via NetworkManager
Un outil en ligne de commande nmcli permet de configurer resolv.conf. NetworkManager store une configuration différente pour chaque connection. Pour lister les connections:
nmcli connection show
(L’argument connection peut être abrégé en con.) Pour voire l’ensemble de la configuration pour une connection, il suffit d’ajouter son id ou son uuid après show. La modification d’une entrée se fait avec modify à la place de show (pour plus de détails, voir l’aide avec help). Par exemple, pour régler les domaines de recherche des noms qui ne sont pas pleinement qualifiés:
nmcli con modify "Conn Ether 1" ipv4.dns-search "domaine1,domaine2"