Ein DNS-Resolver akzeptiert eine DNS-Anfrage von einer Client-Anwendung, führt die Abfrage durch, indem er bei Bedarf andere DNS-Server abfragt, und gibt die endgültige Antwort zurück. Es gibt zwei Haupttypen: einen Stub-Resolver (ein einfacher Client-seitiger Forwarder auf deinem Gerät) und einen rekursiven Resolver (der vollständige Resolver, der die iterativen Abfragen und das Caching durchführt).
Wie rekursive Auflösung funktioniert
Wenn du eine DNS-Anfrage stellst:
- Deine Anwendung fragt den OS-Stub-Resolver ab.
- Der Stub-Resolver leitet an einen konfigurierten rekursiven Resolver weiter (oft der deines ISP oder ein öffentlicher Dienst wie Google DNS
8.8.8.8). - Falls die Antwort nicht gecacht ist, fragt der Resolver einen Root-Server ab, der ihn an den relevanten TLD-Nameserver verweist.
- Der Resolver fragt den TLD-Nameserver ab, der ihn an den autoritativen Nameserver der Domain verweist.
- Der Resolver fragt den autoritativen Server ab und erhält den Resource Record (A, AAAA, MX usw.).
- Der Resolver speichert das Ergebnis für die TTL des Records zwischen und gibt es an deinen Client zurück.
Häufige Beispiele
Öffentliche rekursive Resolver sind Google Public DNS (8.8.8.8), Cloudflare (1.1.1.1) und Quad9 (9.9.9.9). Dein ISP oder deine Organisation betreibt normalerweise auch einen rekursiven Resolver.
WarningEin Resolver ist niemals autoritativ: Er besitzt keine Zonendaten, sucht diese nur auf und speichert sie zwischen. Gecachte Antworten bleiben für die TTL des Records bestehen, weshalb DNS-Änderungen scheinbar Zeit zum "Propagieren" brauchen – die Verzögerung ist tatsächlich Cache-Ablauf, nicht Netzwerk-Propagierung.