Split-horizon DNS is a DNS deployment method that returns different answers for the same domain name depending on whether the query originates from internal or external clients, typically serving private addresses to internal users and public addresses to external users. Organizations use split-horizon DNS to allow employees to reach services by private addresses on the corporate network while customers access the public endpoints using the same domain name, avoiding unnecessary internet routing and keeping internal hostnames hidden from public DNS zones. The primary operational risk involves zone drift, where internal and external records fall out of sync through separate manual edits, causing users to see inconsistent behavior on and off the network, which can be mitigated through automation, change control, and regular view comparison.
So funktioniert Split-Horizon-DNS
Bei einer Split-Horizon-Bereitstellung werden zwei Sätze von Antworten für eine Domain vorgehalten, zwischen denen bei Eingang einer Abfrage ausgewählt wird. Dies kann mit separaten Servern oder mit einem einzigen Server, der Ansichten unterstützt, realisiert werden.
- Definieren der Ansichten: Der Administrator erstellt eine interne und eine externe Version der Zone. Die interne Version enthält private Adressen und ausschließlich interne Hosts, während die externe Version nur öffentliche Einträge enthält.
- Abgleich mit dem Client: Wenn eine Anfrage eintrifft, prüft der Server deren Quelle – meist die IP-Adresse des Clients – und gleicht sie mit den Zugriffsregeln für die jeweilige Ansicht ab. Einige Server können den Abgleich auch anhand der Zieladresse oder eines Signaturschlüssels vornehmen.
- Antwort aus der entsprechenden Ansicht: Der Server antwortet ausschließlich mit den Datensätzen der ausgewählten Ansicht. Ein interner Client, der nach einem Dienstnamen fragt, erhält möglicherweise eine private Adresse, während ein externer Client, der nach demselben Namen fragt, eine öffentliche Adresse erhält.
- Nicht zugeordnete Abfragen auflösen: Abfragen, die keiner internen Regel entsprechen, werden der externen Ansicht oder einer Standardansicht zugeordnet, sodass unbekannte Quellen niemals interne Daten sehen.
Separate Server erzielen dasselbe Ergebnis, indem interne Resolver im privaten Netzwerk und öffentliche autoritative Server im Internet platziert werden. Interne und externe Zonendaten müssen manuell oder automatisiert synchronisiert werden, da die oben genannten Schritte dies nicht gewährleisten.
Häufige Probleme mit Split-Horizon-DNS
Ein Eintrag wird zur externen Zone hinzugefügt, nicht jedoch zur internen, oder umgekehrt. Interne Benutzer erhalten dann NXDOMAIN oder veraltete Adressen für Namen, die von zu Hause oder über das Internet funktionieren.
Zugriffsregeln auf Basis der Client-Adresse können dazu führen, dass VPN-Clients, Gast-WLAN oder Cloud-Workloads in die falsche Ansicht gelangen. Benutzer sehen private Adressen, die sie nicht erreichen können, oder öffentliche Adressen, die nach außen und wieder zurück geleitet werden.
Geräte, die mit einem öffentlichen Resolver konfiguriert sind, oder Browser, die verschlüsseltes DNS eines Drittanbieters nutzen, umgehen die internen Server. Interne Namen können nicht aufgelöst werden oder geben die öffentliche Adresse zurück.
Interne und externe Endpunkte hinter einem Namen können unterschiedliche Zertifikate vorweisen. Bei Clients treten Vertrauensfehler auf, wenn die interne Adresse ein Zertifikat bereitstellt, das den gemeinsamen Namen nicht abdeckt.
Ein gemeinsamer Caching-Resolver oder Forwarder vor beiden Ansichten kann eine Antwort aus einer Ansicht speichern und sie der anderen Zielgruppe bereitstellen. Zu den Symptomen gehören zeitweise falsche Adressen, die verschwinden, sobald der Cache abläuft.