Système de nommage

Présentation du problème

A ce stade, nous avons étudié plusieurs dictionnaires qui permettent de transformer des noms en références. A titre d'exemple :

  • /etc/passwd (login en UID),
  • /etc/shadow (login en mot de passe),
  • /etc/group (groupe en GID),
  • /etc/hosts (nom de machine en adresse IP),
  • /etc/services (nom de service en numéro de port),
  • /etc/network (nom de réseau en adresse IP),
  • /etc/ethers (adresse IP en adresse MAC),
  • etc.

Pour accéder à ces dictionnaires les applications utilisent des API particulières intégrées à la libraire standard du langage C (regardez à titre d'exemple la fonction getpwent avec la commande man 3 getpwent, qui présente les pages du manuel de la section 3, c'est-à-dire les API).

Depuis plusieurs années, les fichiers ne sont plus les seuls dictionnaires. On peut maintenant utiliser le DNS, des bases de données ou des annuaires d'entreprises basés sur LDAP ou NIS. La configuration du choix entre ces systèmes de nommage, se fait dans le fichier /etc/nsswitch.conf (Name Service Switch). Chaque système de nommage doit fournir sa propre implantation des fonctions systèmes dans une libraire dynamique (voir ls /lib/libnss*). Lisez la page de manuel de nsswitch.conf.

Exercices

  • Modifiez le fichier /etc/hosts en ajoutant la nouvelle ligne ci-dessous. En faisant un ping vous pouvez vérifier que votre définition masque l'accès au DNS et donc la véritable adresse du serveur Yahoo. Essayez également avec un navigateur WEB.
    139.124.14.122   www.yahoo.fr
    
  • Modifiez le fichier /etc/nsswitch.conf pour faire en sorte que le DNS soit toujours prioritaire (attention : ce n'est pas la configuration standard). Vérifiez que l'adresse www.yahoo.fr est correctement résolue.
  • Le service de nommage basé sur le DNS se configure à l'aide du fichier /etc/resolv.conf. Quelques manipulations :
    # résoudre un nom DNS
    dig google.fr
    
    # mettre un mauvais serveur DNS
    echo nameserver 10.0.2.6 > /etc/resolv.conf
    
    # Cette résolution ne doit plus fonctionner
    dig google.fr
    
    # remettre un serveur DNS classique et vérifier
    echo nameserver 8.8.8.8 > /etc/resolv.conf
    dig google.fr
    dig sol.dil.univ-mrs.fr
    
    # pour trouver plus facilement
    ping sol  # ne fonctionne pas
    echo search dil.univ-mrs.fr >> /etc/resolv.conf
    ping sol  # fonctionne maintenant