Was ist ein DNS-Resolver, und welchen nutzen Sie gerade?
Ein DNS-Resolver ist der Dienst, den Ihr Gerät zuerst fragt, wenn es eine IP-Adresse zu einem Namen braucht, und eine einzelne Abfrage durchläuft meist drei verschiedene Rollen: einen Stub-Resolver auf Ihrer eigenen Maschine, einen rekursiven Resolver, der die eigentliche Suche übernimmt, und die autoritativen Server, die die echte Antwort halten. Die meisten Menschen konfigurieren nur den ersten und sehen die anderen beiden nie direkt.
Was passiert, wenn Ihr Gerät einen Namen nachschlägt?
Ihr Betriebssystem durchsucht nicht selbst das Internet nach einem Namen. Es gibt die Anfrage an ein kleines Stück Software namens Stub-Resolver weiter, der überhaupt kein Nameserver ist. RFC 8499 definiert ihn als einen Resolver, „der nicht die gesamte Auflösung selbst durchführen kann", und der für die eigentliche Arbeit auf einen rekursiven Resolver angewiesen ist. Die Aufgabe des Stub-Resolvers ist, Ihre Abfrage an den in Ihren Netzwerkeinstellungen konfigurierten Server zu senden und die Antwort zurückzugeben, oder eine zwischengespeicherte Kopie einer kürzlichen.
Stub-Resolver, rekursiver Resolver, autoritativer Server: Was ist der Unterschied?
Drei Rollen tauchen in jeder Abfrage auf, und derselbe physische Server kann mehr als eine davon spielen:
- Stub-Resolver. Läuft auf Ihrem Gerät, leitet Abfragen weiter, hält einen kleinen Cache und kann einen Namen nicht selbst auflösen.
- Rekursiver Resolver. Laut RFC 8499 „ein Resolver, der im rekursiven Modus arbeitet", das heißt, er erledigt die volle Arbeit, eine Antwort durch so viele Server zu verfolgen, wie nötig, und cacht und liefert dann das Ergebnis. Das ist die Rolle, die Ihr Internetanbieter oder ein öffentlicher DNS-Dienst übernimmt.
- Autoritativer Server. RFC 8499 definiert ihn als einen Server, der „den Inhalt einer DNS-Zone aus lokalem Wissen kennt und deshalb Abfragen zu dieser Zone beantworten kann, ohne andere Server fragen zu müssen". Das ist der Server, den der eigene DNS-Anbieter der Domain betreibt, und seine Antwort ist die, die niemand sonst nur kopiert.
Ein Server, der mit einem Verweis statt einer vollständigen Antwort antwortet, verhält sich iterativ; einer, der weiterarbeitet, bis er eine endgültige Antwort oder einen definitiven Fehler hat, verhält sich rekursiv, was der Namensbestandteil „rekursiver Resolver" auch meint.
Der Weg einer Abfrage: Root-, TLD- und autoritative Hops
Eine kalte Abfrage, bei der nirgendwo etwas zwischengespeichert ist, durchläuft eine feste Hierarchie. Der rekursive Resolver startet bei einem Root-Server, einer von dreizehn benannten Root-Server-Identitäten, die IANA von a.root-servers.net bis m.root-servers.net auflistet, und fragt ihn nach example.com. Der Root-Server kennt die Antwort nicht; er liefert einen Verweis auf die Server, die für die Top-Level-Domain .com zuständig sind. Der Resolver fragt einen davon und bekommt einen zweiten Verweis, diesmal auf die autoritativen Nameserver für example.com selbst, die der Domain-Inhaber konfiguriert hat. Nur dieser letzte Server gibt eine echte Antwort statt eines Verweises auf woanders. Der rekursive Resolver cacht sie und gibt sie an Ihren Stub-Resolver zurück, der sie an Ihren Browser weitergibt.
Jeder Hop nach dem ersten wird übersprungen, sobald ein Cache unterwegs die Antwort schon hat, weshalb die überwältigende Mehrheit der alltäglichen Abfragen nie einen Root-Server berührt.
Resolver des Internetanbieters vs. öffentlicher Resolver: Was ändert sich wirklich?
Der Resolver, den Ihr Gerät standardmäßig nutzt, kommt meist per DHCP, ausgehändigt von Ihrem Router oder Ihrem Internetanbieter, und ist fast immer ein rekursiver Resolver, der die volle Auflösung für Sie übernimmt. Was er mit Ihren Abfragen macht, wie groß sein Cache ist und von wie vielen Standorten er läuft, legt der Betreiber fest und ist von Ihrer Seite aus nicht einsehbar.
Öffentliche Resolver existieren als Alternative, auf die Sie Ihr Gerät stattdessen zeigen können: Google Public DNS läuft auf 8.8.8.8, Cloudflare auf 1.1.1.1 und Quad9 auf 9.9.9.9. Jeder veröffentlicht seine eigene Richtlinie dazu, was er protokolliert und wie lange, jeder betreibt sein eigenes Anycast-Netzwerk, sodass dieselbe Adresse von dem Standort antwortet, der Ihnen am nächsten liegt, und Quad9 sperrt außerdem standardmäßig bekannt bösartige Domains auf Resolver-Ebene, was ein Resolver eines Internetanbieters typischerweise nicht tut. Nichts davon ändert, was DNS selbst kann: Ein Resolver entscheidet nur, wie eine Abfrage ausgeführt wird, nicht, was die Einträge einer Domain sagen.
Welchen Resolver nutzt Ihre Maschine gerade?
Der Resolver, den Sie tatsächlich nutzen, ist eine Einstellung, kein Ratespiel, und jedes Betriebssystem hat einen Befehl, der ihn zeigt:
- Windows:
ipconfig /alllistet „DNS-Server" unter jedem Netzwerkadapter, in der Reihenfolge, in der sie abgefragt werden. - macOS:
scutil --dnsmeldet die aktuelle DNS-Konfiguration, einschließlich der geltenden Nameserver für jeden Netzwerkdienst. - Linux mit systemd-resolved:
resolvectl statuszeigt, laut eigenem Handbuch, „die aktuell geltenden globalen und Per-Link-DNS-Einstellungen", also sowohl den Fallback-Resolver als auch das, womit eine bestimmte Verbindung wie WLAN oder ein VPN ihn überschrieben hat.
Ein VPN, ein Firmennetzwerk oder die eigene Secure-DNS-Einstellung eines Browsers kann jeweils einen anderen Resolver einsetzen, ohne dass sich die Meldung des Betriebssystem-Befehls ändert, stimmt dessen Antwort also nicht mit Ihrer Erwartung überein, ist das der erste Ort, an dem Sie nachsehen sollten.
Welcher Resolver eine Abfrage beantwortet, kann das Ergebnis ändern, das Sie sehen, nicht nur, wie schnell Sie es bekommen: ein Resolver mit veraltetem Cache, einem regionalen Ausfall oder einer eigenen Filterrichtlinie kann etwas anderes liefern, als die autoritativen Server direkt sagen würden. Führen Sie eine Abfrage mit dem DNS-Abfragewerkzeug aus, um zu vergleichen, oder antwortet der Resolver langsam statt anders, behandelt so beheben Sie eine langsame DNS-Abfrage das Messen und Ändern. Antwortet er gar nicht, starten Sie mit DNS-Server antwortet nicht. Für das Caching-Verhalten hinter all dem siehe was ein DNS-Cache ist. HostTracker überwacht Websites seit 2004, beobachtet inzwischen über 500.000 Websites von mehr als 300 Prüfpunkten in 158 Städten und kann per E-Mail, SMS, Sprachanruf, Slack, Telegram und mehr alarmieren, sobald eine Prüfung, die eine bestimmte IP-Adresse erwartet, eine andere sieht.
Häufig gestellte Fragen
Ist mein Router ein DNS-Resolver?
Oft nur in eingeschränktem Sinn. Viele Heimrouter betreiben einen kleinen DNS-Forwarder: Er antwortet aus einem winzigen Cache, aber für alles noch nicht Zwischengespeicherte reicht er die Abfrage direkt an den Resolver des Internetanbieters weiter, statt selbst vollständig zu rekurrieren. RFC 2308 beschreibt diese Rolle als Forwarder, „einen Nameserver, der genutzt wird, um Abfragen aufzulösen, statt direkt die autoritative Nameserver-Kette zu nutzen".
Macht ein öffentlicher Resolver mein Surfen schneller?
Manchmal, manchmal nicht. Ein Resolver nahe bei Ihnen mit warmem Cache antwortet im einstelligen Millisekundenbereich, unabhängig davon, wer ihn betreibt. Die Hauptvariablen sind, wie nah der nächste Standort des Resolvers an Ihnen liegt und wie warm sein Cache schon ist, nicht der Markenname.
Was ist der Unterschied zwischen Rekursion und Weiterleitung?
Ein Resolver, der Rekursion betreibt, fragt Root, TLD und autoritative Server selbst ab, einen Hop nach dem anderen, und cacht das Endergebnis. Ein Resolver, der stattdessen weiterleitet, schickt die ganze Frage an einen anderen Resolver und wartet auf eine vollständige Antwort, tauscht die Arbeit, und die Einsicht in das, was Sie nachgeschlagen haben, gegen das, was der vorgeschaltete Resolver bereits zwischengespeichert hat.
Laufen alle 13 Root-Server auf 13 Maschinen?
Nein. Es gibt dreizehn benannte Root-Server-Identitäten, aber jede wird von vielen physischen Maschinen weltweit bedient, sodass eine Abfrage zu einer nahegelegenen Kopie geroutet wird, statt jedes Mal einen Ozean zu überqueren.
Können zwei Geräte im selben Netzwerk unterschiedliche Resolver nutzen?
Ja. Der Router gibt per DHCP eine Vorgabe aus, aber jedes Gerät kann sie in den eigenen Netzwerkeinstellungen überschreiben, und ein VPN oder die Secure-DNS-Einstellung eines Browsers kann sie obendrauf noch einmal überschreiben. Die obigen Befehle zeigen immer, was genau dieses Gerät in diesem Moment nutzt, nicht, was das Netzwerk vorsieht.