Was ist DNS? | Funktionsweise von DNS

DNS ermöglicht Nutzern, unter Verwendung von Domain-Namen statt IP-Adressen eine Verbindung zu Websites herzustellen. Erfahren Sie, wie DNS funktioniert.

Share facebook icon linkedin icon twitter icon email icon

DNS

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • DNS definieren
  • Funktionsweise von DNS verstehen
  • Zwischen rekursiven und iterativen DNS-Lookups unterscheiden
  • Autoritative Nameserver von rekursiven DNS-Resolvern trennen
  • Erkunden, wie DNS-Caching funktioniert

Was ist DNS?

Das Domain Name System (DNS) ist das Telefonbuch des Internets. Menschen greifen über Domain Namen, wie nytimes.com oder espn.com, auf Online-Informationen zu. Webbrowser verwenden IP-Adressen (Internet Protocol) zur Interaktion. DNS übersetzt Domain Namen in IP-Adressen, damit Browser Internetressourcen laden können.

Jedes mit dem Internet verbundene Gerät verfügt über eine eindeutige IP-Adresse, die von anderen Geräten zur Suche nach dem Gerät verwendet wird. DNS-Servers ersparen es den Anwendern, sich IP-Adressen wie 192.168.1.1 (in IPv4) oder noch komplexere neuere alphanumerische IP-Adressen wie 2400:cb00:2048:1::c629:d7a2 (in IPv6) merken zu müssen.

DNS

Wie funktioniert DNS?

Zur DNS-Auflösung muss ein Hostname (z. B. www.example.com) in eine für Computer verständliche IP-Adresse (z. B. 192.168.1.1) umgewandelt werden. Jedes Gerät, das eine Internetverbindung herstellt, erhält eine IP-Adresse. Diese Adresse ist zum Auffinden des betreffenden Geräts im Internet erforderlich – so wie die Postanschrift zum Auffinden eines bestimmten Hauses dient. Wenn ein Anwender eine Webseite laden möchte, muss das, was der Anwender in den Webbrowser eingibt (example.com) in eine maschinenlesbare Adresse übersetzt werden, damit die Webseite example.com gefunden werden kann.

Um die einzelnen Schritte der DNS-Auflösung nachvollziehen zu können, müssen Sie die verschiedenen Hardwarekomponenten kennen, die eine DNS-Abfrage passieren muss. Für den Webbrowser geschieht der DNS-Lookup im Hintergrund. Abgesehen von der ursprünglichen Anfrage, ist keine Interaktion vom Computer des Anwenders erforderlich.

Vier DNS-Server sind am Laden einer Webseite beteiligt:

  • DNS-Recursor – Der Recursor ist mit einem Bibliothekar vergleichbar, der gebeten wird, irgendwo in der Bibliothek ein bestimmtes Buch zu finden. Der Recursor ist ein Server, der Anfragen von Clientcomputern über Anwendungen wie Webbrowser empfängt. In der Regel erstellt der Recursor dann zusätzliche Anfragen, um die DNS-Anfrage des Client beantworten zu können.
  • Stamm-Nameserver – Der Stammserver ist der erste Schritt bei der Übersetzung (Auflösung) der für Menschen lesbaren Hostnamen in IP-Adressen. Er lässt sich mit einem Bibliotheksindex vergleichen, der auf verschiedene Bücherregale verwest. In der Regel fungiert er als Referenz auf andere spezifischere Positionen.
  • TLD-Nameserver – The TLD-Server (Top Level Domain) ist mit einem bestimmten Bücherregal in einer Bibliothek vergleichbar. Dieser Server ist die nächste Station auf der Suche nach einer bestimmten IP-Adresse. Er hostet den letzten Teil eines Hostnamens (im Beispiel example.com ist der TLD-Server „com“).
  • Autoritativer Nameserver – Dieser letzte Nameserver lässt sich mit einem Wörterbuch in einem Bücherregal vergleichen, mit dem ein bestimmter Name in seine Definition übersetzt werden kann. Der autoritative Nameserver ist der Schritt in der Nameserver-Abfrage. Wenn der autoritative Nameserver Zugriff auf den angeforderten Eintag hat, gibt er die IP-Adresse des angeforderten Hostnamen zurück an den DNS-Recursor (den Bibliothekar), der die ursprüngliche Anfrage übermittelt hat.

