
Zu diesem Setup:
Mein öffentlicher autoritativer DNS-Server unter <public dns ip>
:
example.com. A <public webserver IP>
foo.bar.example.com. TXT "Hello World"
Mein privater autoritativer DNS-Server unter 192.168.0.2
:
foo.bar.example.com. A "192.168.0.1"
bar.bar.example.com. CNAME "foo.bar.example.com"
Ich habe also zwei autoritative DNS-Server, einen in der öffentlichen Domäne, einen in der privaten Domäne. Der öffentliche Server muss einige TXT-Einträge, aber keine A-Einträge, für eine bestimmte Teilmenge von Domänen bereitstellen. Der private Server muss A- und CNAME-Einträge bereitstellen, die nur für den internen Gebrauch bestimmt sind, aber keine TXT-Einträge.
Wenn die DNS-Server-IPs meiner Clients in der falschen Reihenfolge (öffentlich, privat) angegeben sind, verhindert dann die Antwort des öffentlichen, autoritativen DNS-Servers, dass der private DNS-Server abgefragt wird?
Beispiel:
Der Client hat resolv.conf
Folgendes eingestellt:
<public dns ip>
192.168.0.2
Wenn sie es nslookup foo.bar.example.com
von ihrer Konsole aus ausführen, wird es aufgelöst 192.168.0.1
oder wird ihnen der öffentliche DNS-Server mitteilen, dass der Name nicht existiert und sie die Suche beenden sollen?
Antwort1
Das Auflösen funktioniert nicht so, wie Sie denken. Wenn Sie mehrere Zeilen in Ihrem haben, resolv.conf
werden diese als Fallback verwendet: Das System verwendet immer den ersten Nameserver und nur wenn dieser überhaupt nicht antwortet (was etwas anderes ist als zu antworten, dass ein Name nicht existiert), fragt es den zweiten ab und so weiter. Dies gilt grundsätzlich pro Abfrage.
Sie sollten die Dinge anders einrichten: Verwenden Sie nur einen autoritativen Nameserver und bind
nutzen Sie, wenn Sie ihn verwenden, dessen views
Mechanismus, um verschiedenen Clients unterschiedliche Dinge zu antworten. Überlassen Sie den Clients das normale Durchlaufen des DNS-Trees, um ihn zu finden.
Aber ansonsten haben Sie theoretisch recht: Wenn der „öffentliche“ Server antwortet und NXDOMAIN sagt, wird die Suche dort beendet. Außer, dass Sie autoritative und rekursive Werte vermischen (die in resolv.conf
), was eine sehr schlechte Angewohnheit ist. Und Sie haben immer noch ein Setup, das komplizierter ist als nötig und Ihnen später Probleme bereiten wird.
Antwort2
Dies ist eine gängige Konfiguration in Windows-Netzwerken, wo (aufgrund der Active Directory-DNS-Integration) der rekursive Resolver auch der autoritative Server für diese DNS-Zonen ist.
Wenn im öffentlichen DNS auch eine Zone mit demselben Namen (aber anderen Datensätzen) vorhanden ist, werden Versuche, die öffentlichen Datensätze abzufragen, beim internen rekursiven Resolver beendet (da dieser für diese Zone maßgebend ist, kann er maßgebend feststellen, dass der Datensatz nicht vorhanden ist). Daher wird die öffentliche Zone für jeden Client, der den privaten Resolver verwendet, durch die private Zone maskiert.
Antwort3
Meiner Meinung nach, wenn Sie <public dns ip>
nicht über den A-Eintrag für die Domäne verfügen, dann ist es definitiv an den sekundären DNS-Server gekommen192.168.0.2