Wie wirkt DynamicDNS sofort?

16

Mein Verständnis der Kernfunktionalität von DNS besteht darin, einen Namens- / Zuordnungsdienst zwischen Domainnamen (z. B. blah-whatever.com) und IP-Adressen (z . B. 100.2.3.4 ) bereitzustellen .

Nach meinem Verständnis der Funktionsweise von Internet-DNS-Servern muss diese Änderung bei einer Änderung eines Domänen- / IP-Zuordnungsdatensatzes (z. B. blah-whatever.comauf 105.2.3.4 usw.) über alle DNS-Server der Welt übertragen werden bevor die Änderung als "vollständig" bezeichnet werden kann. Diese Vermehrungszeit kann manchmal bis zu 24 Stunden dauern.

Wenn also irgendetwas, was ich bisher gesagt habe, falsch oder falsch ist, fange bitte damit an, mich zu korrigieren!

Angenommen, ich habe mehr oder weniger recht, ich verstehe nicht, wie Unternehmen wie CloudFlare oder DynamicDNS "Instant Rollover" -Dienste anbieten können, mit denen Sie Ihren DNS-Eintrag ändern und - boom - die Änderung sofort wirksam wird.

Ich verstehe, dass es etwas gibt, das "TTL" (time to live, ich nehme an?!?) Genannt wird, das eine Rolle bei dieser sofortigen Rollover-Fähigkeit spielt, aber da ich bereits bei der Fähigkeit, damit zu beginnen, verschwommen bin, ist es schwierig, einen Sinn dafür zu finden Diese TTL ist oder welchen Zweck es dient.

Ich frage also: Was ist mit Dynamic DNS und seinen Konkurrenten, das es ihnen ermöglicht, die DNS-Zuordnungen sofort zu ändern (ohne 24 Stunden zu benötigen, um DNS-Änderungen wie alle anderen zu verbreiten), und wie passt TTL in diesen Prozess? Danke im Voraus.

pnongrata
quelle

Antworten:

3

Meine vorherige Antwort enthielt falsche Informationen, da ich einige falsche Vorstellungen hatte, wie DNS-Änderungen weitergegeben werden. Also hier ist ein zweiter Versuch. Für eine ausführliche Erklärung empfehle ich Ihnen, Alex Antwort zu lesen .

Meines Erachtens sind zwei Faktoren dafür verantwortlich, wie schnell sich eine DNS-Änderung ausbreitet:

  1. Zonenübertragungen zwischen den DNS-Servern, die für eine Zone autorisiert sind.
  2. Die TTL-Einstellung für einzelne Datensätze in dieser Zone.

Zonenübertragungen

Da Sie zum Verwalten einer Zone zwei unterschiedliche Nameserver benötigen, möchten Sie, dass diesen Servern schnell die neueste Version dieser Zone zur Verfügung steht.

Dies wird entweder erreicht, indem die neueste Version der Zone in einem festen Intervall abgerufen wird oder auf eine Benachrichtigung von einem autorisierten Nameserver gewartet wird .

Da dieser Mechanismus vollständig von den Betreibern der Nameserver kontrolliert wird, können Verzögerungen in diesem Bereich vollständig kontrolliert werden.

TTL

Die TTL ist eine Zeitüberschreitung, die für jeden einzelnen Ressourceneintrag in einer Zone angegeben wird. Dieser Wert definiert, wie lange der Datensatz von nicht autorisierenden DNS-Anbietern zwischengespeichert werden soll.

Bitte beachten Sie, dass dieser Wert nur wirksam wird, wenn ein vorhandener Datensatz geändert wird. Neue Datensätze können noch nicht zwischengespeichert werden.

Da die TTL auch die Kontrolle darüber hat, wer die Zone kontrolliert, kann die Verzögerung auch vollständig kontrolliert werden.