Was ist der Unterschied zwischen einem autoritativen DNS-Server und einem rekursiven DNS-Resolver?

Beide Konzepte beziehen sich auf Server (Gruppen von Servern), die integraler Bestandteil der DNS-Infrastruktur sind, jedoch unterschiedliche Rollen haben und sich an unterschiedlichen Positionen im Verlauf einer DNS-Abfrage befinden. Eine Möglichkeit, diesen Unterschied darzustellen, ist dieser Verlauf: Der rekursive Resolver steht am Anfang der DNS-Abfrage und der autoritative Nameserver am Ende.

Rekursiver DNS-Resolver

Der rekursive Resolver ist der Computer, der auf eine rekursive Anfrage von einem Client antwortet und den DNS-Eintrag sucht. Dazu stellt er eine Reihe von Anfragen, bis er den autoritativen DNS-Nameserver für den angeforderten Eintrag erreicht (oder das Zeitlimit überschritten wird oder ein Fehler zurückgegeben wird, weil kein Eintrag gefunden wurde). Der rekursive DNS-Resolver muss glücklicherweise nicht immer mehrere Anfragen senden, um die für den Client erforderlichen Einträge zu finden. Caching ist ein Datenspeicherungsprozess, der zur Verringerung der Anzahl notwendiger Anfragen beiträgt, indem er den angeforderten Ressourceneintrag früher im DSN-Lookup bereitstellt.

DNS query diagram

Autoritativer DNS-Server

Einfach ausgedrückt, ist ein autoritativer DNS-Server ein Server, auf dem die DNS-Ressourceneinträge tatsächlich gespeichert und verwaltet werden. Es ist der Server am Ende der Kette eines DNS-Lookup, der mit dem angeforderten Ressourceneintrag antwortet und dem Webbrowser, von dem die Anfrage stammt, schließlich ermöglicht, die benötigte IP-Adresse zu erreichen und auf eine Website oder andere Webressourcen zuzugreifen. Ein autoritativer Nameserver kann Anfragen mit seinen eigenen Daten beantworten, ohne eine andere Quelle abfragen zu müssen, da er für einige DNS-Einträge der Wahrheit letzter Schluss darstellt.

DNS query diagram

Es ist erwähnenswert, dass in Fällen, in denen eine Abfrage eine Subdomain wie foo.example.com oder blog.cloudflare.com betrifft, ein weiterer Nameserver nach dem autoritativen Nameserver der Sequenz hinzugefügt wird. Auf dem betreffenden Server wird der CNAME-Eintrag der Subdomain gespeichert.

DNS query diagram

Zwischen dem DNS-Service, den Cloudflare bereitstellt, und vielen anderen DNS-Services besteht ein wesentlicher Unterschied. Viele rekursive DNS-Resolver wie Google DNS, OpenDNS und Provider wie Comcast unterhalten Rechenzentrumsinstallationen mit rekursiven DNS-Resolvern. Diese Resolver ermöglichen durch optimierte Cluster DNS-optimierter Computersysteme schnelle und einfache Abfragen, unterscheiden sich jedoch grundlegend von den von Cloudflare gehosteten Nameservern.

Cloudflare pflegt Nameserver auf Infrastrukturebene, die für die Funktion des Internet unabdingbar sind. Ein wichtiges Beispiel ist das Servernetzwerk f-root, das teilweise von Cloudflare gehostet wird. F-root eine der DNS-Nameserver-Infrastrukturkomponenten auf Stammebene, die täglich für Milliarden von Internetanfragen verantwortlich sind. Unser Anycast Network versetzt uns in die einmalige Lage, große Mengen an DNS-Datenverkehr ohne Serviceunterbrechungen verarbeiten zu können.

Welche Schritte umfasst ein DNS-Lookup?

In den meisten Situationen beschäftigt sich das DNS mit der Übersetzung eines Domain-Name in die zugehörige IP-Adresse. Um diesen Prozess nachvollziehen zu können, ist es hilfreich, dem Pfad eines DNS-Lookup vom Webbrowser bis zum Ende des DNS-Lookup-Prozesses und zurück zum Webbrowser zu folgen. Sehen wir uns die einzelnen Schritte an.

