Comprendre et Configurer le Fichier /etc/resolv.conf sous Linux

Le fichier /etc/resolv.conf est un élément central dans la configuration DNS d’un système Unix/Linux. Cet article se propose de détailler son fonctionnement, sa syntaxe, les outils qui l’automatisent et les meilleures pratiques pour le gérer efficacement, afin de répondre aux besoins des administrateurs système et utilisateurs avancés.

Qu’est-ce que /etc/resolv.conf ?

Le fichier /etc/resolv.conf est utilisé par le résolveur DNS de la bibliothèque C pour déterminer comment convertir les noms de domaine en adresses IP. En d’autres termes, il indique quelles adresses de serveurs DNS doivent être interrogées lorsqu’une application tente de résoudre un nom de domaine (par exemple, transformer www.example.com en une adresse IP).

Point clé : sans ce fichier ou en cas de configuration incorrecte, votre machine peut rencontrer des difficultés pour accéder à des ressources internet par leur nom.

Structure et Syntaxe du Fichier

Le fichier /etc/resolv.conf est un fichier texte simple comportant des directives qui peuvent inclure :

  • nameserver
    Chaque directive nameserver suivie d’une adresse IP indique un serveur DNS à interroger. Le résolveur tente les requêtes dans l’ordre où les serveurs sont listés. Par défaut, jusqu’à trois serveurs sont utilisés.

    Exemple :
nameserver 8.8.8.8
nameserver 8.8.4.4    
  • search et domain

    La directive search permet de définir une liste de domaines à ajouter automatiquement aux requêtes incomplètes. La directive domain est une forme simplifiée qui définit un seul domaine par défaut. Ces deux directives sont mutuellement exclusives.

    Exemples :
search example.com localdomain example.com
    
  • options
    La directive options permet de spécifier des paramètres supplémentaires :
    • timeout:n : délai d’attente initial en secondes
    • attempts:n : nombre de tentatives avant abandon
    • ndots:n : nombre minimum de points requis dans un nom

      Exemple :
options timeout:2 attempts:3 ndots:1    

Outils et Méthodes de Gestion

Gestion Dynamique avec resolvconf et systemd-resolved

  • resolvconf : programme intermédiaire entre différentes sources DNS (DHCP, VPN…), qui évite les conflits entre applications.
  • systemd-resolved : gère automatiquement /etc/resolv.conf via un lien symbolique et fournit un résolveur local.
  • NetworkManager : souvent utilisé avec les outils ci-dessus pour gérer dynamiquement la résolution DNS selon les connexions actives.

Configuration Manuelle

Il est parfois préférable de configurer manuellement /etc/resolv.conf, surtout sur des serveurs. Utilisez un éditeur comme vim ou nano, puis verrouillez le fichier pour éviter qu’il soit écrasé :

chattr +i /etc/resolv.conf

Déverrouillez avec :

chattr -i /etc/resolv.conf

Bonnes Pratiques et Dépannage

  • Ordre des serveurs DNS : privilégiez les serveurs rapides et proches géographiquement.
  • Commentaires utiles : indiquez dans le fichier quel outil le gère.
  • Vérification du lien symbolique :
ls -l /etc/resolv.conf    
  • Test de résolution DNS :
 dig example.comnslookup example.com
  • Comprendre qui gère le fichier : consultez la documentation de votre distribution (Ubuntu, Red Hat, Gentoo…)

Exemples de Configuration

Fichier simple

# /etc/resolv.conf
search example.com local
nameserver 8.8.8.8
nameserver 8.8.4.4
options timeout:2 attempts:3

Fichier avec IPv6

# /etc/resolv.conf
domain example.com
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

Conclusion

Le fichier /etc/resolv.conf joue un rôle crucial dans la résolution des noms sur les systèmes Linux/Unix. Comprendre sa structure, les directives qu’il supporte et les outils qui interviennent dans sa gestion vous permet d’optimiser la configuration DNS, de résoudre des problèmes de connectivité et d’adapter votre système à des environnements réseau complexes.

Pour aller plus loin, consultez le manuel : man resolv.conf

Articles similaires

Articles populaires