Comment DynamicDNS agit-il immédiatement?


16

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.compour 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.

Réponses:


3

Ma réponse précédente contenait de fausses informations car j'avais quelques idées fausses sur la façon dont les modifications DNS sont propagées. Voici donc une deuxième tentative. Pour une explication détaillée, je vous encourage à lire la réponse d'Alex .

À ma connaissance, la vitesse à laquelle un changement DNS se propage dépend de deux facteurs:

  1. Transferts de zone entre les serveurs DNS faisant autorité pour une zone.
  2. L'ensemble TTL pour les enregistrements uniques dans cette zone.

Transferts de zone

Étant donné que vous avez besoin de deux serveurs de noms distincts pour gérer une zone, vous souhaitez que ces serveurs disposent rapidement de la dernière version de cette zone.

Ceci est réalisé soit en tirant la dernière version de la zone à un intervalle fixe, soit en attendant un NOTIFY depuis un serveur de noms autorisé.

Étant donné que ce mécanisme est sous le contrôle total de celui qui exécute les serveurs de noms, tout retard dans ce domaine peut être entièrement contrôlé.

TTL

Le TTL est un délai d'expiration spécifié pour chaque enregistrement de ressource unique dans une zone. Cette valeur définit la durée pendant laquelle l'enregistrement doit être mis en cache par des fournisseurs DNS non autorisés.

N'oubliez pas que cette valeur n'entre en jeu que si un enregistrement existant est modifié. Les nouveaux enregistrements ne peuvent pas encore être mis en cache.

Étant donné que le TTL est également sous le contrôle total de celui qui contrôle la zone, le retard peut également être entièrement contrôlé.


Merci @Oliver (+1) - Il semble donc qu'un "roulement instantané" soit une légende urbaine! Je suppose que ma question de suivi serait: pourquoi ne pas simplement modifier mes enregistrements DNS moi-même? Est-ce parce que ces entreprises proposent des API pour que les modifications DNS puissent être automatisées lorsque certains événements se déclenchent? Je suppose que je cherche à quoi ils servent en premier lieu!
pnongrata

1
@zharvey: Vous pouvez, bien sûr, exécuter votre propre serveur DNS et modifier directement vos zones vous-même. Mais vous devez fournir au moins 2 serveurs DNS distincts faisant autorité pour que votre zone soit acceptée par les serveurs racine. Les gens n'ont généralement pas ce genre d'infrastructure à leur disposition.
Der Hochstapler

1
Vous pouvez modifier vous-même les enregistrements DNS. Vous avez juste besoin d'exécuter une paire de serveurs de noms (dans différents sous-réseaux). DynDNS fait cependant cela pour vous et permet des mises à jour relativement faciles. Fondamentalement, vous externalisez du travail.
Hennes

@zharvey, bien sûr, vous pouvez avoir un "roulement instantané". Si vous voulez dire cela littéralement, laissez simplement les deux machines changer leurs IP (ce qui n'est pas toujours possible). En dehors de cela, vous aurez toujours un certain retard. Habituellement, si les services doivent être déplacés vers différents serveurs, l'administrateur modifie le TTL à l'avance (par exemple, le réduit à quelque chose comme 1h) - donc lorsque le changement a lieu, le délai sera minime. Après cela, TTL sera à nouveau augmenté (par exemple à 24h ou plus) pour permettre une meilleure mise en cache et des réponses plus rapides sur les requêtes DNS. Mais cela n'implique généralement pas DynDNS;)
Izzy

2
Désolé d'être impoli, mais cette réponse est fausse à presque tous les égards.
Alex

18

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 .

  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.

  2. 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.

  3. 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.

  1. 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.

  2. 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.

  3. 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 .

  4. 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.


Je suis désolé qu'il est sorti ce bavard. Peut-être que quelqu'un veut faire une variante plus courte (comme réponse séparée) - vous êtes les bienvenus.
Alex

@zharvey En fait, vous avez demandé quelle est la différence entre dynamique et non dynamique - c'est 1. À quelle vitesse ils gèrent les étapes (2) et (3) et 2. À quelle faible TTL ils vous permettent de définir.
Alex

3

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.


Merci @Hennes (+1) - veuillez voir ma question sous la réponse d'Oliver - J'ai la même question pour vous!
pnongrata
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.