Le système des noms de domaine Internet

Transcription

Le système des noms de domaine Internet
Le système des noms de
domaine Internet
expliqué aux non-spécialistes
Briefing n° 16 des membres de l’Internet Society
par Daniel Karrenberg
Le système des noms de domaine expliqué aux non-spécialistes
Chers non-spécialistes,
Ceci s'adresse à vous, qui avez toujours voulu ou eu besoin de savoir comment les noms sur
l'Internet fonctionnent vraiment. Le système des noms de domaine Internet (Domain Name
System - DNS) est une technologie fascinante ; pratiquement toutes les applications Internet s'en
servent. Après avoir lu ce document, non seulement vous serez subitement devenu expert en
DNS, mais vous comprendrez comment fonctionne le DNS et vous devriez être dorénavant
capable de distinguer un véritable expert en DNS d'un imposteur.
Chers experts,
Ce document ne s'adresse pas à vous. Dans l'intérêt d'expliquer les principes, nous aurons
souvent recours à des généralisations à tel point que nos explications ne seront pas toujours
exactes dans leur moindre détail. C'est en consultant les normes Internet appropriées que vous
trouverez tous les détails.
Rôle du DNS
Le DNS a pour objectif de permettre aux applications Internet et à leurs utilisateurs de nommer ce
qui doit avoir un nom unique à l'échelle globale. Des noms facilement mémorisables pour des
choses telles que les pages Web et les boîtes aux lettres, plutôt que de longues séries de chiffres
ou de codes présente l'un des avantages évident du DNS. Ce qui est moins évident mais tout
aussi important est la séparation du nom de quelque chose de son emplacement. Les choses
peuvent être déplacées vers un endroit totalement différent du réseau de façon entièrement
transparente, sans devoir procéder à un changement de leur nom. www.isoc.org peut se trouver
sur un ordinateur en Virginie aujourd'hui et sur un autre ordinateur à Genève demain, sans que
quiconque ne s'en aperçoive.
Afin de réussir cette séparation, les noms doivent être traduits sous forme d'autres identifiants que
les applications utilisent pour communiquer via les protocoles Internet appropriés. Regardons ce
qui se passe lorsque vous m'envoyez un message email à [email protected]. Un
serveur de courrier tentant de livrer le message doit découvrir où envoyer le courrier pour les
boîtes aux lettres à 'ripe.net'. C'est à ce moment-là que le DNS entre en jeu. Le serveur de
courrier transmet cette question, appelée une « requête » en terminologie DNS, au DNS. Il reçoit
www.internetsociety.org
rapidement comme réponse :
ripe.net. 1800 IN MX 100 postman.ripe.net.
ripe.net. 1800 IN MX 150 postboy.ripe.net.
« le courrier pour ripe.net doit d'abord être envoyé à l'ordinateur appelé postman.ripe.net. Si
postman.ripe.net n'est pas disponible, essayer postboy.ripe.net ».
Le serveur de courrier va maintenant faire la connexion avec postman.ripe.net. Pour ce faire, il
doit connaître l'adresse Internet numérique pour postman.ripe.net'. Cette adresse numérique
suffit pour envoyer des paquets Internet directement à l'ordinateur appelé postman.ripe.net à
partir de n'importe où sur Internet. De nouveau, une requête est envoyée au DNS qui renvoie
« 193.0.0.199 ».
postman.ripe.net. 172800 IN A 193.0.0.199
À partir de là, le serveur de courrier qui livre votre message peut communiquer directement avec
le serveur de courrier qui reçoit et stock mon courrier que je pourrai récupérer plus tard.
Il est évident que les informations que nous venons d'obtenir dans notre exemple ne peuvent pas
provenir d'une liste centralisée quelque part. Cette liste serait trop grande, changerait trop
souvent et elle serait rapidement inondée de requêtes.
Alors, comment ça marche vraiment ?
Suivons la requête DNS en partant de votre ordinateur. Votre ordinateur connaît l'adresse d'un
« serveur mandataire » DNS à proximité auquel il enverra la requête. Ces serveurs mandataires
sont généralement exploités par les personnes qui vous fournissent votre connectivité Internet. Il
peut s'agir de votre prestataire de services Internet dans un contexte résidentiel, ou de votre
service informatique d'entreprise dans un contexte professionnel. Votre ordinateur peut
apprendre l'adresse des serveurs mandataires disponibles automatiquement lorsqu'il se connecte
au réseau ou ces adresses peuvent être configurées par votre administrateur de réseau de façon
statique.
Lorsque la requête parvient au serveur mandataire, il y a de bonnes chances que ce serveur
connaisse déjà la réponse parce qu'il s'en est souvenu, il l’a « mise en cache » en terminologie
DNS, au cours d'une transaction précédente. Donc, si quelqu'un utilisant le même serveur
mandataire a récemment envoyé un email à quelqu'un à ripe.net, toutes les informations
nécessaires seront déjà disponibles et le serveur mandataire n'aura qu'à envoyer les réponses
qu'il a dans son cache à votre ordinateur. Vous voyez comment la mise en cache accélère
considérablement l'obtention de réponses à des requêtes pour des noms répandus. Un autre
effet important du cache est la réduction de la charge sur le DNS dans son ensemble, parce que
de nombreuses requêtes ne vont pas au-delà des serveurs mandataires.
Détails - hiérarchies des caches
Les serveurs mandataires peuvent également être disposés selon une hiérarchie. Cela a du
sens dans les cas où la capacité de réseau est limitée et/ou la latence de réseau entre le client
DNS et le reste de l'Internet est élevée. Lorsque vous connectez un ordinateur portable à
l'Internet via un accès commuté, il est logique d'exploiter un serveur mandataire directement
sur le portable. Ainsi, chaque clic sur un hyperlien sur le même site Web n'entraînera pas un
trafic DNS sur la connexion d'accès commuté. Un tel serveur mandataire local est souvent
www.internetsociety.org
2
configuré de sorte à envoyer toutes les requêtes pour lesquelles il n'a pas de réponses dans
son cache au serveur mandataire du prestataire de service Internet.
Parfois, les réseaux d'entreprises disposent de serveurs mandataires locaux qui, à leur tour,
envoient les requêtes à un serveur mandataire d'entreprise avant qu'elles soient envoyées à
l'Internet. Ainsi, le serveur mandataire de l'entreprise peut élaborer un vaste cache en fonction
des requêtes qui lui parviennent de l'ensemble de l'entreprise.
Au-delà du cache
Si le serveur mandataire ne trouve par la réponse à une requête dans son cache, il doit trouver un
autre serveur DNS qui la détient. Dans notre exemple, il va chercher un serveur qui a les
réponses à tous les noms se terminant par ripe.net. En terminologie DNS, un tel serveur est
qualifié de « serveur autoritaire » pour le « domaine » ripe.net.
Dans de nombreux cas, notre serveur mandataire connaît déjà l'adresse du serveur de noms
autoritaire pour ripe.net. Si quelqu'un utilisant le même serveur mandataire s'est récemment
rendu sur www.ripe.net, le serveur mandataire a eu besoin de trouver le serveur de noms
autoritaire pour ripe.net à ce moment-là, et s'agissant d'un serveur mandataire, il a naturellement
mis dans son cache l'adresse du serveur de noms autoritaire.
Ainsi, le serveur mandataire enverra la requête concernant les serveurs de courrier pour ripe.net
au serveur de noms autoritaire pour ripe.net, recevra une réponse, enverra cette réponse
directement via votre ordinateur et mettra la réponse également dans son cache.
Notez que jusqu'à présent, seul votre serveur mandataire et le serveur de noms autoritaire pour
ripe.net ont été impliqués dans la réponse à cette requête.
Redondance - De nombreux serveurs avec les mêmes réponses
Maintenant, que faire si le serveur mandataire ou le serveur de noms autoritaire pour ripe. net ne
sont pas joignables ? Il est évident alors que votre serveur de courrier ne recevrait pas de
réponse et ne pourrait pas immédiatement livrer votre message. Il mettrait simplement le
message dans une file d'attente et essaierait plus tard. Par contre, si votre navigateur Web a
besoin de trouver l'adresse de www.ripe.net lorsque vous cliquez sur l'hyperlien de ce site, la
situation est différente. Le navigateur paraîtrait bloqué en attendant que le nom www.ripe.net soit
résolu en une adresse numérique, parce qu'il ne pourrait pas contacter le serveur web sans
connaître cette adresse numérique. Soit vous vous fatigueriez d'attendre et feriez autre chose, ou
votre navigateur vous donnerait un message d'erreur après le délai d'expiration de la requête
DNS. Cela ne se produit pas très souvent parce qu'il y a un gros potentiel de redondance dans
l'architecture de l'Internet, tout particulièrement pour le DNS.
Pour s'assurer d'une forte disponibilité, le DNS dispose de multiples serveurs qui contiennent tous
les mêmes données. Pour contourner le problème du serveur mandataire local non disponible,
votre ordinateur a généralement configuré un certain nombre d'entre eux parmi lesquels il peut
choisir. Ainsi, on peut être sûr qu'il y a toujours un serveur mandataire disponible. Mais qu'en estil des serveurs de noms autoritaires ?
Pour améliorer la disponibilité des serveurs de noms autoritaires, il en existe toujours un certain
nombre pour chaque domaine. Dans notre exemple de ripe.net, il y en a cinq, trois en Europe, un
en Amérique du Nord et un en Australie.
www.internetsociety.org
3
ripe.net.
ripe.net.
ripe.net.
ripe.net.
ripe.net.
172800 IN NS ns.ripe.net.
172800 IN NS ns2.nic.fr.
172800 IN NS sunic.sunet.se.
172800 IN NS auth03.ns.uu.net.
172800 IN NS munnari.OZ.AU.
Notre serveur mandataire ne dispose pas d'un endroit pour consulter des informations autoritaires
concernant les noms ripe.net mais de cinq, lesquels sont tous autoritaires au même niveau. Il est
entièrement libre de choisir l'un quelconque de ceux-ci en fonction de sa propre préférence car ils
contiennent tous les mêmes informations ; le choix pourrait être fait soit entièrement au hasard
soit en fonction des temps de réponse précédents de ces serveurs. Il suffit de se rappeler que
n'importe quel choix est un choix valide.
Ce mécanisme offre le potentiel pour une redondance relativement solide qui recouvre à la fois
les problèmes de serveurs et de connectivité puisque les serveurs peuvent être situés n'importe
où sur Internet. Bien sûr, le degré de redondance réellement atteint dépend de la conception et
de l'emplacement des serveurs. Une assez grande entreprise a découvert ceci il y a quelques
années lorsque ses deux serveurs de noms autoritaires situés dans la même pièce sont devenus
inaccessibles à partir de l'Internet en raison d'un problème de réseau qui « ne pouvait pas se
produire ».
Saisie des informations dans le DNS
Les informations sont saisies dans le DNS en modifiant les bases de données utilisées par les
serveurs de noms autoritaires pour répondre aux requêtes. Comment ces bases de données
sont entretenues et transmises aux serveurs est une question d'implémentation locale qui est
entièrement transparent aux clients DNS et qui ne fait pas partie du champ de la présente
description.
Pour les plus petits domaines, un fichier texte local est souvent modifié sur l'un des serveurs de
noms autoritaires puis transféré aux autres. Dans le cas présent, le serveur de noms
autoritaire sur lequel le fichier est maintenu s'appelle le serveur « maître » et les autres
serveurs de noms autoritaires sont appelés les serveurs « esclaves ». Toutefois cette
distinction est invisible au reste du DNS puisque tous les serveurs ont une autorité équivalente.
Montée dans la hiérarchie
Considérons maintenant la situation où notre serveur mandataire vient juste de démarrer et dont
le cache est vide. Par conséquent, il ne connaît pas la réponse à votre requête ni ne sait où se
trouvent les serveurs de noms autoritaires pour ripe.net. Par contre, il sait qu'il est possible de
poser des questions pour ripe.net à un serveur de noms autoritaire pour « net » parce que des
points séparent les différentes parties du nom de domaine. Cette connaissance fait partie du
protocole DNS même, qui dit : « Si les serveurs de noms autoritaires pour un nom ne sont pas
connus, retirer la partie la plus à gauche du nom y compris le premier point et
envoyer la requête d'origine à un serveur de noms autoritaire pour ce nom. »
Dans notre exemple, un serveur de noms autoritaire pour « net » ne connaît pas la réponse à une
requête concernant quelquechose.ripe.net parce que les serveurs ripe.net détiennent ces
informations, mais il sait quels sont les serveurs de noms autoritaires pour les requêtes
concernant ripe.net. Donc, au lieu d'une réponse à la requête, le serveur « net » répondra avec
une liste de serveurs de noms autoritaires pour ripe.net, un « renvoi de référence » en
terminologie DNS. Le serveur mandataire recevra le renvoi de référence pour les serveurs
www.internetsociety.org
4
ripe.net. Comme dans l'exemple précédent, il pose alors sa question à un serveur de noms
autoritaire pour ripe.net, obtient la réponse et la renvoie au client qui l'a posée. De plus, comme il
s'agit d'un serveur mandataire, il mettra en cache la réponse et la liste des serveurs de noms
autoritaires pour ripe.net pour toute éventualité future. C'est tout simple.
Mais attendez, nous avons supposé que le cache était vide au départ, alors, comment notre
serveur mandataire sait-il où se trouvent les serveurs de noms autoritaires pour « net » ?
Autrement dit, que se passe-t-il une fois que nous avons enlevé toutes les parties d'un nom de
domaine et que nous ne savons toujours pas où nous rendre pour obtenir une réponse ?
Dans ce cas, il existe un ensemble de serveurs de noms autoritaires particuliers, les serveurs de
noms racine DNS. Ils connaissent les adresses de tous les serveurs de noms autoritaires pour
les noms qui ne contiennent pas un point, les domaines de premier niveau (Top Level Domains TLD) tels que : org, com, ch, uk.
Les serveurs de noms racine sont les seuls serveurs DNS qui doivent être trouvés sans que toute
autre information ne soit mise en cache. Pour résoudre ce problème de démarrage, tous les
serveurs mandataires contiennent une liste préconfigurée d'adresses numériques de tous les
serveurs de noms racine. Au démarrage, un serveur mandataire enverra des requêtes pour la
liste actuelle des serveurs de noms racine à chacune de ces adresses, tour à tour, jusqu'à ce qu'il
obtienne une réponse. Une fois la liste à jour obtenue, il sait où envoyer les requêtes pour les
noms sans point. Cela peut paraître inutilement compliqué, mais cela permet de s'assurer qu'un
serveur mandataire continuera de travailler lorsque les adresses des serveurs de noms racine
changent mais que sa liste n'est pas mise à jour ; ces adresses ne changent pas souvent, mais
elles changent tout de même de temps à autre. Un serveur mandataire pourra utiliser tous les
serveurs de noms racine actuels dans la mesure où il peut accéder à une seule des adresses préconfigurées.
Nom du domaine
Les points séparent les noms de domaine en différentes parties. La séparation à son tour divise
l'ensemble de tous les noms en des domaines différents où la même partie d'un nom peut être
réutilisée, p. ex. ripe.net, mais est entièrement différente de ripe.org. Mais, plus important, ces
domaines peuvent être gérés entièrement indépendamment. L'administrateur des noms « net »
n'a pas besoin de connaître quoi que ce soit sur les noms « org ». Le domaine org est
indépendant du domaine net. En raison de la structure hiérarchique, les administrateurs de sousdomaines au sein d'un domaine peuvent également agir de façon indépendante, p. ex. isoc.org
n'a pas besoin de coordonner quoique ce soit avec nanog.org ni même savoir qu'il existe.
Un dernier exemple
Donc, encore une fois, voici ce qui se passe lorsqu'un serveur mandataire qui vient juste de
démarrer reçoit une requête pour l'adresse www.isoc.org. Après son démarrage, le serveur a
obtenu une liste de serveurs de noms racine et leurs adresses. Lorsque la requête lui parvient, il
ne trouvera pas la réponse pour www.isoc.org dans le cache, ni l'adresse d'un serveur de noms
autoritaire pour isoc.org, ni l'adresse d'un serveur de noms autoritaire pour « org ». N'ayant pas
d'autre choix, il va alors demander à un serveur racine l'adresse de www.isoc.org ; le serveur
racine va lui répondre avec un renvoi contenant la liste de tous les serveurs de noms autoritaires
pour « org ». Notre serveur mandataire enverra sa requête pour www.isoc.org à l'un de ces
serveurs et recevra un second renvoi avec la liste de tous les serveurs de noms autoritaires pour
isoc.org. Lorsqu'il envoie la requête à l'un d'entre eux, il recevra la réponse. Tout ceci se passe
généralement en moins d'une seconde.
www.internetsociety.org
5
À partir de là, le serveur mandataire peut répondre à la même requête encore et encore à partir
de son cache sans avoir à poser la question à un autre serveur. Il peut également envoyer une
requête pour quelquechose.isoc.org directement à un serveur isoc.org et envoyer une question
pour un autre nom se terminant par .org directement à un serveur de noms autoritaire pour
« org ». Ce n'est que lorsqu'il reçoit une requête pour un nom se terminant par autre chose que
.org qu'il devra de nouveau interroger un serveur racine. Le cache va rapidement contenir des
listes de serveurs de noms autoritaires pour tous les domaines habituels, particulièrement pour
les TLD habituels ; généralement, notre serveur mandataire n'aura pas besoin de redemander
cette information pendant plusieurs jours. Cette conception assure que seule une minuscule
fraction de toutes les requêtes devront être traitées par les serveurs racine ou par les serveurs de
noms autoritaires pour les TLD.
www.internetsociety.org
6
Gestion du changement
Qu'en est-il du cas où l'information sur les serveurs de noms autoritaires est mise à jour mais que
les serveurs mandataires dans le monde entier détiennent encore des informations périmées et
éventuellement incorrectes dans leur cache ?
C'est alors que la durée de vie (Time To Live - TTL) du DNS entre en jeu. Chaque partie de
l'information DNS qui peut être mise en cache séparément est associée à une durée de vie. Une
fois que cette durée prend fin, l'information dans le cache doit être éliminée et doit être obtenue
de nouveau d'un serveur de noms autoritaire si besoin est. Le TTL n'est pas configuré localement
dans le serveur mandataire mais il est installé dans le serveur de noms autoritaire et transmis
avec les informations mêmes. Ainsi, l'administrateur d'un domaine peut contrôler le temps qu'il
faut pour que tout changement soit propagé sur l'Internet. En choisissant les valeurs
soigneusement, on peut établir le compromis entre la possibilité de modifier les choses
rapidement d'une part et minimiser les ressources de calculs et de réseautage nécessaires aux
serveurs de noms d'autre part. Si une information particulière ne doit pas changer dans un avenir
proche, on peut avoir un TTL élevé tandis que les informations que l'on sait changer rapidement
peuvent être transmises avec un TTL bas. Il est de pratique courante de réduire le TTL transmis
avec une information qui doit changer afin que ce changement soit rapidement visible sur tout
l'Internet ; une fois le changement effectué, le TTL est alors augmenté de nouveau.
Ceci met fin à notre présentation du DNS pour les non-spécialistes. Nous espérons que vous
l'avez appréciée et que vous avez acquis des connaissances de base sur l'un des fondements de
l'Internet d'aujourd'hui. Peut-être serez-vous intéressé par des d'explications pour les nonspécialistes informés sur d'autres sujets connexes. Nous sommes actuellement en train de
préparer un briefing semblable sur la façon dont le système de serveurs de noms racine DNS est
en train d'évoluer.
www.internetsociety.org
7
Couverture étendue de l'Internet Society
Des articles approfondis, papiers, liens et autres ressources sur une variété de sujets sont
disponibles sur le site ISOC à : www.isoc.org/internet/issues
RFC d'IETF pertinents
Les RFC de base décrivant le DNS sont :
•
1034 Domain names - concepts and facilities (Noms de domaines - concepts et installations)
•
1035 Domain names - implementation and specification. (Noms de domaines - implémentation
et spécification).
Ils ont été mis à jour et étendus par de nombreux autres RFC y compris notamment :
RFC1101,
RFC1183,
RFC1348,
RFC1876,
RFC1982,
RFC1995,
RFC1996,
RFC2065,
RFC2136,
RFC2137,
RFC2181,
RFC2308,
RFC2535,
RFC2845 et
RFC3425.
À propos de l’auteur
Daniel Karrenberg est actuellement expert scientifique en chef auprès du CCR de RIPE. Ses
intérêts comprennent les mesures de l'Internet, le développement de DNS et l'évolution de ce que
les autres appellent souvent
la « gouvernance Internet ».
Dans les années 1990, M. Karrenberg a mené la mise en place du CCR de RIPE, le premier des
registres régional de l'Internet. Il a aidé à élaborer la politique de distribution d'espace des
adresses Internet, en transférant à la fois le développement de politiques et l'implémentation à la
région. Il a également amené le second serveur de noms racine DNS en Europe en 1997.
Internet Society
Galerie Jean-Malbuisson 15
CH-1204 Genève, Suisse
Tél. : +41 22 807 1444
Fax : +41 22 807 1445
http://www.internetsociety.org
1775 Wiehle Ave. Suite 201
Reston, VA 20190, USA
Tel : +1 703 439 2120
Fax : +1 703 326 9881
Email : [email protected]
Au cours des années 1980, M. Karrenberg a aidé à l'élaboration de EUnet et a mené les efforts
de sa transition aux protocoles Internet, faisant de EUnet le premier prestataire de services paneuropéen et en amenant des connexions Internet à de nombreux endroits en Europe et au-delà.
Remerciements
La Série de briefings des membres ISOC est rendue possible par l'assistance généreuse des
Sponsors du Platinum Program de l'ISOC : Afilias, APNIC, ARIN, Microsoft, Qualys, Ripe NCC, et
SIDA.
Pour en savoir plus sur le Platinum Sponsorship Program :
http://www.isoc.org/isoc/
http://www.isoc.org/isoc/membership/platinum.shtml
www.internetsociety.org
8