OVH Cloud OVH Cloud

Une chose que je ne m'explique pas concernant les dns

8 réponses
Avatar
Patrice Chevee
Bonjour,

ma question est assez technique, mais franchement si on pouvait y repondre
clairement, ça m'aiderait beaucoup a comprendre. J'ai acheté le TCP/IP pour
les nuls, mais a priori je suis un nul hors classement car j'ai mal compris
leurs explications.

J'ai un domaine toto.com sur lequel j'ai défini, depuis plusieurs mois, un
sous domaine titi.toto.com d'adresse ip 1.2.3.4 ; mon hébergeur me
permettant de le faire.

Pour une raison quelconque, j'ai besoin de modifier cette adresse ip en
5.6.7.8, toujours en passant par mon hébergeur.

Ma question: Comment se fait il que ping -a titi.toto.com me renvoie
toujours 1.2.3.4 pendant une encore plusieurs heures, avant d'indiquer
5.6.7.8? Comment se fait il que certaines personnes voient deja 5.6.7.8
alors que moi je vois toujours 1.2.3.4 ?

Corollaire à cette question: comment se fait il que si je change l'ip de
toto.com (pas celle du sous domaine titi) alors il faut que j'attende une
journée complète avant de m'apercevoir du changement effectif?

Merci d'avance de vos réponses éclairées,

Bonne soirée, il est déjà tard .

P.C.

8 réponses

Avatar
Stéphane Santon
Bonjour,

Patrice Chevee a exprimé avec précision :
Ma question: Comment se fait il que ping -a titi.toto.com me renvoie
toujours 1.2.3.4 pendant une encore plusieurs heures, avant d'indiquer
5.6.7.8? Comment se fait il que certaines personnes voient deja 5.6.7.8
alors que moi je vois toujours 1.2.3.4 ?


La transformation de nom de domaine en adresse IP se fait sur le
serveur de nom de domaine le plus "proche" du FAI, il y existe des
milliers (+) de DNS.
Et lorsque tu demandes à TON FAI de modifier une adresse IP, cette
modification doit d'abord se propager sur tous les serveurs DNS... dans
le monde.

Si quelqu'un utilise un FAI dont le DNS est mis à jour avant le tien,
il atteindra 5.6.7.8 alors que toi tu atteindras encore pour quelque
temps 1.2.3.4.

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
--
Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

BTS Electrotechnique *** http://enselec.team-santonum.com

Avatar
Stéphane Santon
Bonjour,

Patrice Chevee a exposé le 18/12/2005 :
Ma question: Comment se fait il que ping -a titi.toto.com me renvoie
toujours 1.2.3.4 pendant une encore plusieurs heures, avant d'indiquer
5.6.7.8? Comment se fait il que certaines personnes voient deja 5.6.7.8
alors que moi je vois toujours 1.2.3.4 ?


La transformation de nom de domaine en adresse IP se fait sur le
serveur de nom de domaine le plus "proche" du FAI, il y existe des
milliers (+) de DNS.
Et lorsque tu demandes à ton *hébergeur* de modifier une adresse IP,
cette modification doit d'abord se propager sur tous les serveurs
DNS... dans le monde.

Si quelqu'un utilise un FAI dont le DNS est mis à jour avant celui de
TON FAI, il atteindra 5.6.7.8 alors que toi tu atteindras encore pour
quelque temps 1.2.3.4.

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
--
Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

BTS Electrotechnique *** http://enselec.team-santonum.com

Avatar
Patrice Chevee
Stéphane Santon wrote:
...

La transformation de nom de domaine en adresse IP se fait sur le
serveur de nom de domaine le plus "proche" du FAI, il y existe des
milliers (+) de DNS.
Et lorsque tu demandes à ton *hébergeur* de modifier une adresse IP,
cette modification doit d'abord se propager sur tous les serveurs
DNS... dans le monde.

Merci de ta réponse. Tu veux dire qu'en fait chaque serveur dns qui existe

dans le monde possède une base de données complète de tous les domaines, de
tous les sous domaines, de tous les sous-sous domaines etc. de l'internet?
Je croyais que ces informations étaient centralisées quelquepart chez
Internic? Car finalement, c'est ça que je n'ai pas vraiment bien compris.

