DNS-Caching

aus Wikipedia, der freien Enzyklopädie
Datei:Windows-dns-cache.png
DNS-Cache von Windows 7, abgerufen mit ipconfig. Zu sehen sind der Eintrag wikipedia.de, der dazugehörige zuständige Nameserver, sowie der Negativeintrag wipieda.de

DNS-Caching hält das Ergebnis einer rekursiven DNS-Namensauflösung eine Zeit lang im lokalen Cache vor, um weitere identische DNS-Anfragen sofort beantworten zu können, ohne erneut bei den zuständigen Nameservern anfragen zu müssen. Das Ziel ist die Entlastung der zuständigen Nameserver sowie die Einsparung von Zeit, da eine Anfrage schneller aus dem Cache heraus beantwortet werden kann als durch erneute Anfrage beim zuständigen Nameserver. Die Zeitspanne, für die ein Eintrag im Cache gültig ist, wird durch dessen TTL-Wert (engl.: Time to live; dt.: Zeit zu leben) bestimmt. Festgelegt wird der TTL-Wert durch den autoritativen Nameserver der entsprechenden Zone, der die ursprüngliche Anfrage beantwortet hat.

Verwendung findet das DNS-Caching bei Komponenten in Rechnernetzen, die Anfragen zur Auflösung von Domains senden und dementsprechend die Antwort zwischenspeichern können. Dazu gehören etwa der Resolver des Betriebssystems, der Nameserver des Internetzugangsanbieters und auch manche Anwendungen wie Webbrowser.

Jedem DNS-Eintrag ist genau ein TTL-Wert zugeordnet. Dieser umfasst 32 Bit und kann daher sehr große Werte (mehrere Jahrzehnte) annehmen. Der Wert wird in Sekunden angegeben. Ein TTL von 3600 entspricht damit einer Stunde. 0 bedeutet: Dieser Resource Record darf nicht im Cache gespeichert werden. Der Inhalt des Caches befindet sich üblicherweise nur im flüchtigen Speicher und überdauert nicht den Neustart der Komponente. Die Möglichkeit eine Zeitdauer von mehreren Wochen oder noch länger einzustellen hat somit keine praktische Relevanz.

Negatives Caching

Die ursprüngliche DNS-Spezifikation sieht kein Caching einer NXDOMAIN-Antwort vor, also dem Hinweis, dass einem angefragten Domainnamen kein Eintrag zugeordnet ist. Zur weiteren Entlastung der zuständigen Nameserver ist dieses Verhalten nachträglich als Negatives Caching (RFC 2308) spezifiziert worden. Analog zum Standard-Caching wird im Cache vermerkt, dass dem zuständigen Nameserver der Name unbekannt war. Bei wiederholten Anfragen kann die entsprechende negative Antwort aus dem Cache heraus erfolgen.

Da für einen nicht vorhandenen Namen keine Time to live existiert, muss die Zeitspanne, für die ein negativer Eintrag im Cache gehalten wird, auf andere Weise ermittelt werden. Hierzu wurde die Bedeutung des Felds MINIMUM im SOA Resource Record geändert. Die ursprüngliche Bedeutung als Minimum-TTL aller Einträge einer Zone kam in der Praxis ohnehin nicht zum Einsatz. Die neue Bedeutung ist die TTL aller negativen Antworten einer Zone. Um dem Anfragenden die negative Caching-Dauer mitzuteilen, wird mit jeder negativen Antwort der SOA-Eintrag der entsprechenden Zone mitgesendet.

In den Fällen, wo die Namensauflösung aus anderen Gründen fehlschlägt, etwa falsch konfigurierten Zuständigkeiten von Zonen oder Netzausfällen, steht es dem Anfragenden frei, das Ergebnis ebenfalls im Cache zu speichern. Da die TTL hierbei nicht zuverlässig zu ermitteln ist, ist eine frei wählbare Zeitspanne von bis zu 5 Minuten erlaubt.

Quellen