next up previous contents
Next: ...et la pratique Up: Configurer un serveur de Previous: Configurer un serveur de

Le DNS : la théorie...

Avant d'entrer dans le vif du sujet, cette section propose d'expliquer le principe de fonctionnement du DNS. Comme on l'a vu, pour des raisons de commodité, il est plus facile de manipuler pour un humain des noms significatifs, tels que www.linux-france.org, et des adresses codées sur plusieurs octets pour une machine (comme 216.167.114.128).

Au début des années 1970, un système centralisé à Stanford avec un fichier global HOST.TXT global a fonctionné. On pouvait récupérer la version la plus récente de ce fichier par ftp, ce qui n'était pas pratique. Avec l'explosion du nombre de machines connectées à l'Internet (on estime que plusieurs machines dans le monde apparaissent chaque minute), ce système est devenu totalement ingérable. Un modèle centralisé sur un serveur est donc impossible à mettre en place, du au nombre d'hotes et le nombre de mise à jour nécessaires à apporter.

Le DNS (Domain Name System, Systeme de Nom de Domaine en français) a été conçu pour résoudre ce problème, en proposant un modèle hiérarchisé.

Chaque machine (imprimante, terminal, serveur ...) reliée à un réseau se voit attribuer un petit nom. Ce nom est unique dans le domaine auquel elle appartient. Ainsi, pour les domaines domaine1.com et domaine2.com, on peut avoir deux machines portant des noms similaires ou différents. Par exemple, esmeralda.domaine1.com et esmeralda.domaine2.com désignent deux machines dofférentes, d'adresses IP différentes.

On peut comparer cette adresse à une adresse postale : pour trouver un domicile de façon certaine, on commence par chercher le pays, puis la ville, puis la rue et enfin le numéro. Ici le pays est un nom de domaine de haut niveau. Ils sont bien connus de tous les internautes : .com, .net, .fr ... Le nom de sous domaine peut-être assimilé au nom de la ville dans ce pays. Il peut y avoir plusieurs villes dans le monde ayant le même nom, mais dans un même pays un nom de ville doit être unique, pour pouvoir l'identifier de façon certaine. Eventuellement, si la ville est petite, on peut se contenter de ne préciser que le nom d'une personne : le facteur saura à coup sûr où habite la personne. Pour un sous domaine, on peut également le diviser en sous resaux ou non.

Comme un nom d'hôte complet est ordonné de façon logique, du plus précis au plus vague, le plus simple pour hiérarchiser la recherche est de le faire sur chaque partie du nom. Chaque serveur ne connait que les noms de ses fils (le serveur pour .com sait comment atteindre www.linux-france.com mais pas www.linux-france.org), et renvoie à la racine les requettes qu'il ne sait résoudre. Celle-ci à son tour tente de résoudre une adresse IP en nom en renvoyant l'adresse du serveur pouvant répondre à cette demande (figure 1).

hierarchie.epsHiérarchie du DNS

La hiérarchie DNS est donc divisée en zones. Une zone représente un domaine (fr, org, linux-france.org). Une zone parente peut déléguer une zone fille à un ou plusieurs serveurs de noms, et chaque zone est gérée par un serveur maître et éventuellement plusieurs serveurs secondaires dont le contenu est recopié à partir du serveur maître.

Prenons un cas pratique : résoudre le nom d'hôte machine.division.domaine.fr.

1.
La machine cherchant à atteindre cet hôte contacte des serveurs de noms par défaut (3 au maximum) ;

2.
Si ces serveurs de noms par défaut n'arrivent pas à resoudre ce nom, ils contactent les serveurs de noms à la racine. Il faut donc que tout serveur de noms ait au moins la liste de tous les serveurs de noms de la racine, ainsi que leur adresses IP associées. Parmis les serveurs de noms à la racine, un seul reconnait l'adresse comme valide : celui de la zone .fr. Le DNS de la racine renvoie alors l'adresse du serveur de noms du domaine .fr (donc des noms de domaines du type xxx.fr) ;

3.
Le DNS local interroge alors le DNS de la zone .fr. Si ce serveur de noms n'est capable de résoudre machine.division.domaine.fr, il renvoie la liste des serveurs de noms de la zone domaine.fr;

4.
A son tour, un des serveur de noms de la zone domaine.fr reconnaît le suffixe division.domaine.fr, le serveur de noms de la zone division.domaine.fr, qui connaît l'adresse IP de machine.division.domaine.fr ;

Il y aura donc eu 3 interrogations pour les 3 serveurs de noms par défaut, 1 pour celui de la zone .fr, 1 pour celui de la zone domaine.fr, et 1 pour celui de la zone division.domaine.fr, soit au total 6 serveurs de noms interrogés. Chacun de ces serveurs de noms ne renvoie à chaque fois que l'adresse du DNS mieux à même de répondre.

De plus, chaque serveur DNS garde en mémoire les dernières requettes. Ainsi, si un nom est souvent demandé, il a toute les chances de figurer dans la mémoire du serveur qui n'aura pas besoin d'interroger les autres serveurs : la réponse sera directe.

On voit tout de suite l'avantage de cette méthode : au lieu d'avoir un serveur indexant toute les machines du Web, il y a des milliers de machines indexant un petit bout de l'Internet, en l'occurence leur sous domaine. Cela répartit les informations et les charges sur ces milliers de machines. Il est donc nécessaire de configurer son propre DNS pour son réseau, si on veut que les noms des machines de son propre domaine soient résolus par d'autes hôtes.


next up previous contents
Next: ...et la pratique Up: Configurer un serveur de Previous: Configurer un serveur de
Mathieu DECORE
2000-12-11