Kategorien
DNS

DynDNS für eine eigene Domain einrichten

Für vie­le Zwe­cke ist es prak­tisch, wenn man sein Heim­netz aus dem Inter­net über einen fes­ten Host­na­men errei­chen kann. Will man dafür kei­ne Sub­do­main des Diens­te­be­trei­bers, son­dern eine eige­ne Domain benut­zen, erfor­dert das etwas mehr Auf­wand.

Der Pionier DynDNS

DynDNS​.com war vor Jah­ren der Pio­nier der kos­ten­lo­sen Diens­te für die dyna­mi­sche Zuord­nung einer IP-Adres­se zu einem Host­na­men. Man benö­tigt einen sol­chen Dienst, wenn man sein Heim­netz aus dem Inter­net mit einem fes­ten Host­na­men errei­chen will, auch wenn der Inter­net-Pro­vi­der regel­mä­ßig die Ver­bin­dung trennt und eine neue IP-Adres­se für den Anschluss ver­gibt. Im Ide­al­fall über­nimmt der Inter­net-Rou­ter auto­ma­tisch die Aktua­li­sie­rung der Adres­se beim DynDNS-Pro­vi­der.

DynDNS-Alternativen

Inzwi­schen ist DynDNS von Ora­cle auf­ge­kauft wor­den und bie­tet kei­ne kos­ten­lo­sen Diens­te mehr an. Dafür sind vie­le ande­re in die Bre­sche gesprun­gen, die gleich­wer­ti­ge oder sogar bes­se­re Ange­bo­te haben. Schwie­rig wird es aller­dings, wenn man ent­we­der kei­ne Sub­do­main des DynDNS-Pro­vi­ders, son­dern eine eige­ne Domain ver­wen­den will, oder wenn der Inter­net-Rou­ter den aus­ge­wähl­ten DynDNS-Dienst nicht anbie­tet.

Bei mir trifft lei­der bei­des zu. Für mein Heim­netz will ich eine von mei­ner öffent­li­chen Domain abge­lei­te­te Sub­do­main benut­zen, und der DynDNS-Dienst, der so etwas anbie­tet, wird von mei­nem Tele­kom-Speed­port-Rou­ter nicht ange­bo­ten.

Auswahl des DynDNS-Anbieters

Wie oben schon erwähnt, soll der DynDNS-Dienst zumin­dest für den Pri­vat­be­darf kos­ten­los sein. Das ist bei vie­len Anbie­tern mög­lich, die meist einen kos­ten­lo­sen Basis-Ser­vice neben kos­ten­pflich­ti­gen Pre­mi­um-Accounts offe­rie­ren.

Auch ein Inter­face, mit dem man die Adres­se von einem Rech­ner des Heim­net­zes aus aktua­li­sie­ren kann, bie­ten die meis­ten Pro­vi­der an.

Der Dienst­leis­ter soll aber zudem mit belie­bi­gen Domains arbei­ten kön­nen. Bei die­ser Bedin­gung fal­len lei­der die meis­ten Anbie­ter aus der Wahl, weil sie nur Sub­do­mains ihrer eige­nen Domain anbie­ten, etwa self​host​.eu oder no​-ip​.com.

Registrierung bei FreeDNS

Übrig blieb für mich der Anbie­ter FreeDNS. Nach Regis­trie­rung kann man dort in sei­nem kos­ten­lo­sen Kon­to eine belie­bi­ge Domain ein­tra­gen und über die Name­ser­ver des Anbie­ters eine über das dyndns1-Pro­to­koll dyna­misch änder­ba­re IP-Adres­se zuord­nen las­sen.

Dafür legt man sich zunächst ein Kon­to bei FreeDNS an. Der Kos­ten­lo­se Star­ter-Account reicht dafür aus. Wenn man FreeDNS unter­stüt­zen will, kann man aber auch ein kos­ten­pflich­ti­ges Kon­to mit Pre­mi­um-Sup­port aus­wäh­len. Nach Absen­den des For­mu­lars und Akti­vie­rung per eMail kann man sich unter Dyna­mic DNS eine Domain ein­rich­ten, in unse­rem Bei­spiel home​.kunz​.de.

Danach wer­den auto­ma­tisch zur Basis­do­main vier Sub­do­mains (ftp, irc, mail, www) ange­legt, die alle auf die Adres­se der Basis­do­main zei­gen. Über den add Link im Tabel­len­kopf wird jetzt noch ein A Record für die Sub­do­main ein­ge­tra­gen, über die spä­ter unser Ser­vice vom Inter­net erreich­bar sein soll, etwa cloud​.home​.kunz​.de. Sie bekommt die glei­che Ziel­adres­se wie die ande­ren Sub­do­mains.