Hinweis: Die Informationen zu einem DNS-Lookup werden häufig lokal im abfragenden Computer oder remote in der DNS-Infrastruktur gecacht. In der Regel umfasst ein DNS-Lookup acht Schritte. Wenn DNS-Informationen gecacht werden, werden einige Schritte im DNS-Lookup-Prozess übersprungen, sodass die Anfrage schneller beantwortet wird. Im nachfolgenden Beispiel sind alle acht Schritte dargestellt, wenn nichts gecacht wird.

Die acht Schritte eines DNS-Lookup:

  1. Ein Benutzer gibt ‚example.com‘ in einen Webbrowser ein. Die Abfrage wird in das Internet übertragen und von einem rekursiven DNS-Resolver empfangen.
  2. Der Resolver fragt einen DNS-Stamm-Nameserver (.) ab.
  3. Der Stammserver antwortet dem Resolver mit der Adresse eines DNS-Servers einer Domain auf oberster Ebene (TLD, Top Level Domain), der die Informationen zu den zugehörigen Domains (wie .com oder .net) enthält. Wenn wir beispielsweise nach example.com suchen, wird unsere Anfrage an die TLD .com gerichtet.
  4. Der Resolver sendet dann eine Anfrage an die TLD .com.
  5. Der TLD-Server antwortet dann mit der IP-Adresse des Nameserver der Domain, z. B. example.com.
  6. Schließlich sendet der rekursive Resolver eine Anfrage an den Nameserver der Domain.
  7. Die IP-Adresse für example.com wird dann vom Nameserver an den Resolver zurückgegeben.
  8. Der DNS-Resolver beantwortet die Anfrage des Webbrowsers mit der IP-Adresse der Domäne, die ursprünglich angefragt wurde.

  9. Sobald die IP-Adresse für example.com mit den acht Schritten des DNS-Lookup zurückgegeben wurde, kann der Browser die Anfrage für die Webseite erstellen:

  10. Der Browser sendet eine HTTP-Anfrage an die IP-Adresse.
  11. Der Server an der betreffenden IP-Adresse liefert die Webseite, die im Browser dargestellt wird (Schritt 10).
DNS query diagram

Was ist ein DNS-Resolver?

Der DNS-Resolver ist die erste Station im DNS-Lookup und für den Umgang mit dem Client, der die ursprüngliche Anfrage gesendet hat, verantwortlich. Der Resolver startet die Folge von Abfragen, die letztlich dazu führt, dass eine URL in die erforderliche IP-Adresse übersetzt wird.

Hinweis: Ein typischer ungecachter DNS-Lookup umfasst sowohl rekursive als auch iterative Anfragen.

Es ist wichtig, zwischen einer rekursiven DNS-Anfrage und einem rekursiven DNS-Resolver zu unterscheiden. Die Abfrage bezieht sich auf die Anfrage, die an einen DNS-Resolver gesendet wurde und die Beantwortung der Abfrage erfordert. Bei einem rekursiven DNS-Resolver handelt es sich um den Computer, der eine rekursive Abfrage akzeptiert und die Antwort bearbeitet, indem er die erforderlichen Anfragen erstellt.

DNS query diagram

Welche Typen von DNS-Abfragen gibt es?

Ein typischer DNS-Lookup beinhaltet drei Typen von Abfragen. Durch den Einsatz einer Kombination dieser Abfragen kann ein optimierter Prozess für die DNS-Auflösung zur Verringerung der benötigten Schritte führen. Im Idealfall sind gecachte Eintragsdaten vorhanden, sodass ein DNS-Nameserver eine nichtrekursive Abfrage zurückgeben kann.

Drei Typen von DNS-Abfragen:

  1. Rekursive Abfrage In einer rekursive Abfrage fordert der DNS-Client, dass ein DNS-Server (in der Regel ein rekursiver DNS-Resolver) ihm entweder mit dem angefragten Ressourceneintrag oder einer Fehlermeldung antwortet, wenn der Resolver den Eintrag nicht findet.

  2. Iterative Abfrage In diesem Fall erlaubt der DNS-Client einem DNS-Server, die bestmögliche Antwort zurückzugeben. Wenn der DNS-Server, der die Abfrage erhält, den abgefragten Namen nicht enthält, gibt er einen Verweis auf einen DNS-Server zurück, der für eine untergeordnete Ebene des Domain-Namespace autoritativ ist. Der DNS-Client sendet dann eine Abfrage an die in diesem Verweis enthaltene Adresse. Dieser Vorgang wird solange mit weiteren DNS-Servern in der Abfragekette wiederholt, bis ein Fehler oder ein Timeout auftritt.

  3. Nichtrekursive Abfrage In der Regel tritt eine solche Abfrage auf, wenn der DNS-Resolverclient von einem DNS-Server einen Eintrag abfragt, auf den dieser Zugriff hat, weil er für den betreffenden Eintrag autoritativ ist oder sich der Eintrag in seinem Cache befindet. DNS-Einträge werden von einem DNS-Server in der Regel gecacht, um zusätzlichen Bankbreitenverbrauch und Last auf vorgelagerten Servern zu verhindern.

