Inhalt
- 1 Der Pionier DynDNS
- 2 DynDNS-Alternativen
- 3 Auswahl des DynDNS-Anbieters
- 4 Registrierung bei FreeDNS
- 5 DNS-Delegierung einrichten
- 6 DynDNS-Client installieren
- 7 Konfiguration von ddclient
- 8 Interne DNS-Auflösung
- 9 Eigener DNS-Server…
- 10 … und eigener DHCP-Server
- 11 Windows-Clients und IPv6
- 12 Fazit
Für viele Zwecke ist es praktisch, wenn man sein Heimnetz aus dem Internet über einen festen Hostnamen erreichen kann. Will man dafür keine Subdomain des Dienstebetreibers, sondern eine eigene Domain benutzen, erfordert das etwas mehr Aufwand.
Der Pionier DynDNS
DynDNS.com war vor Jahren der Pionier der kostenlosen Dienste für die dynamische Zuordnung einer IP-Adresse zu einem Hostnamen. Man benötigt einen solchen Dienst, wenn man sein Heimnetz aus dem Internet mit einem festen Hostnamen erreichen will, auch wenn der Internet-Provider regelmäßig die Verbindung trennt und eine neue IP-Adresse für den Anschluss vergibt. Im Idealfall übernimmt der Internet-Router automatisch die Aktualisierung der Adresse beim DynDNS-Provider.
DynDNS-Alternativen
Inzwischen ist DynDNS von Oracle aufgekauft worden und bietet keine kostenlosen Dienste mehr an. Dafür sind viele andere in die Bresche gesprungen, die gleichwertige oder sogar bessere Angebote haben. Schwierig wird es allerdings, wenn man entweder keine Subdomain des DynDNS-Providers, sondern eine eigene Domain verwenden will, oder wenn der Internet-Router den ausgewählten DynDNS-Dienst nicht anbietet.
Bei mir trifft leider beides zu. Für mein Heimnetz will ich eine von meiner öffentlichen Domain abgeleitete Subdomain benutzen, und der DynDNS-Dienst, der so etwas anbietet, wird von meinem Telekom-Speedport-Router nicht angeboten.
Auswahl des DynDNS-Anbieters
Wie oben schon erwähnt, soll der DynDNS-Dienst zumindest für den Privatbedarf kostenlos sein. Das ist bei vielen Anbietern möglich, die meist einen kostenlosen Basis-Service neben kostenpflichtigen Premium-Accounts offerieren.
Auch ein Interface, mit dem man die Adresse von einem Rechner des Heimnetzes aus aktualisieren kann, bieten die meisten Provider an.
Der Dienstleister soll aber zudem mit beliebigen Domains arbeiten können. Bei dieser Bedingung fallen leider die meisten Anbieter aus der Wahl, weil sie nur Subdomains ihrer eigenen Domain anbieten, etwa selfhost.eu oder no-ip.com.
Registrierung bei FreeDNS
Übrig blieb für mich der Anbieter FreeDNS. Nach Registrierung kann man dort in seinem kostenlosen Konto eine beliebige Domain eintragen und über die Nameserver des Anbieters eine über das dyndns1-Protokoll dynamisch änderbare IP-Adresse zuordnen lassen.
Dafür legt man sich zunächst ein Konto bei FreeDNS an. Der Kostenlose Starter-Account reicht dafür aus. Wenn man FreeDNS unterstützen will, kann man aber auch ein kostenpflichtiges Konto mit Premium-Support auswählen. Nach Absenden des Formulars und Aktivierung per eMail kann man sich unter Dynamic DNS eine Domain einrichten, in unserem Beispiel home.kunz.de.
Danach werden automatisch zur Basisdomain vier Subdomains (ftp, irc, mail, www) angelegt, die alle auf die Adresse der Basisdomain zeigen. Über den add Link im Tabellenkopf wird jetzt noch ein A Record für die Subdomain eingetragen, über die später unser Service vom Internet erreichbar sein soll, etwa cloud.home.kunz.de. Sie bekommt die gleiche Zieladresse wie die anderen Subdomains.
DNS-Delegierung einrichten
Unsere Heimnetz-Adresse home.kunz.de ist jetzt zwar auf den FreeDNS-Servern eingerichtet, aber da FreeDNS nicht der Verwalter der Basis-Domain kunz.de ist, wird sie noch nicht in’s Internet propagiert.
Beim Verwalter der Basis-Domain - das ist bei mir Hetzner - muss home.kunz.de als Subdomain von kunz.de eingerichtet und die Namensauflösung an die Nameserver von FreeDNS delegiert werden.
Die Subdomain kann ganz normal über die Web-Oberfläche der KonsoleH per Einstellungen->Konfiguration->Subdomains eingerichtet werden. Auf welches Verzeichnis sie zeigt, ist nicht von Belang, da die Adresse später nicht auf Hetzner zeigen wird. Sie wird nach der Delegierung sogar wieder aus de Subdomain-Liste verschwinden.
Für die Delegierung muss allerdings die Zonendatei direkt editiert werden - die Weboberfläche lässt die Erzeugung von NS-Records nicht zu. Die DNS-Konfiguration erreicht man über Einstellungen->Konfiguration->DNS-Verwaltung. Klickt man im Kopf der Domain auf Erweiterte Ansicht, präsentiert die Seite den Inhalt der Zonendatei.
Unterhalb der existierenden NS-Records fügen wir nun die Delegierung an FreeDNS mit folgenden Zeilen ein:
home IN NS ns4.afraid.org. home IN NS ns3.afraid.org. home IN NS ns2.afraid.org. home IN NS ns1.afraid.org.
Das delegiert die Namensauflösung für die Subdomain home an einen der vier Nameserver von FreeDNS. Der Punkt am Ende der Zeilen ist übrigens wichtig, denn er verhindert die Suche nach den DNS-Servern in unserer eigenen Domain. Die Zeile mit dem A-Record für home
home IN A <ip-address>
wird gelöscht. Mit Zonefile speichern sichern wir die Änderungen. Bis sie bei anderen DNS-Servern wirksam werden, können einige Stunden vergehen, denn meist sind die A-Records mit einer TTL von 24 Stunden versehen. Am besten legen wir jetzt also eine Pause ein und arbeiten am nächsten Tag weiter.
DynDNS-Client installieren
Wir benötigen jetzt noch eine Prozedur, die bei FreeDNS die IP-Adresse für unsere Domain aktualisiert, sobald sie sich geändert hat. Wer so glücklich ist, einen Router zu besitzen, der die freie Auswahl des DynDNS-Anbieters erlaubt, ist jetzt schon fast fertig: er muss am Router lediglich den DNS-Anbieter ausgewählen oder Adresse und Protokoll sowie den Namen der Domain eingetragen. Dann meldet sich der Router von selbst beim DynDNS-Provider und ändert wenn nötig die Adresse.
Die Speedport-Router der Telekom erlauben nur eine sehr beschränkte Liste von DynDNS-Anbietern, zu der FreeDNS leider nicht gehört. Wir müssen also einen Host im Heimnetz zum DynDNS-Client machen. Bei mir soll ddclient auf dem ständig laufenden RaspberryPI mit openmediavault laufen, das auf der Linux-Distribution Debian Stretch basiert.
Für Linux bietet sich als DynDNS-Client der bewährte ddclient an, der unter seinen unterstützten DynDNS-Providern auch FreeDNS hat. Er ist für die meisten Linux-Distributionen als Paket verfügbar. Das Debian-Paket wird mit dem folgenden Befehl installiert:
apt install ddclient libio-socket-ssl-perl
Konfiguration von ddclient
Während der Installation fragt die Prozedur schon einige Parameter ab. Man kann sie nach bestem Wissen beantworten, aber die Konfigurationsdatei muss in jedem Falle nochmals bearbeitet werden. Dazu öffnen wir /etc/ddclient.conf und ändern sie auf folgenden Inhalt:
# Configuration file for ddclient # # /etc/ddclient.conf ssl=yes syslog=yes mail=<mail-address> mail-failure=<mail-address> protocol=freedns use=web, web=checkip.dyndns.com/, web-skip='IP Address' server=freedns.afraid.org login=<freedns-account> password='<freedns-password>' home.kunz.de
Die Platzhalter <mail-address>, <freedns-account> und <freedns-password> müssen natürlich entsprechend angepasst werden. Die Webseite checkip.dyndns.com liefert uns unsere eigene Internet-Adresse, also die externe Adresse unseres Internet-Routers. ddclient trägt diese dann bei FreeDNS ein.
Jetzt können wir mit ddclient einen Testlauf auf der Kommandozeile starten.
# ddclient SUCCESS: update not necessary home.kunz.de: good: IP address already set to 1.2.3.4 #
Ein Update der Adresse ist in diesem Beispiel nicht nötig, weil sie schon korrekt ist. Man kann ihn aber provozieren, indem man am Router die Internet-Verbindung kurz kappt und neu aufbauen lässt. Der Internet-Provider weist dabei eine andere externe Adresse zu. Das erkennt ddclient und setzt die Adresse bei FreeDNS entsprechend um.
# ddclient SUCCESS: updating home.kunz.de: good: IP address set to 2.3.4.5 #
Der ddclient läuft als Service und prüft nun regelmäßig unsere Adresse auf Änderung.
Jetzt müssen nur noch die entsprechenden Portweiterleitungen am Internet-Router eingetragen werden. Danach kann man die gewünschten Hosts vom Internet über die Domain home.kunz.de erreichen.
Interne DNS-Auflösung
Will man den neuen Service vom internen Netz aus erreichen, würde man über das DNS ebenso die externe Adresse des Routers erhalten wie jeder Client aus dem Internet. Man würde also über den Router ins Internet geroutet werden, um dann wieder am externen Port desselben Routers zu landen und über die Portweiterleitung zurück in das interne Netz zu kommen.
Abgesehen davon, dass das natürlich nicht viel Sinn macht, beherrschen viele Router diesen loopback nicht. Beim Telekom Speedport läuft man so einfach in einen Timeout.
Sinnvoller ist es, für die internen Clients vom DNS gleich die interne Adresse des Service geliefert zu bekommen. Das setzt aber voraus, dass man dem DNS-Resolver des internen Netzes statische Adressen „unterschieben” kann. Während das bei besseren Routern möglich ist, muss der Speedport auch hier passen.
Eigener DNS-Server…
Bleibt also nur die radikale Lösung: Statt des Speedport wird ein anderer Server zum DNS-Resolver gemacht. Dafür bietet sich das NAS als ständig laufende Maschine natürlich an. Mit der omv-Erweiterung openmediavault-dnsmasq funktioniert das auch recht einfach: Erweiterung installieren und mit dem Aktivieren Knopf scharf schalten. Bei Domain Name tragen wir unsere home Domain ein, also home.kunz.de.
Auf der Seite Static Entries kann man jetzt die internen Adressen der Server unserer home Domain eintragen. Speichern wir jetzt für cloud.home.kunz.de die interne Adresse ab, etwa 192.168.1.123, landen die internen Clients direkt am entsprechenden Server, während die Clients aus dem Internet vom DNS die externe Adresse unseres Routers geliefert bekommen.
Damit das funktioniert, müssen die internen Clients natürlich den neuen DNS-Server verwenden. Bei Clients mit statischer IP-Adresse kann man den DNS-Server direkt in die Interface-Konfiguration eintragen. Bei Clients, die ihre Adresse über DHCP erhalten funktioniert das aber nicht.
… und eigener DHCP-Server
Der DNS-Server wird dem Client bei der Adressvergabe vom DHCP-Server übergeben. Hat man am Router (wie beim Speedport) keine Chance, diesen Server zu ändern, muss auch ein eigener DHCP-Server aufgesetzt werden.
Glücklicherweise ist im openmediavault-dnsmasq Paket auch ein DHCP-Server enthalten. Er wird über die Startseite des Local DNS/DHCP Dienstes aktiviert. Bei Lease Network selektieren wir unsere Netzwerk-Adresse und -Maske, also etwa 192.168.1.0/255.255.255.0 aus der Liste. Das Gateway ist unser Speedport-Router, also z.B. 192.168.1.1.
Unter First IP Address und Last IP Address werden die erste und letzte Adresse unseres dynamisch vergebenen Adressbereichs eingetragen. Im Zweifel hilft ein Blick in die aktuelle Einstellung des Speedports - der Bereich sollte 1:1 übernommen werden. Unter Lease Time kann zunächst der Standardwert stehen bleiben.
Als letztes wird unter DNS Server(s) noch die Adresse unseres Speedports eingetragen. Dieser DNS-Server wird zum Forward benutzt, wenn unser neuer DNS-Server die Adresse nicht selbst auflösen kann. Jetzt kann die Konfiguration abgespeichert und aktiviert werden.
Der DHCP-Server des Routers muss jetzt zwingend abgeschaltet werden, ansonsten würden die Clients unvoraussagbar ihre Adresse mal vom einen, mal vom anderen DHCP-Server bekommen. Bei überlappenden Adressbereichen könnte das sogar zur Mehrfachvergabe von Adressen führen und unser Netz potentiell lahmlegen.
Jeder Client, der sich ab jetzt neu mit dem Netz verbindet, erhält seine Adresse und damit auch den DNS-Server vom neuen DHCP-Server. Damit erreicht er die Services ohne den Umweg über externe Adressen.
Windows-Clients und IPv6
Bei Windows-Clients mit statischen Adressen kann man zwar auch den DNS-Server in der Interface-Konfiguration eintragen, aber die Eintragung des IPv6-DNS-Servers wird der des IPv4-Servers vorgezogen, so dass DNS-Abfragen weiterhin beim Router landen würden. Der einzige mir bekannte funktionierende Workaround ist, das IPv6-Protokoll für das Interface komplett abzuschalten.
Fazit
DynDNS kann ganz einfach funktionieren, wenn man mit einer vorgegebenen Domain zufrieden ist und der Router den DynDNS-Provider unterstützt. Will man eine eigene Domain und/oder einen speziellen DynDNS-Provider verwenden, ist die Sache etwas komlizierter. Mit dieser Anleitung schafft man es trotzdem sicher.
Das beschriebene Vorgehen setzt voraus, dass man seine bereits existierende Domain, also z.B. Kunz.de, bei FreeDNS registriert. Dann kann man seine Subdomain home.kunz.de anlegen. Wenn man aber nicht mindestens 30$/Jahr investiert und die Domain als „stealth” einrichtet, kann JEDER FreeDNS user seine eigenen Subdomains anlegen: porno.kunz.de, crack.kunz.de und was einem sonst noch in politisch bewegten Zeiten einfallen könnte. Bei einer als „private” eingerichteten Domain kann ich zwar unerwünschte Subdomains irgendwie wieder loswerden, aber will ich wirklich regelmäßig überprüfen, ob da jemand in meinem Revier wildert?
Interessant, vielen Dank für den Hinweis Georg. Ich bin drüber gestolpert als ich am Tutorial nicht ersehen konnte wo er .kunz.de her bekommen hat. Die Info das er die dort angelegt hat fehlt nämlich.
LG