DNS-Delegierung einrichten

Unse­re Heim­netz-Adres­se home​.kunz​.de ist jetzt zwar auf den FreeDNS-Ser­vern ein­ge­rich­tet, aber da FreeDNS nicht der Ver­wal­ter der Basis-Domain kunz​.de ist, wird sie noch nicht in’s Inter­net pro­pa­giert.

Beim Ver­wal­ter der Basis-Domain - das ist bei mir Hetz­ner - muss home​.kunz​.de als Sub­do­main von kunz​.de ein­ge­rich­tet und die Namens­auf­lö­sung an die Name­ser­ver von FreeDNS dele­giert wer­den.

Die Sub­do­main kann ganz nor­mal über die Web-Ober­flä­che der Kon­so­leH per Einstellungen->Konfiguration->Subdomains ein­ge­rich­tet wer­den. Auf wel­ches Ver­zeich­nis sie zeigt, ist nicht von Belang, da die Adres­se spä­ter nicht auf Hetz­ner zei­gen wird. Sie wird nach der Dele­gie­rung sogar wie­der aus de Sub­do­main-Lis­te ver­schwin­den.

Für die Dele­gie­rung muss aller­dings die Zonen­da­tei direkt edi­tiert wer­den - die Web­ober­flä­che lässt die Erzeu­gung von NS-Records nicht zu. Die DNS-Kon­fi­gu­ra­ti­on erreicht man über Einstellungen->Konfiguration->DNS-Verwaltung. Klickt man im Kopf der Domain auf Erwei­ter­te Ansicht, prä­sen­tiert die Sei­te den Inhalt der Zonen­da­tei.

Unter­halb der exis­tie­ren­den NS-Records fügen wir nun die Dele­gie­rung an FreeDNS mit fol­gen­den Zei­len 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 dele­giert die Namens­auf­lö­sung für die Sub­do­main home an einen der vier Name­ser­ver von FreeDNS. Der Punkt am Ende der Zei­len ist übri­gens wich­tig, denn er ver­hin­dert die Suche nach den DNS-Ser­vern in unse­rer eige­nen Domain. Die Zei­le mit dem A-Record für home

home IN A <ip-address>

wird gelöscht. Mit Zone­fi­le spei­chern sichern wir die Ände­run­gen. Bis sie bei ande­ren DNS-Ser­vern wirk­sam wer­den, kön­nen eini­ge Stun­den ver­ge­hen, denn meist sind die A-Records mit einer TTL von 24 Stun­den ver­se­hen. Am bes­ten legen wir jetzt also eine Pau­se ein und arbei­ten am nächs­ten Tag wei­ter.

DynDNS-Client installieren

Wir benö­ti­gen jetzt noch eine Pro­ze­dur, die bei FreeDNS die IP-Adres­se für unse­re Domain aktua­li­siert, sobald sie sich geän­dert hat. Wer so glück­lich ist, einen Rou­ter zu besit­zen, der die freie Aus­wahl des DynDNS-Anbie­ters erlaubt, ist jetzt schon fast fer­tig: er muss am Rou­ter ledig­lich den DNS-Anbie­ter aus­ge­wäh­len oder Adres­se und Pro­to­koll sowie den Namen der Domain ein­ge­tra­gen. Dann mel­det sich der Rou­ter von selbst beim DynDNS-Pro­vi­der und ändert wenn nötig die Adres­se.

Die Speed­port-Rou­ter der Tele­kom erlau­ben nur eine sehr beschränk­te Lis­te von DynDNS-Anbie­tern, zu der FreeDNS lei­der nicht gehört. Wir müs­sen also einen Host im Heim­netz zum DynDNS-Cli­ent machen. Bei mir soll ddcli­ent auf dem stän­dig lau­fen­den Raspber­ry­PI mit open­me­diavault lau­fen, das auf der Linux-Dis­tri­bu­ti­on Debi­an Stretch basiert.

Für Linux bie­tet sich als DynDNS-Cli­ent der bewähr­te ddcli­ent an, der unter sei­nen unter­stütz­ten DynDNS-Pro­vi­dern auch FreeDNS hat. Er ist für die meis­ten Linux-Dis­tri­bu­tio­nen als Paket ver­füg­bar. Das Debi­an-Paket wird mit dem fol­gen­den Befehl instal­liert:

