Ma compréhension de la fonctionnalité principale du DNS est de fournir un service de nommage / mappage entre les noms de domaine (par exemple blah-whatever.com
) et les adresses IP (par exemple 100.2.3.4 ).
En outre, ma compréhension du fonctionnement des serveurs DNS Internet est que lorsqu'un enregistrement de mappage de domaine / IP est modifié (par exemple, en changeant blah-whatever.com
pour pointer vers 105.2.3.4 , etc.), ce changement doit être propagé sur tous les serveurs DNS du monde. avant que le changement puisse être considéré comme "complet". Cette période de propagation peut parfois durer jusqu'à 24 heures.
Donc, pour commencer, si ce que j'ai dit jusqu'à présent est erroné ou incorrect, veuillez commencer par me corriger!
En supposant que je suis plus ou moins correct, je ne comprends pas comment des entreprises comme CloudFlare ou DynamicDNS peuvent offrir des services de type «roulement instantané» par lesquels vous modifiez votre enregistrement DNS avec eux et - boom - le changement prend effet instantanément.
Je comprends qu'il y a quelque chose appelé "TTL" (le temps de vivre, je suppose?!?) Qui joue un rôle dans cette capacité de roulement instantané, mais comme je suis déjà flou sur la capacité de commencer, il est difficile de comprendre ce que ce TTL est ou à quoi il sert.
Je demande donc: qu'est-ce qui concerne Dynamic DNS et ses concurrents qui leur permet de changer les mappages DNS instantanément (sans prendre 24 heures pour propager les changements DNS comme tout le monde), et comment TTL s'intègre-t-il dans ce processus? Merci d'avance.
la source
Vous avez des idées fausses, je vais donc essayer d'expliquer l'ensemble du processus. (Je suis bon avec les détails depuis que j'ai participé à l'exploitation d'un service DNS dynamique public).
Disons que votre domaine est example.com , et disons que le domaine example.com est hébergé par une société DNS dynamique, appelons-le lightfastdns.net (nom fictif). Votre domaine contient un enregistrement DNS - somehost.example.com , qui pointe actuellement vers 1.1.1.1 .
Lorsque vous apportez une modification à votre enregistrement DNS, cette modification est d'abord soumise à un serveur intermédiaire, exploité par lightfastdns.net, par exemple updates.lightfastdns.net . Cela se produit presque instantanément (en fraction de seconde). Vous pouvez soumettre votre mise à jour via l'interface Web ou avec un client de mises à jour dynamiques, ou via une API. Cela n'a pas d'importance, dans tous les cas, cette mise à jour arrivera sur un serveur qui gère les mises à jour DNS.
Ce serveur de mises à jour pousse votre enregistrement mis à jour (disons, 1.2.3.4 ) vers le serveur DNS " maître " de votre domaine. Ce serveur DNS est également exploité par lightfastdns.net . À quelle vitesse cela se produit: dépend de la façon dont le fournisseur DNS a conçu son logiciel. (Il peut être instantané et toutes les 24 heures. Par exemple, les mises à jour DNS push push une fois par heure.) Bien sûr, notre lightfastdns.net le fera instantanément.
Ce serveur DNS maître transmettra les mises à jour aux serveurs DNS esclaves pour le domaine example.com . Ces serveurs sont également exploités par la même société lightfastdns.net . À quelle vitesse cela se produit: avec le logiciel moderne, le maître enverra instantanément un message NOTIFY aux esclaves , et ils obtiendront instantanément l'enregistrement mis à jour du maître. avec les logiciels plus anciens, nous avions des valeurs REFRESH et RETRY dans l'enregistrement SOA, mais aujourd'hui, elles sont rarement pertinentes. Bien sûr, notre lightfastdns.net implémente NOTIFY et les mises à jour se propagent instantanément.
Ce que nous avons maintenant, c'est que tous les serveurs "faisant autorité" de votre domaine ont reçu l'enregistrement mis à jour ( 1.2.3.4 ). Pour lightfastdns.net, cela a pris environ deux secondes.
Maintenant, nous allons déménager au domicile d'Ivan en Russie, et Ivan veut ouvrir " somehost.example.com " dans son navigateur. S'il n'a jamais ouvert cela auparavant, son navigateur ne connaît pas l'adresse, donc le navigateur demandera à son système d'exploitation. Mais s'il a visité le site récemment, l'adresse peut toujours être stockée dans le navigateur et il utilisera l'ancienne adresse (obsolète)! Pour combien de temps ? - Dépend du navigateur, Google Chrome, par exemple, ne stocke les enregistrements DNS que pendant 60 secondes maximum. Nous avons jusqu'à 60 secondes de retard . pour ce fait, je dirais que le changement DNS ne s'est pas encore propagé à ce navigateur.
Dans tous les cas, après 60 secondes, ou immédiatement, le navigateur demandera éventuellement au système d'exploitation d'obtenir l'adresse. Le système d'exploitation peut déjà connaître la réponse (ancienne, obsolète) et la renvoyer, dans ce cas, je dirais que le nouvel enregistrement ne s'est pas encore propagé au système d'exploitation d'Ivan. Combien de temps le système d'exploitation stockera l'ancienne valeur - pour les systèmes d'exploitation modernes contrôlés par le paramètre TTL . TTL dans DNS définit la durée pendant laquelle un enregistrement peut être stocké dans le cache. Notre lightfastdns.net a permis d'utiliser un TTL assez bas - 30 secondes, nous avons donc obtenu un nouveau retard pouvant aller jusqu'à 30 secondes, globalement - 90 secondes jusqu'à présent.
Si OS ne connaît pas la réponse, ou si la réponse qu'il connaissait est désormais dépassée par TTL, OS demandera au résolveur DNS (le FAI d'Ivan lui a attribué un résolveur DNS dns.moscow-telecom.ru ). Ici, l'ancien enregistrement peut être mis en cache jusqu'à TTL secondes, ou dns.moscow-telecom.ru peut ne pas connaître l'adresse. Nous obtenons encore 30 secondes, car dns.moscow-telecom.ru met également en cache DNS pour une valeur ne dépassant pas TTL. Nous avons 120 secondes de retard. C'est ce qui a appelé que le nouvel enregistrement DNS ne s'est pas encore propagé aux serveurs DNS de Moscou-Telecom .
Si le serveur DNS du FAI ne connaît pas la réponse, ou si la réponse qu'il savait est déjà obsolète , car il est TTL a expiré - dns.moscow-telecom.ru demandera un des AUTORITAIRE serveurs DNS pour example.net (vous en souvenez?). Ceux-ci ont obtenu le changement il y a environ 118 secondes, et ils renverront la nouvelle réponse, cette réponse sera immédiatement envoyée par chaîne au résolveur DNS, au système d'exploitation et au navigateur d'Ivan.
Ainsi, la propagation de l'enregistrement a duré de 2 à 120 secondes, selon l'état des différents caches. TTL plus long - des retards plus longs peuvent survenir.
Pour le compléter - certains FAI violent les normes et mettent en cache les enregistrements pendant longtemps. Certains systèmes d'exploitation plus anciens ont conservé l'ancien enregistrement pendant longtemps, ainsi que les navigateurs plus anciens. Mais pour la plupart des utilisateurs, cela fonctionnera comme prévu.
la source
Non. La modification n'a pas besoin de se propager à tous les serveurs DNS du monde .
Si vous changez quelque chose et que quelqu'un interroge l'enregistrement modifié sur votre serveur DNS, le résultat est instantané.
Le problème est que si vous avez demandé ce nom avant et qu'il a été mis en cache. Ensuite, vous obtiendrez l'ancienne adresse IP jusqu'à l'expiration du cache. Dans DNS, vous pouvez définir la durée de validité d'une ancienne requête, et cette période est souvent définie sur plusieurs jours. Pour DynDNS, il est généralement défini sur une valeur inférieure, mais tous les résolveurs DNS n'honorent pas cela.
la source