MOOC:Verb33
From Livre IPv6
A quoi sert le DNS ?
Lorsque vous souhaitez consulter un service, comme un site web par exemple, vous le désigner sous forme d'un nom dans une URL. Votre navigateur, par contre, a besoin d'une adresse IP pour pouvoir se connecter à ce service. Il ne peut pas utiliser directement le nom fourni par l'utilisateur.
Pour traduire le nom du site que vous avez donné en adresse IP, votre navigateur va appeler un service de l'Internet appeler système de nommage ou DNS.
Ce service permet de trouver, à la demande, la correspondance entre un nom et une adresse IP. On parle alors de résolution d'un nom en adresse IP. Il permet aussi de trouver, à partir d'une adresse IP, sa correspondance avec un nom. On parle alors de résolution inverse.
Le DNS est essentiel pour le bon fonctionnement de la connectivité de l'usager, car sans lui, il ne pourra utiliser que des adresses IP pour communiquer. Grâce aux nom, l'usage devient plus facile et plus intuitif.
Hiérarchie du système de nommage
Le fonctionnement du système de nommage repose sur une hiérarchie basée sur la structure du nom. Un nom défini dans le système de nommage est composé de différents éléments séparés par un point. Chaque élément correspond à un niveau hiérarchique de gestion, aussi appelé domaine.
Prenons un nom de domaine complet comme www.mooc.example.net. Les différents niveaux de hiérarchie du système de nommage se lisent de droite à gauche. Ici le niveau hiérarchique le plus important est représenté par le mot "net".
Cette hiérarchie peut aussi se représenter sous forme d'un arbre. Au niveau fondamental de cet arbre se situe la racine du système de nommage. Elle se représente par un point qui s'écrit normalement à la fin du nom, mais qu'il est autorisé d'omettre.
Le niveau suivant s'appelle domaine de premier niveau ou, en anglais, "Top-Level Domain". Dans notre exemple, c'est l'élément ".net". C'est à ce même niveau que l'on retrouve des domaines comme ".org", ".com", ".info" et les domaines géographiques comme ".fr", ".eu".
Le domaine suivant dans la hiérarchie est example.net. Ce domaine est inclus dans le domaine ".net", mais il précise un sous-ensemble particulier.
À l'intérieur de ce domaine, on peut retrouver un sous-domaine. Ici, mooc.example.net. Lui-même pourra inclure d'autres sous-domaines, à la manière de poupées russes qui s'emboîtent les unes dans les autres.
Au dernier niveau de la hiérarchie, nous trouvons le nom de domaine complet. Ici, www.mooc.example.net. C'est à ce niveau de hiérarchie qu'est associé le nom avec son adresse IP. Un nom complet, présentant ainsi l'ensemble de la hiérarchie, est appelé "FQDN" ou "Fully Qualified Domain Name".
Interrogation de la hiérarchie DNS
À chaque niveau de hiérarchie est associée une zone qui définit l'ensemble des domaines valides pour cette zone.
Ainsi, au niveau "com", on définira l'ensemble des domaines structurés par un nom.com.
Au niveau "example", on trouvera dans la zone, l'ensemble des noms qui sont structurés de cette manière : un nom.example.com.
Enfin, c'est dans la zone de plus bas niveau, ici, la zone mooc.example.com, que sont définies les correspondances entre les noms de service, ici, www.mooc.example.com, et l'adresse IP du service recherché.
Chacune des zones est hébergée sur un serveur.
Généralement différents, ils sont répartis sur l'Internet.
C'est ainsi que l'architecture du système de nommage est distribuée, garantissant ainsi sa robustesse et sa souplesse de gestion.
Lorsqu'un client cherche à traduire un nom en adresse, il va interroger successivement les différentes zones et donc, les différents serveurs qui hébergent ces zones.
Tout d'abord, le client interroge la racine du système de nommage, lui demandant si elle connaît une correspondance entre le nom www.mooc.example.com et une adresse IP.
La racine ne connaît pas cette correspondance.
Par contre, elle connaît le serveur responsable de la zone "com", dont le nom recherché fait partie.
La racine répond donc au client d'aller consulter cette zone et lui indique le serveur qu'il faudra interroger.
Ainsi, le client va interroger le serveur qui héberge la zone "com", en lui demandant s'il connaît la correspondance recherchée.
Le serveur "com" ne connaît pas cette correspondance, mais connaît le serveur responsable de la zone example.com.
Le client va alors consulter ce serveur.
Le serveur ne connaissant pas la correspondance, il va l'informer du serveur responsable de la zone mooc.example.com.
Finalement, le serveur interroge la zone mooc.example.com, et c'est dans cette zone qu'est définie la correspondance recherchée.
Le serveur responsable de cette zone va donc répondre au client, en lui fournissant l'adresse IP qui est recherchée par le client.
Evidemment, ce parcours de la hiérarchie DNS n'est pas reproduit à chaque demande de traduction d'un nom.
Le client va enregistrer les adresses des serveurs responsables de chaque zone, et, à la prochaine demande de résolution de nom, il interrogera en premier le serveur responsable de la zone la plus précise connue dans le cache qu'il aura construit.
Il n'est pas non plus toujours à la charge de chaque client de l'Internet de parcourir la hiérarchie du DNS.
Cette tâche incombe souvent à des serveurs intermédiaires, généralement déployés dans l'infrastructure des clients.
Ce sont des serveurs dits "de récursion" ou "récursifs".
Les clients sont configurés pour aller consulter ces serveurs, à chaque demande de résolution d'un nom en adresse.
Ce sont ces serveurs qui vont assurer le parcours de la hiérarchie du DNS, jusqu'à l'obtention de la correspondance demandée par le client.
Cette correspondance est ensuite transmise au client.
La mise en mémoire des serveurs intermédiaires intervient, comme précédemment, au niveau du serveur récursif.
L'avantage, ici, est que ce cache va profiter à l'ensemble des clients qui utilisent ce serveur de récursion.
Données du système de nommage
-Les données manipulées par le système de nommage sont des associations entre un nom et plusieurs ressources.
Un nom est soit un nom de domaine, FQDN, représentant de manière intuitive un service, pour le nommage direct, soit un nom créé à partir d'une adresse afin de l'associer, pour le nommage inversé, à un nom de domaine.
Une ressource est une donnée spécifiée par un type qui sera associé à un nom.
Par exemple, le type, pour une ressource d'adresse IPv4, est A.
Pour une adresse IPv6, le type de ressource est AAAA ou quad-A.
Il existe d'autres types de ressource, comme le pointeur vers un autre nom, appelé "type PTR", ou les ressources qui désignent les adresses des serveurs de mail.
Ce sont les ressources de type MX.
Ici, nous présentons un exemple d'association entre un nom et des ressources.
Tout d'abord, pour le nommage direct, le nom www.mooc.example.com est associé à un certain nombre de ressources.
Ici, nous voyons qu'il est associé à une adresse IPv4 et deux adresses IPv6.
Au besoin, l'administrateur de la zone peut enregistrer de nouvelles correspondances avec ce nom ou les modifier. Par exemple, si le serveur www.mooc.example.com change de réseau et doit donc être associé à de nouvelles adresses IP.
Le nommage inversé doit permettre de rechercher le nom correspondant à une adresse donnée.
Le système de nommage fonctionnant sur des noms hiérarchisés, un nom spécial est construit à partir de l'adresse pour être la clé de recherche de la correspondance.
Pour une adresse IPv6, ce nom est construit sous le domaine "ip6.arpa".
On retrouve, dans le nom construit, l'adresse IPv6, mais écrite de droite à gauche.
Chaque chiffre représentant quatre bits étant séparé par un point.
À ce nom spécial est associé un nom de domaine, une ressource qui va être représentée par le type PTR.
Ces associations sont enregistrées dans un serveur qui va être responsable d'une ou plusieurs zones, de différents domaines, mais aussi des zones de nommage inversé.
Chaque zone est maintenue dans un fichier.
Ce fichier contient l'ensemble des associations configurées pour la zone.
Le serveur est donc configuré pour répondre aux demandes de traduction pour les noms liés à cette zone.
De la même manière, il existe des fichiers pour les zones de nommage inversé.
Ils sont maintenus sur le serveur qui est responsable de maintenir les noms associés aux adresses dans le nommage inversé, pour cette zone.
L'interrogation d'un serveur, qu'il soit un serveur hébergeant une zone ou alors un serveur de récursion, se fait en utilisant le transport UDP sur le port 53.
Les demandes au serveur se présentent sous la forme du nom recherché, de domaine ou domaine inversé, et de la ressource demandée pour ce nom.
Ici, par exemple, quelle est la ressource de type quad-A pour le nom www.mooc.example.com ?
Le serveur va regarder dans les zones qu'il gère si une correspondance entre ce nom et une ressource existe.
S'il connaît cette correspondance, alors il répond avec la valeur de la ressource demandée.
Des requêtes spécifiques sont aussi définies dans le protocole DNS pour obtenir l'ensemble des ressources associées à un nom.
Conclusion
Le système DNS est donc un système crucial pour l'Internet car il permet aux utilisateurs de ne pas avoir à manipuler tous les jours des adresses IP.
Ils utilisent ainsi des noms, qui sont des éléments intuitifs pour eux.
Le DNS met en œuvre une architecture qui est distribuée, afin d'offrir un service robuste et facile à gérer.
Dans cette gestion, l'extensibilité est très importante car on doit pouvoir gérer des noms de domaine répartis sur tout l'Internet.
Dans ce système de gestion, ce qui est intéressant, c'est que l'on associe un nom, clé de l'association de ces ressources, à différents types de ressource.
Et, lors de l'intégration de la nouvelle version d'IP, comme IPv6, on a juste eu besoin de définir un nouveau type de ressource pour cette nouvelle version.
Ici, par exemple, on a défini le nouveau type de ressource quad-A pour représenter les adresses IPv6.
Ce qui montre, donc, l'extensibilité du système DNS.
COMPOST
On voit donc ici qu'il y a besoin d'un mécanisme de traduction entre le nom donné par l'utilisateur et l'adresse IP, qui va être utilisée par la machine pour se connecter à ce service.
Cette mise en correspondance entre nom et adresse est mise en oeuvre par un système.
Ce système est un service offert par l'Internet, qui va s'appeler "le système de nommage".
Chaque client qui souhaite traduire un nom en adresse va faire appel au système de nommage, qui va lui fournir cette information à la demande.
L'adresse IP, récupérée à travers le système de nommage, va être utilisée par la station, pour se connecter au serveur recherché.
Le système de nommage est donc essentiel pour que les utilisateurs d'Internet puissent, de leur côté, manipuler des identifiants intuitifs, que sont les noms, et que ces noms puissent être mis en correspondance avec des adresses IP qui, elles, sont des objets techniques manipulés par des machines.
Le système de nommage, ou DNS, permet la résolution d'un nom en adresse IP, c'est le nommage direct, la résolution d'une adresse IP sous forme d'un nom, c'est le nommage inversé, et aussi, l'obtention d'autres ressources liées à un nom, comme le serveur mail d'un domaine.
Le DNS est une sorte de base de données accessible par tout client de l'Internet.
Tout d'abord, cette architecture doit être robuste et disponible, car le système de nommage est une application critique pour le fonctionnement d'Internet.
Ensuite, cette architecture doit être extensible, car les noms sont ajoutés ou enlevés fréquemment sur l'Internet.
Enfin, l'architecture doit permettre une gestion des correspondances nom/adresse distribuée entre les différents sites responsables de ces services. En effet, une gestion centralisée à l'échelle de l'Internet des correspondances reste inenvisageable.