Verwendung von zwei verschiedenen privaten DNS-Servern (einer hinter einem VPN)

4

Stellen Sie sich das folgende Szenario vor:

Ich bin mit einem lokalen Netzwerk mit einem eigenen privaten DNS-Server verbunden (nennen Sie es lan-dns). Dieser DNS-Server wird verwendet, um die Namen einiger privater Hosts im LAN aufzulösen. Alle anderen DNS-Anforderungen werden an einen DNS-Server im Internet weitergeleitet.

Ich möchte über ein VPN eine Verbindung zu einem anderen Remote-LAN herstellen. Das Remote-LAN verfügt auch über einen privaten DNS-Server (der vpn-dnsnach Argumenten benannt ist), der zum Auflösen der Namen der privaten Hosts im Remote-Netzwerk erforderlich ist.

Wenn keine Verbindung zum VPN besteht, kann ich über deren Namen auf die Hosts in meinem LAN zugreifen. Wenn ich jedoch mit dem VPN verbunden bin , kann ich nicht auf die Hosts in meinem lokalen Netzwerk zugreifen, da der DNS des Remotenetzwerks diesen in meinem lokalen Netzwerk überschreibt.

Wenn ich bei bestehender VPN-Verbindung meinen DNS-Server erzwinge, kann ich lan-dnsdie Namen der Hosts im Remotenetzwerk nicht auflösen.

Was ist der einfachste Weg, um dieses Problem zu lösen? Ist es überhaupt möglich?

Dieses Szenario muss immer häufiger werden, aber es scheint keine elegante Lösung zu geben, die ich finden kann.

FixMaker
quelle
Das hängt davon ab, was der Serveradministrator Ihnen erlaubt ... VPN wäre nicht so sicher, wenn Clients mit Leuten sprechen könnten, die nicht im VPN-Club sind
Kanadier Luke,
Welches Betriebssystem verwenden Sie? Reist der Computer, den Sie als VPN-Client verwenden, mit Ihnen oder befindet er sich immer im LAN, wo er lan-dnsals Auflöser fungiert?
Aaron Miller
@AaronMiller - Das Betriebssystem kann Windows oder Linux sein. Im Moment kann davon ausgegangen werden, dass der VPN-Client-Computer immer mit dem lokalen Netzwerk verbunden ist. Würde es einen Unterschied machen, wenn es nicht so wäre?
FixMaker
Wie Sie dies tun, hängt davon ab, wie die VPN-Verbindung hergestellt wird. Welche Art von Verbindung verwendet das VPN? Warum benutzt du nicht einfach eine hosts-Datei dafür?
Ramhound
@Ramhound - Die Verbindung wird über OpenVPN hergestellt. Ich kann keine statische Hosts-Datei verwenden, da es tatsächlich mehrere VPN-Clients gibt und ich nicht auf jedem einzelnen Client eine Datei verwalten muss.
FixMaker

Antworten:

4

Auf der IP-Ebene wird das gesuchte Element als Split-Tunneling bezeichnet und vom Client aus konfiguriert (zumindest in nicht verwalteten Szenarien). Es ermöglicht Anfragen an lokale LAN-Adressen, um Ihr lokales (logisches) Netzwerk zu verwenden, und Anfragen an entfernte LAN-Adressen werden durch den VPN-Tunnel geleitet. Wenn Split-Tunneling nicht aktiviert ist, kann der mit dem VPN verbundene Host überhaupt nicht mit anderen Computern im lokalen LAN-IP-Bereich kommunizieren. Dies ist also mehr als nur ein Problem mit der DNS-Auflösung. Wenn Sie bei aktiviertem Split-Tunneling auf das Intranet zugreifen, muss Ihre Standardroute auf ein Gateway in der lokalen LAN verweisen. Andernfalls besteht Unklarheit darüber, welches Netzwerk verwendet werden soll.

Das Problem hier ist jedoch DNS. Windows (und auch Linux) binden die DNS-Serverkonfiguration an die lokale Schnittstelle und nicht an die einzelnen routingfähigen Verbindungen. Dies bedeutet, dass Sie immer nur einen DNS-Server gleichzeitig verwenden können und keinen abhängig von der Zieladresse auswählen können. Versuchen Sie, DNSMasq wie hier beschrieben auf dem VPN'ing-PC auszuführen: http://blog.nixpanic.net/2013/03/use-dnsmasq-for-separating-dns-queries.html

Frank Thomas
quelle
Können Sie mir erklären, wie Windows (oder Linux) anhand des Namens, den Sie auflösen möchten, bestimmen kann, welcher DNS-Server verwendet werden soll? Zuerst müssen Sie einen Hostnamen suchen, um dessen IP-Adresse abzurufen. Anhand der IP-Adresse und der Routing-Tabellen kann der Computer entscheiden, welche Verbindung verwendet werden soll.
Gogognome
Tut mir leid, das ist wie 2 Jahre zu spät, aber du kannst nicht. Wie ich bereits sagte, ist DNS pro Schnittstelle und nicht dynamisch, da es basierend auf dem Namen, den Sie auflösen, überhaupt keine Auswahl trifft.
Frank Thomas
1

In meiner Antwort auf diese Superuser-Frage finden Sie die einfachste Lösung mit Screenshots und einer grundlegenden Erläuterung des zugrunde liegenden Problems.

Jerry W Jackson
quelle
Es tut mir leid, aber ich kann nicht sehen, wie das DNS-Problem behoben werden kann. Wenn ich mit beiden Netzwerken verbunden bin, ist das Routing kein Problem (ich könnte auf Hosts in beiden Netzwerken direkt zugreifen, indem ich ihre IP-Adresse verwende, aber nicht indem ich ihren Hostnamen verwende). Wie Frank Thomas in seiner Antwort erwähnt hat, können die meisten Betriebssysteme nur einen DNS-Server gleichzeitig verwenden, unabhängig davon, wie das Routing eingerichtet ist.
FixMaker
Das Routing ist in diesem Fall DNS. Alles, was meine Lösung tut, ist sicherzustellen, dass DNS für beide Netzwerke funktioniert, wenn beide verbunden sind, sodass Sie keine IPs für das lokale Netzwerk verwenden müssen, wenn Sie mit dem VPN verbunden sind. Es scheint, dass Sie unnötigerweise versuchen, ein eher einfaches Problem zu erschweren.
Jerry W Jackson
Nein, DNS! = Routing auf jeden Fall. Der Resolver verwaltet eine eigene Liste von Nameservern und unterscheidet sich erheblich von einer Routing-Tabelle. Nur weil Sie die Einstellung deaktivieren, durch die das VPN Ihre Standardroute und andere Routen überschreibt, weiß der Resolver nicht automatisch, wann DNS-Abfragen für bestimmte Domänen an einen Nameserver im Vergleich zum anderen gesendet werden müssen. Durch die Korrektur der Routen sind beide nur erreichbar. Der Resolver probiert den ersten bekannten Nameserver aus, aber nur dann, wenn das Timeout abgelaufen ist und keine Antwort vorliegt (NXDOMAIN-Antworten zählen daher nicht).
Brian Cline