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.com
auf 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.
quelle
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 .
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.
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.
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.
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.
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 .
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 .
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.
quelle
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.
quelle