Amicalement,

P.C.

Avatar
Stéphane Santon
Bonjour,

Patrice Chevee vient de nous annoncer :
Merci de ta réponse. Tu veux dire qu'en fait chaque serveur dns qui existe
dans le monde possède une base de données complète de tous les domaines, de
tous les sous domaines, de tous les sous-sous domaines etc. de l'internet?


Non, les serveurs sont hiérarchisés. Je crois qu'il n'y a que 7 ou 8
serveurs (internic?) dans le monde qui contiennent tout.

Chaque serveur 'standard' contient une base de données avec une partie
des noms, correspondant aux plus utilisés, aux plus sollicités dans sa
région. Quand un DNS ne peut pas résoudre un nom, il interroge un DNS
de plus haut niveau.

--
** Anti-Spam : ajouter [usenet] dans l'objet pour ne pas être rejeté.
--
Cordialement, Stéphane *** http://www.team-santonum.com
Loisirs, nature, arts, technologie : accueil en Charente-Maritime

BTS Electrotechnique *** http://enselec.team-santonum.com

Avatar
Pascal
Salut,


ma question est assez technique, mais franchement si on pouvait y repondre
clairement, ça m'aiderait beaucoup a comprendre. J'ai acheté le TCP/IP pour
les nuls, mais a priori je suis un nul hors classement car j'ai mal compris
leurs explications.


Il faut dire que DNS est un peu "en marge" de TCP/IP, c'est un système
qui pourrait exister indépendamment de lui (si, si).

J'ai un domaine toto.com sur lequel j'ai défini, depuis plusieurs mois, un
sous domaine titi.toto.com d'adresse ip 1.2.3.4 ; mon hébergeur me
permettant de le faire.


Un enregistrement A (adresse) de nom titi.toto.com ayant comme donnée
l'adresse IP 1.2.3.4, donc.

Pour une raison quelconque, j'ai besoin de modifier cette adresse ip en
5.6.7.8, toujours en passant par mon hébergeur.

Ma question: Comment se fait il que ping -a titi.toto.com me renvoie
toujours 1.2.3.4 pendant une encore plusieurs heures, avant d'indiquer
5.6.7.8? Comment se fait il que certaines personnes voient deja 5.6.7.8
alors que moi je vois toujours 1.2.3.4 ?


On a coutume de dire qu'il faut un certain temps pour que le changement
"se propage" sur les serveurs DNS. Ce n'est pas tout-à-fait exact, il
serait plus juste de parler d'expiration de l'ancienne donnée.

A chaque enregistrement DNS est attachée une durée de vie ou "TTL" (Time
To Live). Cette information sert aux serveurs DNS caches pour savoir
combien de temps l'information restera valide et peut être conservée
sans avoir à refaire une requête si un client demande à nouveau
l'enregistrement. Quand le TTL arrive à 0 (expire), l'information est
supprimée du cache. Si un client la demande, le serveur cache doit à
nouveau la retrouver en faisant des requêtes à d'autres serveurs DNS.

Sur un serveur cache donné, ce délai part de la dernière fois que cet
enregistrement a été demandé alors qu'il n'était pas en cache.

Quand un enregistrement est modifié sur ses serveurs DNS d'origine, le
comportement des serveurs caches dépend de l'état de l'enregistrement
dans le cache de ceux-ci. S'il n'est pas en cache parce que personne ne
l'a demandé depuis plus longtemps que le TTL, le serveur cache va
récupérer immédiatement la nouvelle donnée. Si l'enregistrement est en
cache avec un TTL donné, le serveur cache continue à servir l'ancienne
donnée jusqu'à ce que le TTL expire. La durée d'expiration de l'ancienne
donnée peut donc varier entre zéro et le TTL défini sur les serveurs DNS
faisant autorité pour le nom de domaine considéré.

Le choix du TTL est un compromis entre la réactivité du système à un
changement et le trafic généré. Plus le TTL est court, plus les
changements seront rapidement pris en compte sur les serveurs caches,
mais plus ceux-ci devront interroger souvent les serveurs d'origine car
l'information reste moins longtemps en cache.

