5.5. Configurer votre solveur de noms

Le `Solveur de Noms' (Name Resolver) fait partie de la bibliothèque standard de Linux. Sa première fonction est de convertir des noms d'hôtes compréhensibles par l'homme, comme `ftp.funet.fi' , en adresses IP compréhensibles par une machine, comme 128.214.248.6.

5.5.1. Qu'y a-t-il dans un nom ?

Vous êtes probablement familiers avec l'aspect des noms d'hôtes Internet, mais vous ne savez pas comment ils sont composés ou décomposés. Les noms de domaine Internet sont hiérarchisés par nature, c'est-à-dire qu'ils ont une structure arborescente. Un `domaine' est une famille, ou un groupe de noms. Un `domaine' peut être subdivisé en `sous-domaines'. Un `domaine de premier niveau' est un domaine qui n'est pas un sous-domaine. Les Domaines de Premier Niveau sont spécifiés dans la RFC-920. Quelques exemples :

COM

Organisations Commerciales

EDU

Organisations ayant rapport avec l'Éducation

GOV

Organisations Gouvernementales (NdT: parfois GOUV en France !)

MIL

Organisations Militaires

ORG

Autres organisations

NET

Organisations ayant un rapport avec l'internet

Nom de Pays

il existe des codes de deux lettres qui représentent un pays donné.

Pour des raisons historiques la plupart des domaines appartenant à des domaines qui ne sont pas basés sur des noms de pays sont pour les organisations situées aux États-Unis, bien que les États-Unis aient aussi le code de pays `.us'. Ce n'est plus vrai pour les domaines .com et .org, qui sont couramment utilisés par des sociétés hors des États-Unis.

Chacun de ces domaines de premier niveau possède des sous-domaines. Les domaines de premier niveau fondés sur les noms de pays sont divisés ensuite en sous-domaines basés sur les domaines com, edu, gov, mil et org . Ainsi par exemple, vous finissez par : com.au et gov.au pour des organisations commerciales ou gouvernementales situées en Australie ; notez que ce n'est pas une règle absolue, car les politiques réelles dépendant de l'autorité qui donne les noms pour chaque domaine.

Le niveau de division suivant représente habituellement le nom de l'organisation. Ces sous-domaines sont variables, souvent ils sont fondés sur la structure en départements de l'organisation mais ils peuvent l'être également sur d'autres critères considérés comme rationnels et compréhensibles par les administrateurs réseau de l'organisation.

La partie tout à fait à gauche du nom est toujours le nom unique assigné à la machine hôte et est appelée le nom d'hôte `hostname', la partie de droite du nom est le nom de domaine `domainname' et le nom complet s'appelle le nom de domaine complètement qualifié `Fully Qualified Domain Name' (ou FQDN).

Si l'on examine l'adresse de la machine de Terry par exemple, le nom pleinement qualifié est `perf.no.itg.telstra.com.au'. Cela veut dire que le nom d'hôte est `perf' et le nom de domaine `no.itg.telstra.com.au'. Le nom de domaine est fondé sur un domaine de premier niveau basé sur son pays, l'Australie et comme son adresse électronique appartient à une organisation commerciale nous avons `.com' comme domaine de niveau adjacent. Le nom de la société est (était) `Telstra' et notre structure interne de noms est basé sur la structure organisationnelle, dans mon cas, ma machine appartient à l'Information Technology Group, section Network Operations.

Habituellement, les noms sont beaucoup plus courts ; par exemple, mon fournisseur d'accès à l'internet est ``systemy.it '' et mon organisation à but non lucratif est ``linux.it'', sans sous-domaine com ou org, aussi mon propre hôte est simplement appelé ``morgana.systemy.it'' et rubini@linux.it est une adresse électronique valide. Notez que le propriétaire d'un domaine a le droit d'enregistrer les noms d'hôtes aussi bien que les noms de sous-domaine ; par exemple le Groupe d'Utilisateur Linux auquel j'appartiens utilise le domaine pluto.linux.it, car les propriétaires de linux.it étaient d'accord pour créer un sous-domaine pour ce groupe.

5.5.2. Les informations nécessaires

Vous devez connaître le domaine auquel votre nom d'hôte appartient. Le solveur de nom effectue la traduction en faisant appel à un `Serveur de Noms de Domaine'. Vous devez connaître l'adresse IP d'un serveur de nom local que vous pouvez utiliser.

Il y a trois fichiers que vous devez éditer, nous en parlerons chacun à leur tour.

5.5.3. /etc/resolv.conf

Le fichier /etc/resolv.conf est le fichier principal de configuration de la résolution de noms. Son format est très simple. C'est un fichier texte avec un mot-clé par ligne. Il y a trois mots-clés typiquement utilisés, qui sont :

domain

ce mot-clé indique le nom de domaine local.

search

ce mot-clé spécifie une liste d'autres noms de domaine pour rechercher un nom d'hôte.

name server

ce mot-clé, qui peut être utilisé plusieurs fois, spécifie l'adresse IP d'un serveur de nom de domaine pour la résolution de noms.

Un exemple de /etc/resolv.conf pourrait ressembler à ceci :

domain maths.wu.edu.au
search maths.wu.edu.au wu.edu.au
name server 192.168.10.1
name server 192.168.12.1

Cet exemple spécifie que le nom de domaine par défaut à ajouter aux noms non qualifiés (c'est-à-dire sans domaine) est maths.wu.edu.au, et que si l'hôte n'est pas trouvé dans ce domaine on peut aussi essayer le domaine wu.edu.au directement. Deux entrées de serveurs de noms sont fournies, chacune d'elles pouvant être appelée par le solveur de noms.

5.5.4. /etc/host.conf

Le fichier /etc/host.conf sert à configurer certaines choses en vue de modifier le comportement du solveur de noms. Son format est décrit en détail dans la page de manuel `resolv+'. Dans le plupart des cas l'exemple suivant vous conviendra :

order hosts,bind
multi on  

Cette configuration indique au solveur de nom de vérifier en premier lieu le fichier /etc/hosts avant d'essayer un serveur de noms. Cela permet aussi au résolveur de nom de renvoyer toutes les adresses valables d'un hôte trouvé dans le fichier /etc/hosts au lieu d'en donner simplement la première.

5.5.5. /etc/hosts

Le fichier /etc/hosts est l'endroit où vous mettez les noms et les adresses IP des hôtes locaux. Si vous mettez un hôte dans ce fichier, alors vous n'avez pas à interroger le serveur de nom de domaine pour obtenir son adresse IP. L'inconvénient est que si l'adresse de cet hôte a changé, vous devez tenir votre fichier à jour. Dans un système bien administré les seuls noms d'hôtes qui apparaissent habituellement sont l'interface loopback, et le nom des hôtes locaux.

# /etc/hosts
127.0.0.1      localhost loopback
192.168.0.1    ma.belle.machine

Vous pouvez spécifier plus d'un nom d'hôte, comme montré dans la première entrée (qui est standard pour l'interface loopback).

5.5.6. Faire tourner un serveur de noms

Si vous voulez faire tourner un serveur de nom local, vous pouvez le faire facilement. Voyez le le DNS-HOWTO ainsi que tous les documents inclus dans votre version de BIND (Berkeley Internet Name Domain).