Buckley - stock.adobe.com
Rekursive vs. iterative DNS-Abfragen: Die Unterschiede
Fehlerhafte Namensauflösung kann die interne Kommunikation lahmlegen. Eine präzise Unterscheidung der DNS-Abfragetypen verkürzt die Ausfallzeiten bei der Fehlersuche im Netzwerk.
Die Namensauflösung ist für den Netzwerkbetrieb unerlässlich. Sie verknüpft die Host-Namen mit den für die TCP/IP-Konnektivität erforderlichen IP-Adressen. Der Prozess basiert typischerweise auf dem Domain Name System (DNS). Dieser Dienst empfängt Anfragen von Geräten, die Namen oder IP-Adressen zu bestimmten Identitäten benötigen. Er liefert die entsprechenden Informationen oder teilt der Anfragequelle mit, dass die Identität nicht existiert.
Abfragen zur Namensauflösung erfolgen im Hintergrund, ohne dass die meisten Benutzer und Anwendungen davon etwas mitbekommen. Sie erfüllen jedoch eine wichtige Funktion, die für die Netzwerkkonfiguration und das Troubleshooting unerlässlich ist.
Übersicht über die Namensauflösung
Um auf einen Netzwerkknoten, etwa einen Drucker, einen Dateiserver oder eine Website, zu verweisen, geben Benutzer in der Regel einen leicht zu merkenden Namen ein. Die Datenpakete, die die Konnektivität zwischen dem lokalen und dem Remote-System herstellen, müssen jedoch die IP-Adresse jedes Geräts ermitteln. IP-Adressen sind für Menschen schwer zu merken und TCP/IP erkennt Namen nicht als Netzwerkkennungen.
Hier kommt DNS ins Spiel. DNS verwaltet eine hierarchische Struktur von Datenbankeinträgen, die Namen und IP-Adressen miteinander verknüpfen. Wenn ein Benutzer einen Host-Namen auf einem Clientgerät eingibt, sendet das Gerät eine Anfrage zur Namensauflösung an den DNS-Server, um die mit dem Namen verbundene IP-Adresse zu erfahren.
Diese Anfrage zur Namensauflösung wird als DNS-Abfrage (DNS Query) bezeichnet und übersetzt den Host-Namen in eine IP-Adresse, die Geräte erkennen können. Das Gerät, das die Abfrage initiiert, wird Resolver genannt. Einige Clients, zum Beispiel ein Webbrowser, können mehrere Resolver in verschiedenen Phasen des Prozesses haben.
Es gibt zwei Arten von DNS-Abfragen
Es gibt zwei Arten von DNS-Abfragen, die sich in ihren Funktionen geringfügig unterscheiden:
- Rekursiv: Der Resolver akzeptiert die vollständige Antwort, aber keine Verweise (Referrals) auf einen anderen DNS-Server. Der angefragte DNS-Server muss die Arbeit übernehmen und die Adresse vollständig auflösen.
- Iterativ: Der Resolver akzeptiert die vollständige Antwort oder einen Verweis (Referral) auf einen anderen DNS-Server, der dem Ziel näher ist.
In der Regel können Netzwerkadministratoren nicht zwischen iterativen und rekursiven Abfragen wählen. Der Unterschied liegt in der Art und dem Umfang der Namensauflösung, die erforderlich ist, um die Verbindungsanfrage des Clientgeräts zu bearbeiten.
Was sind rekursive DNS-Abfragen?
Eine Windows-Workstation (der Resolver) generiert eine rekursive DNS-Abfrage, um den Namen einer Website in eine IP-Adresse zu übersetzen. Die Abfrage erfordert entweder eine vollständige Antwort oder die eindeutige Meldung, dass die angeforderte Ressource nicht existiert. Sie sendet diese Abfrage an ihren DNS-Server und erwartet, dass der Server entweder mit der IP-Adresse oder mit einer entsprechenden Fehlermeldung antwortet.
Beim Troubleshooting wird beispielsweise häufig die Netzwerkkonfiguration eines Systems mit dem Befehl Ping überprüft. Hierzu geben Netzwerkadministratoren das folgende Kommando ein:
ping server42
Es kann sinnvoll sein, Ping-Echo-Anfragen an Server 42 zu senden. Allerdings gelten für IP-Paket-Header strenge Regeln, die für eine erfolgreiche Konnektivität eine Quell- und Ziel-IP-Adresse vorschreiben. Dieser Netzwerkbefehl gibt jedoch keine IP-Adresse, sondern einen Hostnamen an. In diesem Fall lautet der Hostname server42.
Mithilfe des Arguments server42 generiert der Computer eine Abfrage zur Namensauflösung. Anschließend sendet er die Abfrage an den angegebenen DNS-Server. Sinngemäß sagt der Computer damit: „Mein Benutzer hat server42 eingegeben. Wie lautet die IP-Adresse für diesen Namen?”
Der DNS-Server speichert Ressourceneinträge (Resource Records), anhand derer er Abfragen wie diese beantworten kann. In diesem Beispiel befinden sich der Testcomputer und server42 im selben internen Netzwerk. Der DNS-Server verfügt über einen Ressourceneintrag für server42 und verknüpft diesen mit der entsprechenden IP-Adresse.
In diesem Beispiel lautet die IP-Adresse 192.168.2.22.
Der DNS-Server antwortet: „Der Name server42 ist mit der IP-Adresse 192.168.2.22 verknüpft.“ Anschließend sendet der Clientcomputer die Ping-Pakete an diese Ziel-IP-Adresse, was den TCP/IP-Adressierungsanforderungen entspricht.
Dieser Vorgang ist für interne Ressourcen in der Regel unkompliziert, da sich die Workstation, der DNS-Server und die Zielressource alle im selben Netzwerk befinden. Netzwerkadministratoren erstellen Ressourceneinträge manchmal manuell oder registrieren sie dynamisch über Netzwerkgeräte (zum Beispiel via DHCP-DNS-Updates).
Was sind iterative DNS-Abfragen?
Iterative Abfragen stellen ein komplexeres Szenario dar, an dem mehrere DNS-Server, die DNS-Namenshierarchie und mehrere Abfragen beteiligt sind. Eine internetbasierte Namensauflösung findet häufig statt, wenn ein Clientgerät innerhalb eines Netzwerks die IP-Adresse für eine Website oder eine ähnliche Ressource außerhalb des Netzwerks benötigt.
Das Clientgerät initiiert eine rekursive Abfrage bei seinem DNS-Server. Dieser muss dem Client eine verbindliche Antwort zurückgeben. Der DNS-Server, der nun als konditionaler Forwarder oder rekursiver Resolver fungiert, startet jedoch eine Reihe von iterativen Abfragen an andere Internet-DNS-Server. Er akzeptiert entweder die endgültige Antwort oder leitet sich selbst schrittweise von Server zu Server weiter, bis er die endgültige Antwort liefert.
DNS-Server im lokalen Netzwerk kennen die IP-Adresse in der Regel nicht, da sich die Zielwebsite außerhalb des Unternehmensnetzwerks befindet. Sie müssen deshalb zusätzliche DNS-Server abfragen, um die Anfrage des Clientcomputers zu beantworten.
Angenommen, jemand gibt www.techtarget.com in einen Webbrowser ein. Der Computer steht vor demselben Problem wie zuvor: Er kennt den Namen, benötigt aber eine IP-Adresse, um sich mit dem Webserver zu verbinden. Der DNS-Server sendet iterative Abfragen über eine hierarchische Struktur. Die iterativen Abfragen beginnen mit dem Internet-Root und arbeiten sich nach und nach bis zur jeweiligen Website vor.
Nachfolgend einige Beispiele für iterative Abfragen:
- Iterative Abfrage an die Internet-Root-Ebene (.): „Wie lautet die IP-Adresse von www.techtarget.com?” Antwort: „Ich weiß es nicht, aber frage bei den .com-TLD-Servern nach.”
- Iterative Abfrage an die com-Ebene: „Wie lautet die IP-Adresse von www.techtarget.com?” Antwort: „Ich weiß es nicht, aber frage bei den autoritativen Servern von techtarget nach.“
- Iterative Abfrage an die techtarget-Ebene: „Wie lautet die IP-Adresse von www.techtarget.com?” Die Antwort ist die entsprechende IP-Adresse aus dem A- oder AAAA-Eintrag.
Der DNS-Server gibt diese IP-Adresse dann als endgültige Antwort an das Clientgerät zurück. Er nutzt eine Reihe von iterativen Abfragen, um die erforderlichen Informationen aus einer Hierarchie anderer Server für die Namensauflösung zu ermitteln. Mittels Caching und Mirroring lässt sich dieser Prozess beschleunigen.
Troubleshooting von DNS-Abfragen
Um DNS-Probleme zu beheben, müssen Netzwerkadministratoren die Abfragen verstehen, um den Fehlerort im Prozess ermitteln zu können. DNS-Server außerhalb des Netzwerks entziehen sich der Kontrolle des Netzwerkteams.
Ein weiterer Aspekt, den es zu berücksichtigen gilt, sind Firewalls. DNS verwendet für Abfragen im Allgemeinen UDP-Port 53. Bei umfangreicheren Abfragen, wie Zonentransfers oder DNSSEC-Antworten, wird jedoch zu TCP-Port 53 gewechselt.
In der Vergangenheit nutzten Netzwerkadministratoren TCP-Port 53 für Zonentransfers, während UDP-Port 53 aus Effizienzgründen für kleinere Abfragen zum Einsatz kam. Je nach Konfiguration des Netzwerks müssen Admins möglicherweise einen oder beide Ports auf den Firewalls verwalten.
Clientgeräte speichern Informationen zur Namensauflösung im Cache, um wiederholte Abfragen für häufig aufgerufene Ressourcen zu vermeiden. Netzwerkadministratoren können diesen Cache auf Windows-Computern über den Befehl ipconfig und drei verschiedene Schalter einfach verwalten:
- ipconfig /displaydns zeigt die zuletzt übersetzten Namen und IP-Adressen an.
- ipconfig /flushdns leert den Cache, wodurch neue DNS-Abfragen anstelle von zwischengespeicherten Informationen erzwungen werden.
- ipconfig /registerdns erstellt einen neuen Ressourceneintrag für den Client auf dem DNS-Server. Dies ist üblich, nachdem der Client eine neue IP-Adresse per DHCP erhalten hat.
Ergänzendes Tool: nslookup
Für tiefergehendes Troubleshooting nutzen Administratoren meist das Tool nslookup (unter Linux/macOS wird stattdessen meist dig verwendet). Damit lassen sich gezielt rekursive oder iterative Abfragen simulieren.
- nslookup server42 prüft die Auflösung über den Standard-DNS.
- nslookup www.techtarget.com 8.8.8.8 fragt gezielt einen externen DNS-Server (hier Google) ab, um lokale Fehlkonfigurationen auszuschließen.
DNS-Sicherheit
Im modernen Troubleshooting und Netzwerkdesign spielen zudem DNSSEC (kryptografische Signierung von DNS-Einträgen) sowie verschlüsselte Protokolle wie DoH (DNS over HTTPS) und DoT (DNS over TLS) eine wichtige Rolle. Sie verhindern Man-in-the-Middle-Angriffe (DNS-Spoofing), erfordern beim Troubleshooting jedoch eine genaue Prüfung der HTTPS-/TLS-Ports (443 und 853).
Fazit
DNS spielt in fast jedem Netzwerk eine zentrale Rolle. Für Administratoren ist es wichtig, die Unterschiede zwischen iterativen und rekursiven Abfragen zu verstehen, um nachvollziehen zu können, was hinter den Kulissen ihres Netzwerks geschieht. Dieses Wissen ermöglicht ihnen ein effizientes Troubleshooting und sorgt für mehr Sicherheit.
DNS schließt die Lücke zwischen Hostnamen, die sich Menschen leicht merken können, und IP-Adressen, die Computer benötigen, um sich miteinander zu verbinden. Clientgeräte fragen automatisch bestimmte DNS-Server ab, um Namen in IP-Adressen zu übersetzen. Die beiden Abfragetypen ermöglichen eine schnelle und zuverlässige Namensauflösung.
Dieser Artikel ist im Original in englischer Sprache auf Search Networking erschienen.