Was ist DNS-Caching? Wo tritt DNS-Caching auf?

Caching dient dem Zweck, Daten zeitweilig an einer Position zu speichern, um die Performance zu verbessern die Zuverlässigkeit von Datenanfragen zu erhöhen. Beim DNS-Caching werden die Daten näher am anfragenden Client gespeichert, damit die DNS-Abfrage früher beantwortet werden kann und zusätzliche Abfragen in der DNS-Lookup-Kette vermieden werden. Dadurch werden die Ladezeiten verbessert und die Bandbreiten-/CPU-Auslastung reduziert. DNS-Daten können an verschiedenen Stellen gecacht werden, wobei jeweils DNS-Einträge über einen durch TTL (Time-to-live) festgelegten Zeitraum gespeichert werden.

DNS-Caching im Browser

Moderne Webbrowser speichern standardmäßig DNS-Einträge über einen bestimmten Zeitraum. Der Zweck ist hier offensichtlich: Je näher das DNS-Caching am Webbrowser erfolgt, desto weniger Verarbeitungsschritte sind erforderlich, um den Cache zu überprüfen und die richtigen Anfragen an eine IP-Adresse zu stellen. Wenn ein DNS-Eintrag angefordert wird, wird zunächst im Browser-Cache nach dem angeforderten Eintrag gesucht.

In Chrome können Sie den Status des DNS-Cache anzeigen, indem Sie zu chrome://net-internals/#dns wechseln.

DNS-Caching auf Betriebssystemebene

Der DNS-Resolver auf Betriebssystemebene ist die zweite und letzte lokale Station, bevor die DNS-Abfrage Ihren Computer verlässt. Der Prozess im Betriebssystem, der diese Abfrage bearbeitet, wird gemeinhin als „Stub-Resolver“ oder DNS-Client bezeichnet. Wenn ein Stub-Resolver eine Anfrage von einer Anwendung erhält, überprüft er zunächst, ob der betreffende Eintrag in seinem eigenen Cache vorhanden ist. Ist dies nicht der Fall, sendet er eine DNS-Abfrage (mit dem Flag für eine rekursive Abfrage) an einen rekursiven DNS-Resolver außerhalb des lokalen Netzwerks, der sich beim ISP (Internetprovider) befindet.

Wenn der rekursive Resolver beim ISP eine DNS-Abfrage empfängt, prüft auch er (wie in allen vorherigen Schritten), ob die angeforderte Übersetzung von Hostname in IP-Adresse bereits in seiner lokalen Speicherebene gespeichert ist.

Der rekursive Resolver verfügt auch über zusätzliche Funktionen, die vom Typ der Einträge in seinem Cache abhängen:

  1. Wenn der Resolver keine A-Einträge, aber die NS-Einträge für die autoritativen Nameserver enthält, fragt er diese Nameserver direkt ab, wobei einige Schritte in der DNS-Abfrage übergangen werden. Diese Abkürzung verhindert Lookups bei Stamm- und .com-Nameservern (in unserem Suchbeispiel example.com) und trägt dazu bei, dass die DNS-Abfrage schneller gelöst wird.
  2. Verfügt der Resolver nicht über die NS-Einträge, sendet er eine Abfrage an die TLD-Server (in unserem Beispiel .com), wobei der Stammserver übergangen wird.
  3. In dem unwahrscheinlichen Fall, dass der Resolver keine Einträge besitzt, die auf die TLD-Server verweisen, sendet er eine Abfrage an die Stammserver. Dieser Fall tritt in der Regel auf, nachdem der DNS-Cache gelöscht wurde.

Erfahren Sie, worin sich Cloudflare-DNS von anderen DNS-Providern unterscheidet.