Initiation aux Réseaux Informatiques et à Internet
PrevChapter 5. TCP/IPNext

La gestion des noms dans TCP/IP

Si le réseau fonctionnait uniquement avec des adresses, il faudrait que chaque site connaisse les adresses de tous les sites avec lesquels il désire dialoguer. Ceci est pratiquement impossible pour un être humain car les adresses ne sont que des nombres et sont de ce fait très peu parlantes [1].

[1] Si on vous présentait une liste de 20 numéros de téléphone de gens que vus connaissez, sauriez vous attribuer le bon nom au bon numéro ?

C'est pourquoi on attribue aussi à chaque point actif du réseau un nom en toutes lettres. Il est en effet beaucoup plus facile de se souvenir que par exemple le serveur WEB de la Faculté de Médecine de Nice s'appelle Noe plutôt que de se rappeler son adresse qui est 134.59.53.10

Aux débuts d'Internet, il y avait une liste unique de correspondance entre les noms de toutes les machines connectées au réseau et leurs adresses. Comme il y avait très peu de machines connectées, c'était assez facile de le gérer. Cependant il fallait recopier cette liste vers tous les ordinateurs du réseau à chaque fois que l'on y ajoutait une nouvelle machine, et cela s'est vite avéré impossible: France Télécom ne vous donne pas un nouvel annuaire à chaque fois qu'il y a un nouvel abonné dans votre département.

Alors quelqu'un a eu une idée géniale. Cette idée tient en deux points:

Ce service d'intérêt commun à tous les utilisateurs du réseau est désigné par le nom Domain Name Services (couramment abrégé en DNS). Chaque nom de machine s'est lors vu attribuer un autre nom, le nom de domaine, et chaque domaine (groupe de machines) est responsable de sa propre gestion des correspondances noms/adresses. Une machine du domaine est alors déclarée serveur de noms pour ce domaine, et elle seule gère la liste des correspondances nom/adresses de ce domaine. On a donc des noms de la forme: nom_de_machine.nom_de_domaine.

Pour connaitre l'adresse d'une autre machine, un ordinateur va alors dialoguer avec le serveur de nom de son domaine et lui donner le nom complet [2] de l'autre machine. Si la machine en question a le même nom de domaine, alors le serveur de nom lui retourne aussitôt l'adresse puisque c'est lui qui est chargé de gérer cette correspondance. En revanche s'il ne l'a pas alors il contacte le serveur de noms situé immédiatement plus haut dans la hiérarchie. Les informations ainsi récupérées bénéficient de surcroit d'une certaine validité dans le temps: on évite ainsi d'itérer inutilement la même requête tout en se gardant une certaine perméabilité vis-à-vis des modifications.

[2] FQDN ou Fully Qualified Domain Name, c'est à dire le nom de la machine suivi d'un point suivi du nom du domaine, qui peut d'ailleurs être un sous-domaine.

Un exemple valant toujours mieux qu'un long discours, supposons que la machine noe.unice.fr veuille connaître l'adresse de la machine sunsite.unc.edu. La première machine fait partie du sous-domaine unice (Université de Nice/Sophia Antipolis) du domaine fr (France). La seconde fait partie du sous-domaine unc (University of North Carolina) du domaine edu (Education US). Voici le schéma de principe, très simplifié du dialogue nécessaire:

Tout cela a pris moins d'une seconde.

On voit donc que DNS est une base de données répartie et d'accès relativement rapide. C'est certainement la plus grosse base de donnée aussi largement répartie au monde. Cette base étant fréquemment modifiée - au moins à la mesure de la croissance du réseau -, des mises à jour sont nécessaires. Lors d'une telle opération, il y a une synchronisation des serveurs de noms concernés par la modification. Cependant, au lieu de faire transiter l'ensemble de la liste des correspondances noms/adresses, seules les nouvelles informations circulent. On utilise généralement plusieurs serveurs DNS par sous-domaine, pour des questions de fiabilité et de rapidité. Si un serveur tombe en panne, alors un autre prend automatiquement le relai. Pour parer aux catastrophes, plusieurs serveurs de noms ne doivent jamais être physiquement stockés au même endroit afin de ne pas être touchés en même temps par un accident.


PrevHomeNext
TCP/IPUpPrincipaux services d'Internet