apt install ddclient libio-socket-ssl-perl

Konfiguration von ddclient

Wäh­rend der Instal­la­ti­on fragt die Pro­ze­dur schon eini­ge Para­me­ter ab. Man kann sie nach bes­tem Wis­sen beant­wor­ten, aber die Kon­fi­gu­ra­ti­ons­da­tei muss in jedem Fal­le noch­mals bear­bei­tet wer­den. Dazu öff­nen wir /etc/ddclient.conf und ändern sie auf fol­gen­den 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 Platz­hal­ter <mail-address>, <freedns-account> und <freedns-pass­word> müs­sen natür­lich ent­spre­chend ange­passt wer­den. Die Web­sei­te che​ckip​.dyndns​.com lie­fert uns unse­re eige­ne Inter­net-Adres­se, also die exter­ne Adres­se unse­res Inter­net-Rou­ters. ddcli­ent trägt die­se dann bei FreeDNS ein.

Jetzt kön­nen wir mit ddcli­ent einen Test­lauf auf der Kom­man­do­zei­le star­ten.

# ddclient
SUCCESS: update not necessary home.kunz.de: good: IP address already set to 1.2.3.4
#

Ein Update der Adres­se ist in die­sem Bei­spiel nicht nötig, weil sie schon kor­rekt ist. Man kann ihn aber pro­vo­zie­ren, indem man am Rou­ter die Inter­net-Ver­bin­dung kurz kappt und neu auf­bau­en lässt. Der Inter­net-Pro­vi­der weist dabei eine ande­re exter­ne Adres­se zu. Das erkennt ddcli­ent und setzt die Adres­se bei FreeDNS ent­spre­chend um.

# ddclient
SUCCESS: updating home.kunz.de: good: IP address set to 2.3.4.5
#

Der ddcli­ent läuft als Ser­vice und prüft nun regel­mä­ßig unse­re Adres­se auf Ände­rung.

Jetzt müs­sen nur noch die ent­spre­chen­den Port­wei­ter­lei­tun­gen am Inter­net-Rou­ter ein­ge­tra­gen wer­den. Danach kann man die gewünsch­ten Hosts vom Inter­net über die Domain home​.kunz​.de errei­chen.

Interne DNS-Auflösung

Will man den neu­en Ser­vice vom inter­nen Netz aus errei­chen, wür­de man über das DNS eben­so die exter­ne Adres­se des Rou­ters erhal­ten wie jeder Cli­ent aus dem Inter­net. Man wür­de also über den Rou­ter ins Inter­net gerou­tet wer­den, um dann wie­der am exter­nen Port des­sel­ben Rou­ters zu lan­den und über die Port­wei­ter­lei­tung zurück in das inter­ne Netz zu kom­men.

Abge­se­hen davon, dass das natür­lich nicht viel Sinn macht, beherr­schen vie­le Rou­ter die­sen loop­back nicht. Beim Tele­kom Speed­port läuft man so ein­fach in einen Time­out.

Sinn­vol­ler ist es, für die inter­nen Cli­ents vom DNS gleich die inter­ne Adres­se des Ser­vice gelie­fert zu bekom­men. Das setzt aber vor­aus, dass man dem DNS-Resol­ver des inter­nen Net­zes sta­ti­sche Adres­sen „unter­schie­ben” kann. Wäh­rend das bei bes­se­ren Rou­tern mög­lich ist, muss der Speed­port auch hier pas­sen.

Eigener DNS-Server…

Bleibt also nur die radi­ka­le Lösung: Statt des Speed­port wird ein ande­rer Ser­ver zum DNS-Resol­ver gemacht. Dafür bie­tet sich das NAS als stän­dig lau­fen­de Maschi­ne natür­lich an. Mit der omv-Erwei­te­rung open­me­diavault-dns­masq funk­tio­niert  das auch recht ein­fach: Erwei­te­rung instal­lie­ren und mit dem Akti­vie­ren Knopf scharf schal­ten. Bei Domain Name tra­gen wir unse­re home Domain ein, also home​.kunz​.de.

Auf der Sei­te Sta­tic Ent­ries kann man jetzt die inter­nen Adres­sen der Ser­ver unse­rer home Domain ein­tra­gen. Spei­chern wir jetzt für cloud​.home​.kunz​.de die inter­ne Adres­se ab, etwa 192.168.1.123, lan­den die inter­nen Cli­ents direkt am ent­spre­chen­den Ser­ver, wäh­rend die Cli­ents aus dem Inter­net vom DNS die exter­ne Adres­se unse­res Rou­ters gelie­fert bekom­men.