Der Hochstapler
quelle
Thanks @Oliver (+1) - Es hört sich so an, als wäre ein "Instant Rollover" eine urbane Legende! Ich schätze, meine folgende Frage wäre: Warum nicht einfach meine DNS-Einträge selbst bearbeiten? Liegt es daran, dass diese Unternehmen APIs anbieten, damit DNS-Änderungen automatisiert werden können, wenn bestimmte Ereignisse ausgelöst werden? Ich denke, ich suche nach welchem ​​Zweck sie überhaupt dienen!
pnongrata
1
@zharvey: Sie können natürlich Ihren eigenen DNS-Server betreiben und Ihre Zonen direkt selbst bearbeiten. Sie müssen jedoch mindestens zwei unterschiedliche DNS-Server angeben, die für die Annahme Ihrer Zone durch die Stammserver maßgeblich sind. Normalerweise steht den Menschen eine solche Infrastruktur nicht zur Verfügung.
Der Hochstapler
1
Sie können DNS-Einträge selbst bearbeiten. Sie müssen lediglich ein Paar Nameserver (in verschiedenen Subnetzen) ausführen. DynDNS erledigt dies jedoch für Sie und ermöglicht relativ einfache Aktualisierungen. Grundsätzlich lagern Sie einige Arbeiten aus.
Hennes
@zharvey natürlich können Sie einen "sofortigen Rollover" haben. Wenn Sie das wörtlich meinen, lassen Sie einfach beide Maschinen ihre IPs wechseln (was nicht immer möglich ist). Ansonsten haben Sie immer eine gewisse Verzögerung. Wenn Dienste auf andere Server verschoben werden sollen, ändert der Administrator normalerweise die TTL im Voraus (z. B. auf 1 Stunde). Wenn die Änderung stattfindet, ist die Verzögerung minimal. Danach wird die TTL erneut erhöht (auf z. B. 24 Stunden oder mehr), um ein besseres Caching und schnellere Antworten auf DNS-Abfragen zu ermöglichen. Aber das beinhaltet normalerweise kein DynDNS;)
Izzy
2
Tut mir leid, dass ich unhöflich bin, aber diese Antwort ist in fast jedem Punkt falsch .
Alex
18

Sie haben einige Missverständnisse, deshalb werde ich versuchen, den gesamten Prozess zu erklären. (Ich bin gut mit den Details, da ich mit dem Betrieb eines öffentlichen dynamischen DNS-Dienstes befasst bin.)

Nehmen wir an, Ihre Domain ist example.com und die Domain example.com , die von einem dynamischen DNS-Unternehmen gehostet wird, nennen wir sie lightfastdns.net (fiktiver Name). Ihre Domain enthält den DNS- Eintrag somehost.example.com , der derzeit auf 1.1.1.1 verweist .

  1. Wenn Sie eine Änderung an Ihrem DNS-Eintrag vornehmen, wird diese Änderung zuerst an einen von lightfastdns.net betriebenen Zwischenserver übermittelt, z . B. updates.lightfastdns.net . Dies geschieht fast augenblicklich (im Bruchteil einer Sekunde). Sie können Ihr Update über die Weboberfläche oder mit einem Client für dynamische Updates oder über eine API senden. Das spielt keine Rolle, in jedem Fall wird dieses Update auf einem Server ankommen, der DNS-Updates verarbeitet.

  2. Dieser Aktualisierungsserver überträgt Ihren aktualisierten Datensatz (z. B. 1.2.3.4 ) auf den DNS- Masterserver für Ihre Domain. Dieser DNS-Server wird auch von lightfastdns.net betrieben . Wie schnell dies geschieht, hängt davon ab, wie der DNS-Anbieter seine Software entwickelt hat. (Dies kann sofort und alle 24 Stunden erfolgen. Zum Beispiel werden DNS-Updates von gandi.net einmal pro Stunde übertragen.) Natürlich wird dies von unserem lightfastdns.net sofort ausgeführt.

  3. Dieser Master- DNS-Server überträgt Aktualisierungen an Slave- DNS-Server für die Domain example.com . Diese Server werden ebenfalls von den gleichen betrieben lightfastdns.net Unternehmen. Wie schnell dies geschieht: Mit moderner Software sendet der Master sofort eine NOTIFY-Nachricht an die Slaves , und sie erhalten sofort den aktualisierten Datensatz vom Master. Mit älterer Software hatten wir REFRESH- und RETRY-Werte im SOA-Datensatz, aber heute ist dies selten relevant. Natürlich implementiert unser lightfastdns.net NOTIFY und Updates verbreiten sich sofort.

