A forwarding DNS server is a DNS infrastructure component that delegates unresolved queries to designated upstream servers rather than performing full recursive resolution itself, while maintaining a local cache of responses to serve repeated client queries faster and reduce outbound DNS traffic. Forwarding servers are commonly deployed at branch offices, remote sites, and internal nodes to centralize external name resolution, improve response times through caching, and enable centralized logging and filtering across multiple locations. While forwarding simplifies local DNS architecture and enhances efficiency, it introduces dependencies on upstream server availability and integrity, requiring careful monitoring, multiple forwarder configurations for redundancy, and proper conditional forwarding rules to avoid outages and security vulnerabilities.
So funktioniert ein weiterleitender DNS-Server
Ein weiterleitender DNS-Server ist mit einem oder mehreren vorgelagerten Servern, sogenannten Forwardern, konfiguriert. Er beantwortet Anfragen, die er anhand lokaler Daten oder aus dem Cache beantworten kann, und leitet alle anderen Anfragen an diese vorgelagerten Server weiter.
- Client-Abfrage: Ein Client oder Stub-Resolver sendet eine rekursive Abfrage für einen Namen an den weiterleitenden DNS-Server.
- Lokale Überprüfung: Der Server überprüft die von ihm gehosteten Zonen und seinen Cache. Wenn er eine gültige Antwort vorrätig hat, antwortet er sofort.
- An den Upstream-Server weiterleiten: Wenn keine Antwort vorliegt, sendet der Server die Anfrage an einen konfigurierten Forwarder, bei dem das Flag „Recursion desired“ gesetzt ist, und fordert den Upstream-Server auf, die vollständige Auflösung durchzuführen.
- Upstream-Auflösung: Der Upstream-Server löst den Namen auf, in der Regel durch Durchlaufen der DNS-Hierarchie von der Root aus, oder antwortet aus seinem eigenen Cache.
- Zwischenspeichern und Antworten: Der Weiterleitungsserver empfängt die Antwort, speichert sie für die Dauer ihrer Gültigkeitszeit und sendet sie an den Client zurück.
Viele Implementierungen unterstützen die bedingte Weiterleitung, bei der Abfragen für bestimmte Domänen an bestimmte Server gesendet werden, beispielsweise an die DNS-Server eines Partnernetzwerks. Einige können auf ihre eigene iterative Auflösung zurückgreifen, wenn die Weiterleitungsserver nicht antworten, während andere so konfiguriert werden können, dass sie ausschließlich weiterleiten und die Abfrage stattdessen als fehlgeschlagen melden.
Häufige Probleme mit DNS-Weiterleitungsservern
Sind alle konfigurierten Forwarder nicht erreichbar, können Clients externe Namen nicht auflösen, obwohl der lokale Server betriebsbereit ist. Die Angabe von mindestens zwei Forwardern auf unterschiedlichen Pfaden verringert dieses Risiko.
Zwei Server, die so konfiguriert sind, dass sie sich gegenseitig weiterleiten, oder eine Kette, die sich im Kreis dreht, führen dazu, dass Anfragen so lange hin- und hergeschickt werden, bis die Zeitüberschreitung eintritt. Zu den Symptomen gehören langsame Namensauflösungen und SERVFAIL-Antworten für Namen, die an anderer Stelle aufgelöst werden.
Das Senden von Abfragen für interne Domänen an einen öffentlichen Upstream-Server führt zu NXDOMAIN oder falschen Antworten. Bedingte Weiterleitung oder lokal gehostete Zonen für diese Domänen verhindern dies.
Der Forwarder speichert alles, was der Upstream-Server zurückgibt, im Cache, sodass eine fehlerhafte Antwort so lange bestehen bleibt, bis ihre TTL abläuft. Durch das Leeren des Caches wird die lokale Kopie korrigiert, nicht jedoch die Upstream-Quelle.