Damit das funk­tio­niert, müs­sen die inter­nen Cli­ents natür­lich den neu­en DNS-Ser­ver ver­wen­den. Bei Cli­ents mit sta­ti­scher IP-Adres­se kann man den DNS-Ser­ver direkt in die Inter­face-Kon­fi­gu­ra­ti­on ein­tra­gen. Bei Cli­ents, die ihre Adres­se über DHCP erhal­ten funk­tio­niert das aber nicht.

… und eigener DHCP-Server

Der DNS-Ser­ver wird dem Cli­ent bei der Adress­ver­ga­be vom DHCP-Ser­ver über­ge­ben. Hat man am Rou­ter (wie beim Speed­port) kei­ne Chan­ce, die­sen Ser­ver zu ändern, muss auch ein eige­ner DHCP-Ser­ver auf­ge­setzt wer­den.

Glück­li­cher­wei­se ist im open­me­diavault-dns­masq Paket auch ein DHCP-Ser­ver ent­hal­ten. Er wird über die Start­sei­te des Local DNS/DHCP Diens­tes akti­viert. Bei Lea­se Net­work selek­tie­ren wir unse­re Netz­werk-Adres­se und -Mas­ke, also etwa 192.168.1.0/255.255.255.0 aus der Lis­te. Das Gate­way ist unser Speed­port-Rou­ter, also z.B. 192.168.1.1.

Unter First IP Address und Last IP Address wer­den die ers­te und letz­te Adres­se unse­res dyna­misch ver­ge­be­nen Adress­be­reichs ein­ge­tra­gen. Im Zwei­fel hilft ein Blick in die aktu­el­le Ein­stel­lung des Speed­ports - der Bereich soll­te 1:1 über­nom­men wer­den. Unter Lea­se Time kann zunächst der Stan­dard­wert ste­hen blei­ben.

Als letz­tes wird unter DNS Server(s) noch die Adres­se unse­res Speed­ports ein­ge­tra­gen. Die­ser DNS-Ser­ver wird zum For­ward benutzt, wenn unser neu­er DNS-Ser­ver die Adres­se nicht selbst auf­lö­sen kann. Jetzt kann die Kon­fi­gu­ra­ti­on abge­spei­chert und akti­viert wer­den.

Der DHCP-Ser­ver des Rou­ters muss jetzt zwin­gend abge­schal­tet wer­den, ansons­ten wür­den die Cli­ents unvor­aus­sag­bar ihre Adres­se mal vom einen, mal vom ande­ren DHCP-Ser­ver bekom­men. Bei über­lap­pen­den Adress­be­rei­chen könn­te das sogar zur Mehr­fach­ver­ga­be von Adres­sen füh­ren und unser Netz poten­ti­ell lahm­le­gen.

Jeder Cli­ent, der sich ab jetzt neu mit dem Netz ver­bin­det, erhält sei­ne Adres­se und damit auch den DNS-Ser­ver vom neu­en DHCP-Ser­ver. Damit erreicht er die Ser­vices ohne den Umweg über exter­ne Adres­sen.

Windows-Clients und IPv6

Bei Win­dows-Cli­ents mit sta­ti­schen Adres­sen kann man zwar auch den DNS-Ser­ver in der Inter­face-Kon­fi­gu­ra­ti­on ein­tra­gen, aber die Ein­tra­gung des IPv6-DNS-Ser­vers wird der des IPv4-Ser­vers vor­ge­zo­gen, so dass DNS-Abfra­gen wei­ter­hin beim Rou­ter lan­den wür­den. Der ein­zi­ge mir bekann­te funk­tio­nie­ren­de Work­around ist, das IPv6-Pro­to­koll für das Inter­face kom­plett abzu­schal­ten.

Fazit

DynDNS kann ganz ein­fach funk­tio­nie­ren, wenn man mit einer vor­ge­ge­be­nen Domain zufrie­den ist und der Rou­ter den DynDNS-Pro­vi­der unter­stützt. Will man eine eige­ne Domain und/oder einen spe­zi­el­len DynDNS-Pro­vi­der ver­wen­den, ist die Sache etwas kom­li­zier­ter. Mit die­ser Anlei­tung schafft man es trotz­dem sicher.

1 Anwort auf „DynDNS für eine eigene Domain einrichten“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.