Was wir jetzt haben, ist, dass alle "autorisierenden" Server für Ihre Domain den aktualisierten Datensatz ( 1.2.3.4 ) erhalten haben. Für lightfastdns.net dauerte es ungefähr zwei Sekunden.

  1. Jetzt werden wir zu Ivan nach Russland ziehen und Ivan möchte " somehost.example.com " in seinem Browser öffnen . Wenn er das noch nie zuvor geöffnet hat, kennt sein Browser die Adresse nicht und fragt ihn daher nach seinem Betriebssystem. Wenn er die Site kürzlich besucht hat, ist die Adresse möglicherweise noch im Browser gespeichert und er verwendet die alte (veraltete) Adresse! Für wie lange ? - Abhängig vom Browser speichert Google Chrome beispielsweise DNS-Einträge nur bis zu 60 Sekunden. Wir haben bis zu 60 Sekunden Verspätung . für diese Tatsache würde ich sagen , dass DNS - Änderung nicht propagieren zu diesem Browser noch.

  2. In jedem Fall fordert der Browser nach 60 Sekunden oder sofort das Betriebssystem auf, die Adresse abzurufen. Betriebssystem bereits kennen die (alt, veraltet) Antwort, und senden Sie es, in diesem Fall würde ich sagen , dass der neue Datensatz nicht propagiert noch Ivans OS. Wie lange das Betriebssystem den alten Wert speichert - über moderne Betriebssysteme wird dies durch TTL- Parameter gesteuert . TTL in DNS legt fest, wie lange ein Eintrag im Cache gespeichert werden darf. Unser lightfastdns.net erlaubte eine relativ niedrige TTL von 30 Sekunden, so dass wir eine neue Verzögerung von bis zu 30 Sekunden hatten, insgesamt also 90 Sekunden .

  3. Wenn das Betriebssystem die Antwort nicht kennt oder wenn die Antwort, die es kannte, jetzt von TTL veraltet ist, fragt das Betriebssystem den DNS-Resolver (der ISP von Ivan hat ihm den DNS-Resolver dns.moscow-telecom.ru zugewiesen ). In diesem Fall wird der alte Datensatz möglicherweise bis zu TTL-Sekunden zwischengespeichert, oder dns.moscow-telecom.ru kennt die Adresse möglicherweise nicht. Wir erhalten weitere 30 Sekunden, da dns.moscow-telecom.ru auch DNS nicht länger als den TTL-Wert zwischenspeichert. Wir haben 120 Sekunden Verspätung. So wurde der neue DNS-Eintrag noch nicht an die DNS-Server von Moscow-Telecom weitergegeben .

  4. Wenn der DNS-Server des ISP die Antwort nicht kennt oder wenn die ihm bekannte Antwort bereits veraltet ist, weil die TTL abgelaufen ist , fragt dns.moscow-telecom.ru einen der AUTHORITATIVE DNS-Server nach example.net (erinnern Sie sich an sie?). Diese haben die Änderung vor ungefähr 118 Sekunden erhalten und geben die neue Antwort zurück. Diese Antwort wird sofort per Chain an den DNS-Resolver, an das Betriebssystem und an Ivans Browser gesendet.

Daher dauerte die Verbreitung des Datensatzes je nach Zustand der verschiedenen Caches 2 bis 120 Sekunden. Längere TTL - längere Verzögerungen können auftreten.

Um es komplett zu machen - einige ISPs verletzen die Standards und die Cache - Einträge für lange Zeit. Einige ältere Betriebssysteme haben lange Zeit alte Aufzeichnungen aufbewahrt, auch ältere Browser. Aber für die meisten Benutzer funktioniert es wie erwartet.

Alex
quelle
Es tut mir sehr leid, dass es so ausführlich herauskam . Vielleicht möchte jemand eine kürzere Variante machen (als separate Antwort) - Sie sind willkommen.
Alex
@zharvey Eigentlich haben Sie gefragt, was der Unterschied zwischen dynamisch und nicht dynamisch ist - es ist 1. wie schnell sie die Schritte (2) und (3) handhaben und 2. wie niedrig die TTL, die Sie einstellen dürfen.
Alex
3

Nein. Die Änderung muss nicht auf jeden DNS-Server der Welt übertragen werden .

Wenn Sie etwas ändern und jemand den geänderten Eintrag auf Ihrem DNS-Server abfragt, ist das Ergebnis sofort sichtbar.

Das Problem ist, wenn Sie diesen Namen zuvor abgefragt haben und er zwischengespeichert wurde. Dann erhalten Sie die alte IP, bis der Cache abläuft. In DNS können Sie festlegen, wie lange eine alte Abfrage gültig ist, und dieser Zeitraum wird häufig auf mehrere Tage festgelegt. Für DynDNS ist es normalerweise niedriger eingestellt, aber nicht alle DNS-Resolver berücksichtigen dies.

Hennes
quelle
Danke @Hennes (+1) - siehe meine Frage unter Olivers Antwort - ich habe die gleiche Frage für dich!
pnongrata