Affubler de noms les numéros IP vise à en faciliter la mémorisation par l'humain. En réalité, une adresse IP identifie une interface réseau — un périphérique associé à une carte réseau ou assimilé ; chaque machine peut donc en compter plusieurs et, par conséquent, recevoir plusieurs noms dans le système responsable de leur attribution : le DNS.
Chaque machine est cependant identifiée par un nom principal (ou « canonique »), stocké dans le fichier /etc/hostname
et communiqué au noyau Linux par les scripts d'initialisation à travers la commande hostname
. On peut en prendre connaissance dans le fichier virtuel /proc/sys/kernel/hostname
.
Étonnamment, le nom de domaine n'est pas géré de la même manière, mais provient du nom complet de la machine, obtenu par une résolution de noms. On pourra le modifier dans le fichier /etc/hosts
; il suffit d'y placer un nom complet de machine au début de la liste des noms associés à l'adresse de la machine comme dans l'exemple ci-dessous :
8.3.1. Résolution de noms
Le mécanisme de résolution de noms de Linux, modulaire, peut s'appuyer sur différentes sources d'informations déclarées dans le fichier /etc/nsswitch.conf
. L'entrée qui concerne la résolution des noms d'hôtes est hosts
. Par défaut, elle contient files dns
, ce qui signifie que le système consulte en priorité le fichier /etc/hosts
puis interroge les serveurs DNS. Des serveurs NIS/NIS+ ou LDAP forment d'autres sources possibles.
8.3.1.1. Configuration des serveurs DNS
Le DNS (Domain Name Service, ou service de noms) est un service distribué et hiérarchique associant des noms à des adresses IP et vice versa. Concrètement, il permet de savoir que www.eyrolles.com
est en réalité l'adresse IP 213.244.11.247
.
Pour accéder aux informations du DNS, il faut disposer d'un serveur DNS relayant les requêtes. Falcot SA a les siens, mais un particulier fait normalement appel aux serveurs DNS de son fournisseur d'accès à Internet.
Les serveurs DNS à employer sont donnés dans le fichier /etc/resolv.conf
à raison d'un par ligne, le terme nameserver
y précédant l'adresse IP, comme dans l'exemple suivant :
nameserver 212.27.32.176
nameserver 212.27.32.177
nameserver 8.8.8.8
Signalons que le fichier /etc/resolv.conf
est modifié automatiquement (et souvent écrasé) lorsque le réseau est géré par NetworkManager ou configuré par DHCP.
8.3.1.2. Fichier /etc/hosts
En l'absence d'un serveur de noms sur le réseau local, il est tout de même possible d'établir une petite table de correspondance entre adresses IP et noms de machines dans le fichier /etc/hosts
, habituellement réservée aux postes du réseau local. La syntaxe de ce fichier, décrite dans hosts(5), est très simple : chaque ligne indique une adresse IP suivie de la liste de tous les noms qui y sont associés (le premier étant « complètement qualifié », c'est-à-dire incluant le nom de domaine).
Ce fichier est disponible même en cas de panne réseau ou quand les serveurs DNS sont injoignables, mais ne sera vraiment utile que dupliqué sur toutes les machines du réseau. Au moindre changement dans les correspondances, il faudra donc le mettre à jour partout. C'est pourquoi /etc/hosts
ne renferme généralement que les entrées les plus importantes (et notamment celle de sa propre machine).
Pour un petit réseau non connecté à Internet, ce fichier suffira, mais à partir de cinq machines il est recommandé d'installer un serveur DNS en bonne et due forme.