Ainsi, les enregistrement de DNS dynamique (DynDNS, No-IP...) ont un TTL
très court, de l'ordre d'une minute car ils sont susceptibles de changer
souvent. Le TTL d'un enregistrement statique est plutôt de l'ordre d'un
jour. Une astuce pour diminuer le "temps de propagation" en cas de
changement consiste à diminuer le TTL en le passant par exemple de un
jour à une heure au moins un jours avant le changement. Ainsi tous les
DNS caches auront la nouvelle valeur du TTL, de une heure, et seront mis
à jour en une heure maximum.

Corollaire à cette question: comment se fait il que si je change l'ip de
toto.com (pas celle du sous domaine titi) alors il faut que j'attende une
journée complète avant de m'apercevoir du changement effectif?


Le mécanisme est le même, de ce point de vue toto.com est juste un nom
de domaine d'un enregistrement A au même titre que titi.toto.com. Les
TTL des deux enregistrements sont-ils identiques ?

Avatar
Pascal

Patrice Chevee vient de nous annoncer :

Tu veux dire qu'en fait chaque serveur dns qui existe dans le
monde possède une base de données complète de tous les domaines,
de tous les sous domaines, de tous les sous-sous domaines etc.
de l'internet?


Non, les serveurs sont hiérarchisés. Je crois qu'il n'y a que 7 ou 8
serveurs (internic?) dans le monde qui contiennent tout.


Je suppose que tu fais allusion aux serveurs "racines".
En fait ils sont 13, n'appartiennent pas à l'InterNIC (qui n'existe
plus) mais à diverses organisations à travers le monde, et ils ne
contiennent pas "tout" mais seulement la liste des serveurs DNS faisant
autorité pour chaque TLD (domaines de premier niveau comme org, net,
com, fr). En gros, c'est par eux que commence la recherche quand on veut
résoudre récursivement une requête DNS.

Il existe deux sortes de serveurs DNS, ou plutôt deux fonctions : pour
faire simple, il y a ceux qui ont les informations et ceux qui les
cherchent.

Les premiers sont dits "faisant autorité" ("authoritative"), ils
possèdent les données pour un ou plusieurs domaines ("zones" en fait) de
façon permanente. Il n'existe dans le monde que quelques serveurs DNS
faisant autorité pour un domaine donné, le minimum étant deux pour
assurer une certaine redondance. Ces serveurs DNS peuvent être par
exemple ceux du registrar chez qui est enregistré le domaine, ou encore
ceux de l'hébergeur qui héberge le site web et/ou autres services.

Les seconds sont dits "récursifs" ou "caches". "Récursifs" parce qu'ils
n'ont pas les réponses mais savent comment les retrouver en interrogeant
des serveurs faisant autorité de manière récursive, en commençant par un
serveur racine si nécessaire. La seule information qu'il possèdent en
permanence est la liste des noms et adresses IP des serveurs racines.
"Caches" parce qu'il mémorisent de façon temporaire les données
collectées au cours de leurs recherches précédentes (et pas seulement le
résultat final) afin qu'elles puissent éventuellement servir à répondre
à de futures requêtes. Les serveurs DNS caches sont typiquement ceux que
les FAI mettent à disposition de leurs abonnées pour faire les
résolutions DNS.

Prenons l'exemple de la requête suivante adressée par le navigateur d'un
internaute à l'un des serveurs caches de son FAI :

"Quelle est l'adresse IP de www.plouf.fr.eu.org ?"

Supposons que le serveur DNS ne possède aucune information préalable
dans son cache.

1ère étape : il interroge un des serveurs racines qu'il a dans sa liste
en lui posant la même question. Le serveur racine lui répond : "Je n'ai
pas la réponse, mais je te donne les noms et adresses IP des 6 serveurs
faisant autorité pour le domaine org."

2ème étape : le serveur DNS cache interroge un des serveurs faisant
autorité pour org et lui pose la même question. Ce dernier répond : "Je
n'ai pas la réponse, mais je te donne les noms des 7 serveurs faisant
autorité pour le domaine eu.org, et l'adresse IP de celui que je connais
parce que son nom se termine en org."

