Sonntag, 29. Dezember 2013

DNS im lokalen Netzwerk

Namensauflösung im lokalen Netzwerk mittels DNS


Wer seinen eigenen Server betreibt, möchte diesen gelegentlich von extern wie auch vom internen Netz aus erreichen. Üblicherweise geschieht dies über den FQDN, sei es einer der eigenen Domain oder die eines DDNS Anbieters.
Der Zugriff von einem externen Netzwerk auf einen Server in einem genateten Privaten Netzwerk hängt einerseits von einer korrekten Portweiterleitung und von einer funktionierenden Namensauflösung im Internet ab. Dieser Blog Beitrag geht auf diesen Fall aber nicht näher ein. Viel mehr soll er eine Hilfestellung und einen Lösungsansatz für all jene geben, bei denen der Zugriff von extern funktioniert, vom LAN aus, in dem sich der Server befindet, aber nicht.
Goggle liefert dazu auch schnell mal die Ursache des Problems:
Kann man vom LAN aus über den FQDN den Server im eigenen Netzwerk nicht erreichen, so blockiert mit ziemlicher Sicherheit der Router diesen Zugriff. Goggle gibt im gleichen Atemzug dazu auch noch die Lösung, der Router muss NAT-Loopback auch bekannt als Port-Reflection können.
Viele Hersteller von Routern deaktivieren dieses Feature aus Sicherheitsgründen per Default oder implementieren es schon gar nicht mehr. Ausgenommen sind natürlich die Hersteller welche auf Gedöns ihrer Kunden wieder einen Rückzieher gemacht haben, man will ja schliesslich verkaufen. Namen nenne ich keine ;) Wer sich näher mit der Sicherheitsproblematik auseinandersetzen möchte, empfehle ich dieses Video.


OK kein NAT-Loopback, was nun?

Der Router kann nun kein NAT-Loopback, trotzdem möchte man auf den Komfort der Namensauflösung auch im LAN nicht verzichten. Gut man könnte sich jetzt einen Router eines bekannten Herstellers kaufen welcher dies noch unterstützt oder man macht sich Gedanken wie man die Namensauflösung selber in die Hand nehmen könnte. Damit mich in Zukunft zumindest virtuell keiner mehr verstört anschauen muss wenn ich das Wörtchen DNS in den Mund nehme, habe ich diesen Post geschrieben :)

DNS yourself

Dieser Artikel soll in keiner Weise Anspruch auf eine professionelle DNS Konfiguration haben, sondern Anwendern welche mit der oben genannten Problematik anstehen eine Hilfe leisten.

dnsmasq

Eventuell hat man Glück un betreibt einen Router welcher bereits den dnsmasq Service benutzt und sich dieser auch konfigurieren lässt. Beispiele dazu sind die Appliances von ipfire, dd-wrt oder open-wrt.
Auch der Swisscom Centro Grande Pirelli war noch mit der openRG Version mit freigeschaltetem Admin GUI in der Lage dnsmasq zu konfigurieren.
Ich gehe davon aus das der Router auch gleichzeitig als DNS Resolver im LAN agiert. Dank dnsmasq kann man in der sogenannten Host Datei gezielt "Manipulationen" vornehmen. So wie in unserem Fall nötig die lokale IP eines Servers bei einer Namensauflösung. Wir würden also zu jeder FQDN welche wir nutzen möchten eine entsprechende IP hinterlegen. 
Macht nun ein Client eine Namensabfrage zB. auf  www.DEINSERVER.org, würde der Router die IP Adresse nun nicht mehr bei seinem eingetragenem DNS Server (idR. die des Providers) nachfragen, sondern die IP direkt selber liefern also zB. 192.168.1.10

Hierzu ein Beispiel einer Konfiguration in ipfire:

Hosts Konfiguration in ipfire


Zugegeben, viele welche diese Seite wohl besuchen werden, haben gerade nicht so einen Router im Einsatz, darum Möglichkeit 2 (von vielen anderen)

DNS Server auf der Synology Diskstation


Vielen Usern wird sich das Problem stellen, wenn sie auf ihr NAS zugreifen möchten. Darum und weil ich gerade eine zur Hand habe, zeige ich hier noch die Möglichkeit mittels Synology Diskstation

Mittels Paketmanager lässt sich ganz komfortabel ein DNS Server installieren.
Die Installation selber ist also eigentlich kein Problem. Kümmern wir uns also um die richtige Konfiguration für das lokale Netzwerk.

 

Für die eigene Domain erstellt man im DNS Server eine eigene Master Zone.
In dieser Master Zone belässt man den Domänentyp auf Forward Zone.
Als Domainname gibt man die eigene Domain an zB. myroot.noip.com
Als Master DNS-Server trägt man die IP der Diskstation ein. Den Rest kann man wie im Screenshot gezeigt belassen. 



Nun muss man noch die Eintrage der Zone den eigenen Bedürfnissen entsprechend anpassen.
Für einen IPv4 Eintrag kann man in diesem Fall einen A-Record erstellen. Möchte man wie im Screenshot gezeigt mail.tuxone.ch auf die IP 192.168.3.11 auflösen, muss man dies so konfigurieren. Möchte man die ganze Domain also einfach tuxone.ch auf nur eine IP aufgelöst haben, müsste man das Feld bei Name einfach leer lassen. Die TTL kann man so hoch belassen, ich nehme nicht an das hier gross Fluktuationen im Gange sind.


So, nun hat man einen bereits funktionierenden DNS im lokalen Netzwerk. Damit dieser den Clients aber auch bekannt ist, muss man noch die DHCP Einträge, im einfachen Fall auf dem Router, ändern.
Bei den meisten Consumer Routern gibt der DHCP Server auf dem Router als Namensserver gleich sich selber an. Damit man in Zukunft auch den DNS Server der Diskstation benutzen kann, müssen wir dies auch mitteilen. In der Regel kann man bei den DHCP Einstellungen des Routers manuell mindestens 2 IP Adressen angeben. Beim Nameserver 1 ist die IP der Diskstation einzutragen, beim Nameserver 2 die IP des Routers oder die IP eines öffentlichen Providers.
Für Swisscom Kunden ist im folgenden Screenshot noch eine Beispielkonfiguration zu sehen.
Bei den Centro Routern ist die nötige Einstellung unter Einstellungen > Grundeinstellungen Netzwerk zu finden. Hier kann man die DNS-Server IP Adressen manuell zuteilen:


Nach dem Speichern dieser Einstellung und einem DHCP/release/renew der Clients sollte die Namensauflösung nun auch im LAN wie gewünscht funktionieren.