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".
Distribution de la hiérarchie DNS
À chaque niveau de hiérarchie est associée un ensemble de domaines valides. Cet ensemble est appelé une zone. Ainsi, la zone ".net" définit l'ensemble des domaines inclus dans ".net" et s'écrivant donc "domaine.net". Pour chaque domaine, la zone indique une autre zone correspondant à ce domaine.
La zone "example.net" définit l'ensemble des noms qui sont structurés de cette manière : "nom.example.net". Ces noms sont définis en noms complets, comme "www.example.net", ou alors en sous-domaines, comme "mooc.example.net", en indiquant la zone correspondante.
La zone mooc.example.net définit les informations pour ce sous-domaine. C'est dans cette zone que sera définie la correspondance entre le nom complet www.mooc.example.com, et l'adresse IP du service associé.
Chaque zone est hébergée sur un ou plusieurs serveurs. La gestion de cette zone (sa mise en ligne, ses modifications) est faite sous la responsabilité d'une entité administrative : institution, entreprise ou particulier. On dit d'un serveur hébergeant une zone qu'il fait autorité sur cette zone.
La racine du DNS est hébergé sur 13 serveurs répartis dans l'Internet et gérés en coopération par 11 entités. Ces serveurs sont essentiels au bon fonctionnement du système de nommage, mais ils ne stockent pas les informations de toutes les zones.
Les domaines de premier niveau sont gérés soit par des entreprises, comme Verisign pour le ".net" ou des institutions comme l'Afnic pour le ".fr". Ces entités ont leur propres serveurs qui hébergent les zones pour ces domaines.
Un nom de domaine comme "example.net" sera sous la responsabilité de l'entité, entreprise ou particulier, qui l'aura enregistré dans le système de nommage à travers un bureau d'enregistrement (ou registrar). Cet intermédiaire permet d'enregistrer un nom de domaine dans différents domaines de premier niveau, souvent contre rémunération.
Une fois le domaine enregistré, sa gestion sera déléguée à son responsable. Celui-ci définit la zone correspondante sur son propre serveur, ainsi que les différents sous domaines. Il pourra utiliser ce nom tant qu'il s'acquittera des frais d'enregistrement.
C'est ainsi que le système de nommage est réparti sur plusieurs serveurs gérés par autant d'entités. Cette distribution en garantit la robustesse et la souplesse de gestion.
Interrogation de la hiérarchie DNS
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.
Pour résoudre le nom "www.mooc.example.net", le client interroge la racine du système de nommage, lui demandant si elle connaît une correspondance entre ce nom et une adresse IP.
La racine ne connaît pas cette correspondance, mais connaît le serveur responsable de la zone "net", dont le nom recherché fait partie. La racine répond donc au client d'aller consulter cette zone et lui indique le serveur à interroger.
Le client interroge le serveur de la zone ".net", et lui demandant s'il connaît la correspondance recherchée. Le serveur ".net" ne connaît pas cette correspondance, mais connaît le serveur responsable de la zone "example.net".
Le client consulte alors ce serveur qui ne connait pas non plus la correspondance mais informer le client du serveur responsable de la zone "mooc.example.com".
Finalement, le serveur interroge le serveur de la zone "mooc.example.com". Comme dans cette zone est définie la correspondance recherchée, ce serveur va répondre au client, en lui fournissant l'adresse IP associée au nom "www.mooc.example.com".
Chaque client dans l'Internet ne parcoure pas tous la hiérarchie du DNS. Cette tâche est généralement délégué à des serveurs intermédiaires appelé "serveurs récursifs" qui interrogeront la hiérarchie pour le compte des clients.
Un serveur récursif est généralement déployé dans le réseau proche des clients. L'adresse de ce serveur est fournie au client à travers DHCP ou la configuration automatique.
Ces serveurs vont jouer le rôle de cache en enregistrant les adresses des serveurs responsables de chaque zone. A la prochaine demande de résolution de nom, il interrogera en premier le serveur responsable de la zone la plus précise connue lors de précédents parcours de la racine.
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. Ces associations sont renseignées dans la zone correspondant au nom.
Ainsi dans la zone "mooc.example.net", le nom "www.mooc.example.net" peut être associé à des ressources de différents types.
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.