On appelle résolution de noms de domaines (ou résolution d'adresses) la corrélation entre les adresses IP et le nom de domaine associé.
Le fichier HOSTS
Avant le DNS, la résolution devait se faire grâce à un fichier texte appelé
HOSTS, local à chaque ordinateur. Sous UNIX, il se trouve dans le répertoire
/etc. Sous Windows, il se trouve par défaut dans
%SystemRoot%\system32\drivers\etc.
Dans ce fichier, chaque ligne correspond à une adresse IP à laquelle peuvent être associés un ou plusieurs noms de domaines.
Voici à quoi ressemble le contenu d'un fichier
HOSTS :
Code : Console | 127.0.0.1 localhost
127.0.1.1 user-laptop
#The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhost |
L'adresse IP est séparée du nom de domaine par une tabulation.
Cependant, ce système pose un problème de maintenance car le fichier doit être recopié sur tous les ordinateurs du réseau. On ne peut pas non plus organiser hiérarchiquement les domaines. C'est pour résoudre ce problème que le DNS a été mis au point, en 1983.
Ce fichier est encore présent sur tous les ordinateurs, il peut notamment permettre d'interdire l'accès à certains sites.
Le DNS
Ce chapitre n'est qu'un résumé succinct sur le fonctionnement du DNS, celui-ci est en réalité plus complexe que ce qui est décrit ici !
Le système précédent de tables de conversion (le fichier
HOSTS) nécessitait la mise à jour manuelle des tables de tous les ordinateurs d'un même réseau en cas d'ajout ou de modification d'un nom de machine. De plus, avec l'explosion de la taille des réseaux et leur interconnexion, il a fallu mettre en place un système de gestion des noms hiérarchisé et plus facilement administrable. Le système nommé
Domain Name System (
DNS) a été mis au point en novembre 1983 par Paul Mockapetris.
Ce système propose :
- un espace de noms hiérarchique permettant de garantir l'unicité d'un nom dans une structure arborescente, à la manière des systèmes de fichiers d'UNIX ;
- un système de serveurs distribués permettant de rendre disponible l'espace de noms ;
- un système de clients permettant de « résoudre » les noms de domaines, c'est-à-dire interroger les serveurs afin de connaître l'adresse IP correspondant à un nom.
Avec DNS, la résolution se fait par l'intermédiaire d'un serveur. Quand un utilisateur souhaite accéder à un serveur web, son ordinateur émet une requête spéciale à un serveur DNS, celui-ci répond en retournant l'adresse IP du serveur.
Il est également possible de poser la question inverse. On parle alors de résolution inverse.
Il existe des milliers de serveurs DNS dans le monde entier. Chacun n'a en réalité à sa disposition qu'un ensemble d'informations restreint.
Quand un client a besoin de résoudre un nom de domaine, il doit connaître l'adresse IP d'un ou plusieurs serveurs de rattachement, c'est-à-dire ceux qui vont éventuellement faire suivre la requête à un ou plusieurs autres serveurs de noms pour fournir une réponse. Les fournisseurs d'accès à internet mettent normalement à disposition de leurs clients ces serveurs de rattachement.
Quand un serveur DNS (par exemple celui d'un fournisseur d'accès à internet) doit trouver l'adresse IP correspondant à un nom de domaine, une certaine communication s'instaure alors avec d'autres serveurs DNS qui, s'ils ont l'adresse du domaine demandé, vont la renvoyer au client.
Schéma de fonctionnement du DNS :
- 1. Le client demande l'adresse IP correspondant au domaine xmco.com.
- 2. Le serveur DNS de rattachement transmet la requête à différents serveurs DNS.
- 3. Le serveur DNS qui a l'enregistrement correspondant (ici le seul représenté) le renvoie au serveur DNS de rattachement.
- 4. Le serveur DNS de rattachement renvoie l'adresse IP au client qui va alors pouvoir se rendre sur le serveur de l'application.
Hep ! C'est quoi un serveur « ayant autorité » ?
Souvenez-vous, les serveurs DNS sont interconnectés et ne possèdent qu'un nombre restreint d'informations. De plus, les noms de domaines sont désormais organisés de manière hiérarchique. Cela veut dire qu'un domaine ne peut exister que si le domaine de niveau supérieur existe. En clair,
siteduzero.com peut être défini car le TLD
com existe et
www.siteduzero.com également car
siteduzero.com est défini. Le serveur qui a autorité sur le domaine est le serveur qui possède l'enregistrement complet. Lors d'une résolution, il y a une délégation d'autorité entre les serveurs jusqu'à ce que celui qui ait l'enregistrement complet soit trouvé.