Einleitung
In diesem Dokument wird beschrieben, wie OpenDNS/Umbrella-Resolver Ressourceneinträge zwischenspeichern.
Überblick
Die OpenDNS/Umbrella-Resolver verwenden ein Programm namens OpenDNSCache (ODC), um DNS-Abfragen aufzulösen. Das ODC speichert empfangene Daten im Cache, um die Ergebnisse schneller und effizienter an die Clients zurückzugeben. In diesem Artikel wird erläutert, wie und wann Caching verwendet wird.
Dieser Artikel richtet sich an Benutzer, die mehr über die Besonderheiten des ODC-Caching (in der Regel Nameserver- und Domain-Administratoren) erfahren möchten, oder für Fälle, in denen die DNS-Auflösung möglicherweise nicht wie erwartet funktioniert.
Welche Daten werden zwischengespeichert?
Gemäß RFC 2181 (https://datatracker.ietf.org/doc/html/rfc2181) können Antworten je nach Vertrauenswürdigkeit der Daten in einer Antwort zurückgegeben oder in einem Cache gespeichert werden. Der RFC definiert in Abschnitt 5.4.1 sieben Vertrauensstufen:
- Daten aus einer primären Zonendatei, mit Ausnahme von Klebedaten.
- Dies gilt nur für autoritative Namenserver, nicht für die OpenDNS-Resolver
- Daten aus einer Zonenübertragung, außer Klebstoff.
- Dies gilt nur für autoritative Namenserver, nicht für die OpenDNS-Resolver
- Die maßgeblichen Daten im Antwortabschnitt einer maßgeblichen Antwort.
- Dies gilt für OpenDNSCache
- Daten aus dem Autoritätsabschnitt einer maßgeblichen Antwort.
- Dies gilt für OpenDNSCache
- Leim aus einer primären Zone oder Leim aus einer Zonenübertragung.
- Dies gilt nur für autoritative Namenserver, nicht für die OpenDNS-Resolver
- i) Daten aus dem Antwortabschnitt einer nicht-autoritativen Antwort und ii) nicht-autoritative Daten aus dem Antwortabschnitt autoritativer Antworten.
- i) ist ein Beispiel dafür, was unsere Resolver zurückgeben. D. h. nicht-autoritative Daten.
- Bei ii) ist zu beachten, dass der Antwortabschnitt einer autoritativen Antwort normalerweise nur autoritative Daten enthält. Wenn es sich bei dem gesuchten Namen jedoch um einen Alias handelt (siehe Abschnitt 10.1.1), ist nur der Datensatz, der diesen Alias beschreibt, zwingend maßgebend. Clients können davon ausgehen, dass andere Datensätze aus dem Cache des Servers stammen müssen. Wenn autoritative Antworten erforderlich sind, kann der Client erneut eine Abfrage durchführen, wobei der kanonische Name verwendet wird, der dem Alias zugeordnet ist.
- i) Zusätzliche Informationen aus einer maßgeblichen Antwort; ii) Daten aus dem Abschnitt "Behörde" einer nicht maßgeblichen Antwort; iii) Zusätzliche Informationen aus nicht maßgeblichen Antworten.
- Alle diese Einstellungen gelten für OpenDNSCache
- Datensätze, die von einer dieser Quellen empfangen wurden, dürfen nicht zwischengespeichert werden, um die Ergebnisse an Abfragen zurückzugeben.
OpenDNSCache speichert Daten aus Antworten mit den Vertrauensebenen 3, 4 und 6. Wenn wir neue Daten mit einer besseren oder gleichen Vertrauensebene empfangen, ersetzen wir den alten Cache-Eintrag.
Die Ausnahme sind hier NS-Datensätze, bei denen Daten nur durch eine bessere Vertrauensstufe ersetzt werden.
Wie werden Daten hinzugefügt und aus dem Cache entfernt?
Abgelaufene Daten werden nicht aus dem Cache gelöscht. Dies ist die Grundlage der SmartCache-Funktion, bei der abgelaufene Ressourceneinträge (RRs) aus dem Cache zurückgegeben werden, wenn wir aus irgendeinem Grund nicht in der Lage sind, die Behörden zu erreichen.
Stattdessen ist der Cache jedes Resolvers eine feste Größe, und wenn ein neuer RR zum Cache hinzugefügt wird, wird der älteste RR entfernt. Dies kann als eine Warteschlange dargestellt werden, in der neue Einträge in die Warteschlange aufgenommen werden, wodurch alte Einträge aus der Warteschlange herausgerissen werden (für die Computerwissenschaftler da draußen ist dies tatsächlich als eine zirkuläre, doppelt verknüpfte Liste implementiert).
Beachten Sie, dass eine DNS-Antwort, wie oben beschrieben, mehrere RRs mit unterschiedlichen Vertrauensebenen enthalten kann, von denen nicht alle die ursprünglich angeforderten Daten waren. Daher können nach dem Empfang einer Antwort mehrere RRs zum Cache hinzugefügt werden.
Beachten Sie, dass NS-Datensätze von diesem Verhalten ausgenommen sind, da Einträge für NS-Datensätze im Cache nur ersetzt werden, wenn die Vertrauensebene der Daten höher ist als der vorhandene Eintrag. Dadurch wird sichergestellt, dass wir Änderungen an den Behörden im Mutterleim feststellen können, wenn die alten Behörden noch reagieren und sich selbst als Behörde zurückgeben.