Lokale DNS und Domainauflösung mit OpenVPN und Windows

In diesem Artikel beschreibe ich, was man tun muss, um einen Windows Client, der via OpenVPN im lokalen Netzwerk eingewählt ist, dazu zu überreden kann den lokalen DNS Server und die Namensauflösung der Windows Domäne zu benutzen.

Einleitung

Seit einigen Monaten nutze ich nun schon die Möglichkeit mich von extern in mein Heimnetzwerk via OpenVPN einzuwählen. Sei es nun um ein wenig mit den Parametern der Hausautomation zu experimentieren (Heizung wärmer schalten,…) oder um zu Hause schnell noch was zu administrieren.

In dem Tutorial “Installation von OpenVPN auf einem RaspberryPi3” ist erklärt, wie man einen stromsparenden OpenVPN Server für zu Hause installieren kann.

Das funktioniert soweit auch ganz gut – die Clients kommen ins heimische Netzwerk und können darüber auch im Internet surfen.

Allerdings muss man bei dieser Variante alle IP Adressen des heimischen Netzwerkes auswendig kennen, oder zumindest irgendwo griffbereit haben. Denn bei der oben vorgestellten Lösung können die Clients sich nur darüber mit den internen Rechnern verbinden. Eine Namensauflösung findet nicht statt. Irgendwie suboptimal – wer merkt sich sich schon sowas wie 192,168,42,18 ist mein Toaster ;-).

Wie “cool” wäre es denn wenn ich den Toaster auch einfach mit Toaster ansprechen kann, selbst wenn ich nur per VPN eingewählt bin.

Lösung 1 – Die hosts Datei

Eine Möglichkeit ist so simpel, wie trivial und einfach 😉 Man legt sich auf jedem Client eine sogenannte hosts Datei an und ordnet die Rechnernamen dort der jeweiligen IP zu.

Jedes Betriebssystem (jedenfalls die mir bekannten) kann eine Namensauflösung mit einer hosts Datei durchführen. Diese Datei ist nichts weiter, als ein Textfile, dass in einem bestimmten Order liegen muss und folgendes Format hat:

Man schreibt die IP Adresse (egal ob IPv4 oder v6) in eine Zeile, gefolgt von einem Leerzeichen und dem Rechnernamen. Das Betriebssystem wird nun bei der Eingabe von “ping rechnername” immer erst die hosts Datei fragen, ob sie die IP Adresse des Rechners kennt und dann dorthin verbinden.

Voila – Problem gelöst. Selbst mit VPN kann man dann die internen Rechner mit ihren Namen ansprechen.

Bei den verschiedenen Linuxderivaten liegt die hosts Datei meist unter “/etc/hosts” (bei MacOS, iOS und Android im übrigen auch), Windows legt sie unter “%systemRoot%\system32\drivers\etc\hosts” ab. (die Ordner unter Windows sind aber versteckt, so dass man im Explorer eventuell die Option “Versteckte Dateien anzeigen” aktivieren muss.)

Vorteile

Eine hosts Datei ist schnell angelegt/geändert und es bedarf keinerlei Änderung auf dem Server.

Nachteile

Einen aus meiner Sicht gravierenden Nachteil dieser Lösung möchte ich nicht verschweigen. Wenn sich die IP Adresse eines Rechners im heimischen Netzwerk ändert, neue Rechner hinzukommen, etc. muss die hosts Dateie auf allen Clients angepasst werden. Das Ganze ist also ein eher statisches Konstrukt.

Lösung 2 – OpenVPN den eigenen Nameserver bekanntmachen

Wenn man zu Hause einen eigenen Nameserver hat (das ist zum Beispiel bei Windows Domänen der Fall), dann kann man diesen durch eine einfache Änderung in der OpenVPN Server Konfiguration den Clients bekanntmachen.

Dazu muss man die bereits vorhandene Datei “server.conf” editieren:

Dort muss man die DNS und DOMAIN Optionen angeben :

Die ersten beiden Zeilen bewirken, dass der Client weiß unter welcher IP Adresse der lokale DNS Server zu erreichen ist (In diesem Beispiel gibt es 2 DNS Server im Netzwerk).

Die letzte Zeile bewirkt, dass die Anfragen des Clients über die entsprechenden Suchdomain ausgeführt werden.

Anschließend muss man die Datei speichern und den OpenVPN Server neu starten:

Vorteile

Die Vorteile dieser Variante liegen ganz klar darin, dass keine manuellen Änderungen an einer Datei mehr vorgenommen werden müssen, sondern die Namensauflösung an einer zentralen Stelle passiert, die auch für das interne Netzwerk zuständig ist.

Nachteile

Nachteile sehe ich hier eigentlich keine. Man kann, wenn man möchte ja immer noch für eine Quick&Dirty Lösung eine hosts Datei anlegen und somit alles übersteuern.

 

It's only fair to share...Share on Facebook
Facebook
Share on LinkedIn
Linkedin
Share on Xing
Xing