Les noms des 6 autres serveurs retournés se terminent en uk, net, com ou
fr. Le serveur interrogé ne fait autorité pour aucun de ces domaines. Il
faudrait recommencer une recherche récursive à partir des serveurs
racines pour trouver l'adresse IP de l'un d'eux.

3ème étape : le serveur DNS cache interroge un des serveurs faisant
autorité pour eu.org et lui pose encore la même question. Réponse : "Je
n'ai pas la réponse, mais je te donne les noms des 2 serveurs faisant
autorité pour le domaine plouf.fr.eu.org, et l'adresse IP de celui que
je connais, ns.plouf.fr.eu.org parce que son nom se termine en eu.org."

Le serveur interrogé ne fait pas autorité pour le nom de l'autre serveur
retourné, metroid.nerim.net, ni aucun de ses domaines parents (nerim.net
et net). Il faudrait recommencer une recherche récursive à partir des
serveurs racines pour trouver son adresse IP.

Cette fois on a avancé de deux niveaux d'un coup parce que les serveurs
faisant autorité pour eu.org font aussi autorité pour fr.eu.org.

4ème étape : le serveur DNS cache interroge un des serveurs faisant
autorité pour plouf.fr.eu.org et lui pose toujours la même question. La
réponse dépend du serveur interrogé.

S'il interroge ns.plouf.fr.eu.org, celui-ci répond :
"www.plouf.fr.eu.org est en fait un alias de tourian.nerim.net, dont je
ne connais pas l'adresse IP."

En effet ns.plouf.fr.eu.org ne fait pas autorité pour le nom
tourian.nerim.net ni aucun de ses domaines parents. Il faudrait donc
recommencer une requête récursive à partir des serveurs racines pour
trouver l'adresse IP de tourian.nerim.net.

Si en revanche il interroge metroid.nerim.net après avoir déterminé son
adresse IP, ce dernier répond : "www.plouf.fr.eu.org est en fait un
alias de tourian.nerim.net dont voici l'adresse IP."

Pourquoi le serveur DNS metroid.nerim.net connaît-il la réponse finale ?
Parce qu'il se trouve que par un heureux hasard (bon, pas tant que ça)
il fait autorité à la fois pour les domaines plouf.fr.eu.org et
nerim.net, alors que le serveur DNS ns.plouf.fr.eu.org ne fait pas
autorité pour le domaine nerim.net.

Après cette recherche, le serveur DNS cache a mémorisé non seulement la
réponse mais aussi tous les résultats intermédiaires qui lui permettront
d'accélérer les futures recherches sur les domaines org, eu.org,
plouf.fr.eu.org, net, nerim.net : il sait déjà quels serveurs interroger
directement sans passer par les serveurs racines.

C'est du boulot, hein, pour trouver l'adresse d'un site web. ;-)


Avatar
Patrice Chevee
wrote:
...


Je suppose que tu fais allusion aux serveurs "racines".
En fait ils sont 13, n'appartiennent pas à l'InterNIC (qui n'existe
plus) mais à diverses organisations à travers le monde, et ils ne
contiennent pas "tout" mais seulement la liste des serveurs DNS
faisant autorité pour chaque TLD (domaines de premier niveau comme
org, net, com, fr).
...


Merci pour cette réponse très argumentée!! J'avoue ne pas avoir tout
compris, mais j'ai sauvegardé le post sur mon DD et je le relirai plusieurs
fois :)

A+

Patrice

Avatar
Pascal

Merci pour cette réponse très argumentée!! J'avoue ne pas avoir tout
compris, mais j'ai sauvegardé le post sur mon DD et je le relirai plusieurs
fois :)


Si nécessaire, n'hésite pas à demander des précisions ou
éclaircissements. Mais de préférence dans un forum plus spécialisé comme
fr.comp.reseaux.ip pour le protocole utilisé par les requêtes DNS ou
fr.comp.infosystemes pour l'aspect "système d'information en réseau".