Chaque ordinateur directement connecté à internet possède au moins une adresse IP propre.
Cependant, les utilisateurs ne veulent pas travailler avec des adresses numériques du genre 212.27.48.10, mais avec un nom de domaine ou des adresses plus explicites (appelées adresses FQDN) du type www.free.fr.
Ainsi, on associe des noms en langage courant aux adresses numériques, grâce au système appelé DNS (Domain Name System).
La résolution se fait par l’intermédiaire d’un serveur.
Quand un utilisateur souhaite accéder à un site, comme par exemple www.free.fr, son ordinateur émet une requête spéciale vers un serveur DNS, demandant ’Quelle est l’adresse de www.free.fr ?’.
Le serveur répond en retournant l’adresse IP du serveur, qui est dans ce cas-ci, 212.27.48.10.
Il est également possible de poser la question inverse, à savoir ’Quel est le nom de domaine ou que sont les noms de domaines de telle adresse IP ?’. On parle alors de résolution inverse.
Plusieurs noms de domaine peuvent pointer vers une même adresse IP et réciproquement.
Aux origines de TCP/IP, les réseaux étaient très peu étendus, le nombre d’ordinateurs connectés à un même réseau était faible, les administrateurs réseau créaient des fichiers appelés tables de conversion manuelle.
Ces tables de conversion manuelle étaient des fichiers séquentiels, généralement nommés hosts ou hosts.txt, associant sur chaque ligne l’adresse IP de la machine et le nom littéral associé, appelé nom d’hôte.
Sous UNIX, il se trouve dans le répertoire /etc.
Sous Windows, il se trouve dans %SYSTEMROOT%/SYSTEM32/DRIVERS/ETC.
Dans ce fichier, chaque ligne correspond à une adresse IP à laquelle peuvent être associés un ou plusieurs noms de domaine.
Ce système pose un problème évident de maintenance en nombre : il est difficile d’effectuer des ajouts et modifications, car le fichier doit être également modifié - manuellement - pour tous les ordinateurs du réseau.
Même transmis en ftp, la tâche peut s’avérer longue.
Avec l’explosion de la taille des réseaux, et de leur interconnexion, il a fallu mettre en place un système de gestion des noms hiérarchisé et plus facilement administrable.
C’est ainsi que le DNS fut inventé en 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.