Chaque fois que des applications effectuent une recherche DNS dans le système d’exploitation Linux, les fichiers de configuration tels que /etc/hosts et /etc/resovl.conf entrent en jeu pour résoudre le nom DNS.
Dans Linux pour l’ordre de recherche DNS, il utilise le fichier /etc/nswitch.conf.
Dans ce tutoriel, nous allons nous intéresser aux fichier /etc/resolv.conf.
Notamment, qu’est-ce que /etc/resolv.conf et à quoi sert ce fichier système.
Table des matières
Qu’est-ce que et à quoi sert le fichier /etc/resolv.conf
Le fichier /etc/resolv.conf est un fichier texte qui stocke les adresses des serveurs DNS du système.
Chaque ligne du fichier représente un serveur DNS différent.
L’ordre des lignes de ce fichier détermine l’ordre dans lequel les serveurs DNS sont interrogés lors de la résolution des noms d’hôte. Par exemple, si vous avez deux serveurs DNS répertoriés dans votre fichier /etc/resolv.conf, le premier serveur sera interrogé en premier, et s’il n’est pas en mesure de résoudre le nom d’hôte, le deuxième serveur sera interrogé.
En plus de la liste des serveurs DNS, vous pouvez également utiliser le fichier /etc/resolv.conf pour configurer d’autres aspects de la résolution DNS sur votre système. Par exemple, vous pouvez utiliser ce fichier pour spécifier quel serveur DNS doit être utilisé pour résoudre certains types de requêtes, ou pour configurer la durée du système pour attendre une réponse d’un serveur DNS avant de retirer.
En résumé :
- /etc/resolv.conf est un fichier de configuration utilisé pour résoudre les DNS pour les systèmes d’exploitation Linux et UNIX
- Il est utilisé pour configurer les serveurs de noms DNS
- Le fichier fichier /etc/resolv.conf contient des informations lues par les routines de résolution DNS du système
- Le fichier est conçu pour être lisible par l’homme et contient une liste de mots clés avec des valeurs qui fournissent différents types d’informations de résolveur
- Vous devez mettre à jour ce fichier avec votre propre serveur DNS de mise en cache ou serveur DNS de mise en cache ISPS que vous souhaitez utiliser le résolveur devrait interroger
Exemple de /etc/resolv.conf file dans Linux
La syntaxe du fichier /etc/resolv.conf est très simple :
nameserver <serveur DNS Primaire>
nameserver <serveur DNS Seconde>
search malekal.com
Par exemple avec les DNS Google :
nameserver 8.8.8.8
nameserver 8.8.4.4
search malekal.com
Les deux premières lignes indiquent via nameserver l’adresse des serveurs DNS du système.
Ils sont utilisés dans l’ordre.
Si le premier ne fonctionne pas (timeout), le second est pris. Vous pouvez en déclarer autant que vous voulez.
Il faut, au minimum, une entrée nameserver pour avoir un serveur DNS valide.
La troisième ligne de ce fichier est la ligne search, qui indique au système quel domaine doit être utilisé lors de la résolution des noms d’hôte qui ne sont pas entièrement qualifiés.
Par exemple, si vous essayez de pinguer “hôte” sans spécifier un domaine, le système va automatiquement rechercher «hote.malekal.com».
Vous pouvez supprimer cette ligne de votre fichier si vous ne souhaitez pas que le système effectue ce type de recherche. En effet, cette entrée search est facultative.
Visualiser le contenu du fichier vous permet de connaître les serveurs DNS dans Linux facilement.
Comment modifier /etc/resolv.conf
Un administrateur peut modifier /etc/resolv.conf à tout moment à l’aide d’un éditeur de texte.
Bien entendu, il faut respecter la syntaxe sous peine de rencontrer des erreurs DNS.
Assurez-vous de sauvegarder votre fichier /etc/resolv.conf avant d’apporter des modifications, car une erreur dans ce fichier peut causer de graves problèmes avec la résolution DNS sur votre système.
Une fois que vous avez apporté vos modifications, assurez-vous d’enregistrer le fichier et de redémarrer toutes les applications qui peuvent l’utiliser, telles que votre navigateur Web ou votre client de messagerie.
Vous pouvez aussi installer le paquet resolvonf.
Le package RESOLVCONF comprend une base de données simple pour les informations sur le serveur de noms d’exécution et un cadre simple pour notifier les applications des modifications de ces informations.
Pour cela, Resolvconf s’établit ainsi comme l’intermédiaire entre les programmes qui fournissent un serveur de noms informations et applications qui utilisent ces informations.
Comment est généré /etc/resolv.conf
Le fichier /etc/resolv.conf peut être généré automatiquement au démarrage du système selon la configuration des interfaces réseaux.
Ainsi, les modifications effectuées manuellement peuvent être écrasées à chaque redémarrage.
La génération dépend de la distribution Linux et du système utilisé (systemd, NetworkManager, etc)
par systemd avec /etc/systemd/resolved.conf
Systemd peut générer un fichier /etc/resolv.conf à chaque démarrage de Linux en suivant les instructions contenues dans /etc/systemd/resolved.conf.
Cela se fait par les directives DNS et FallbackDNS :
[Resolve] DNS=8.8.8.8 #FallbackDNS=
Par la configuration des interfaces réseaux (Debian)
Le fichier de configuration des interfaces différents d’une distribution Linux à l’autre.
Dans les distributions Debian, Ubuntu, Mint etc, il s’agit du fichier : /etc/network/interfaces
Dans ce dernier, on déclare les interfaces et dans celle-ci on peut déclarer les serveurs DNS avec dns-nameservers.
Par exemple ci-dessous, l’interface eth0 :
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search exemple.com
dns-nameservers 192.168.3.45 192.168.8.10
Lorsque l’on redémarre le service networking, cela réinitialise le fichier /etc/resolv.conf.
Le contenu est alors à nouveau généré.
sudo service networking restart
Il est aussi possible de générer u nouveau fichier /etc/resolv.conf à l’aide de la commande resolvconf.
resolvconf -d eth0
NetworkManager
La configuration des DNS peut se faire aussi dans ce dernier et notamment dans le /etc/NetworkManager/NetworkManager.conf ou dans un sous-officier avec le nom de l’interface se trouvant dans /etc/NetworkManager/system-connections
Voici un exemple de fichier /etc/NetworkManager/system-connections/eno1.
Les serveurs DNS sont à modifier dans l’entrée dns=8.8.8.8;.
[connection] id=eno1 uuid=4518f0a6-0500-4848-a849-85c0c6c389b6 type=802-3-ethernet permissions= secondaries= [802-3-ethernet] duplex=full mac-address=XX:XX:XX:XX:XX:XX [ipv4] method=manual addresses1=192.168.10.251;24;192.168.10.1; dns=8.8.8.8; [ipv6] addr-gen-mode=stable-privacy dns-search= method=auto
Cas des serveurs DNS locaux (en 127.0.0.1)
Le fichier /etcresolv.conf peut retourner un nameserver avec une adresse loopback, par exemple 127.0.0.1.
Cela ne permet donc pas de savoir quels serveurs DNS sont utilisés par le système.
Lorsque l’adresse du serveur de nom est locale, un résolveur DNS interne au système est installé.
En général, il s’agit de Bind ou systemd-resolved
Par exemple, systemd-resolved est un service système qui fournit une résolution du nom de réseau aux applications locales. Il met en œuvre un résolveur de talons DNS / DNSSEC de mise en cache et de validation, ainsi qu’un LLMNR et Résolver et répondeur de MulticastDNS.
Dans ce cas là, vérifiez le contenu de /etc/systemd/resolved.conf si des serveurs DNS sont configurés dans ce dernier.
Si Bind est installé, vérifiez /etc/bind/named.conf.options et les forwarders.
Liens
- Mesurer le débit et lister les connexions réseaux
- Comment configurer une adresse IP sur Ubuntu
- Comment configurer le réseau sur Linux
- nmcli : configurer le réseau NetworkManager sur Linux (Debian, Ubuntu, …)
- /etc/network/interfaces : configurer le réseau sur Debian
- Comment changer la configuration des serveurs DNS sur Linux
- Comment changer la passerelle par défaut sur Linux
- Netstat sur Linux : utilisations et exemples
- Comment utiliser la commande ss sur Linux avec des exemples
- 15 commandes ifconfig pour configurer une interface réseau sous Linux
- 10 commandes “IP” utiles pour configurer les interfaces réseau sur Linux
- 6 outils pour tester la vitesse de la connexion internet sur Linux en ligne de commandes
- Nmap : exemples et utilisations
- TCPDump : capturer et analyser le trafic réseau sur Linux
- 25+ exemples de la commande Hping3
- iperf : tester la vitesse et bande passante entre deux hôtes
- Comment utiliser la commande traceroute sur Linux avec des exemples
- Comment utiliser wget avec 14 exemples
- 16 exemples de la commande CURL
- 6 commandes pour télécharger des fichiers en ligne de commandes sur Linux
- Les commandes Linux réseaux
- Unix socket : fonctionnement et utilisations
- Configurer un serveur DHCP sous Linux (isc-dhcp-server)
- Liste de toutes les commandes Linux