Howto DynDNS

Von Robert

Ein DynDNS- oder dynamischer Domain Name System-Eintrag bewirkt, dass Rechner, die eine wechselnde IP-Adresse besitzen, immer über den selben Namen angesprochen werden können. Da bei den meisten Dial-In-Providern, wie zum Beispiel T-Online oder auch AOL, die IPs aus einem großen Pool vergeben werden, erhält Ihr Rechner eigentlich jedes Mal, wenn er online geht, eine andere IP.

Die Unwissenheit anderer Benutzer über die eigene IP-Adresse mag zwar sicherheitstechnische Vorteile haben, aber der Nachteil wird klar, sobald man Serverdienste, z.B. Web-, FTP- oder Gameserver anbieten will. Damit Leute aus dem Internet trotzdem immer ihren Rechner finden, müssen sie einen DynDNS Dienst nutzen. Sie erhalten dann einen echten DNS-Namen in der Art "ihr-hostname.dyndns.org" oder ähnliches, unter dem der Rechner immer erreichbar ist.

Ständig wechselnde Einträge waren im Domain Name System eigentlich nicht vorgesehen, stattdessen sollten Netzressourcen gespart werden, indem Einträge - oft mehrere Stunden oder sogar Tage - zwischengespeichert werden. Um nun dynamische DNS-Einträge zu ermöglichen, wird die Zeit, wie lange der Eintrag bei dem jeweiligen DynDNS Anbieter zwischengespeichert werden soll, auf ein Minimum reduziert. Bei DynDNS.org z.B. auf sechzig Sekunden. Denic schreibt z.B. ein Minimum von 3600 Sekunden (=1h) vor, deshalb gibt es keinen DynDNS Anbieter mit .de Domains.


Funktion

Um einen DynDNS-Eintrag in den Nameservern des Betreibers zu aktualisieren, wird normalerweise ein sogenannter DynDNS-Client benötigt, der sich automatisch bei einem IP-Wechsel mit dem DynDNS-Server verbindet, um so die neue IP-Adresse zu übermitteln. Eine weitere Möglichkeit ist die Nutzung eines Hardware Routers. Diese Geräte haben heutzutage in den meisten Fällen schon einen integrierten DynDNS-Client der diese Aufgabe übernimmt.

Aber das ganze DynDNS-Systeme hat allerdings das Problem, dass das Offline-Gehen des Clients nicht bemerkt wird und deshalb die letzte IP-Adresse des Rechners im DNS Cache gespeichert bleibt. Ein Ansatz, dieses Problem zu lösen, ist der sogenannte Heartbeat, d.h. der Client sendet in regelmäßigen Abständen ein Signal zum Nameserver, dass er noch online ist. Bleibt dieses Signal aus, so setzt der Server die IP-Adresse zurück auf eine "Standard-Adresse" - in den meisten Fällen eine des DynDNS-Betreibers, die dann mit einer Fehlermeldung, wie Host zur Zeit nicht erreichbar, quittieren.

Jedoch kann DynDNS eine statische IP-Adresse nicht ersetzen. Offene Netzwerkverbindungen bleiben hängen und brechen nach dem Timeout zusammen. Innerhalb der bis zu 60 Sekunden, in denen der alte DynDNS-Hostname zwischengespeichert wird, können keine neuen Verbindungen zu dem Host aufgebaut werden. Durch unausgereifte Client-Software passiert es auch gelegentlich, dass der DynDNS-Hostname über eine längere Zeit nicht aktualisiert wird. Dies passiert zum Beispiel, wenn der Client nur ein mal beim Einwählen den DynDNS-Hostnamen zu aktualisieren versucht, es jedoch bei Misserfolg nicht erneut versucht.

Die Nameserver ordnen einem Hostnamen eine IP-Adresse zu. Dieses geschieht über die Resource Records mit Hilfe einzelner Informationseinheiten. Jedes Record besitzt einen Typ, welches die Art der Daten beschreibt, Die wichtigsten sind A-, MX-, NS-, und CNAME-Record.

Im A-Record wird die IP-Adresse abgelegt, zu dem der Hostname gehört. Der MX-Record enthält die Adresse des Rechners, an die die E-Mails geroutet werden. Das NS-Record enthält lediglich Informationen, über den zu nutzenden Nameserver für die Domain. CNAME-Records enthalten einen Hostnamen als Alias.


Abbildung 1: Funktionsweise von DynDNS

Für die Erklärung der Funktion des DynDNS Dienstes nehmen wir folgendes Beispiel. Ein Client aus dem Internet will auf den Webserver von Tux zugreifen, welcher eine feste Adresse bei DynDNS hat, tux.homelinux.org.

1.) Der Server Tux teilt dem Nameserver von DynDNS.org mit Hilfe eines DynDNS-Clients seine jetzige IP mit (z.B. 217.85.39.130)

2.) Der Client will auf den Server Tux via http://tux.homelinux.org zugreifen

3.) Der Client fragt den Nameserver des ISP (Internet Service Provider) nach der IP-Adresse von Tux

4.) Der ISP Nameserver fragt DynDNS.org nach der IP-Adresse von Tux und erhält als Antwort 217.85.39.130

5.) Der Client bekommt vom ISP Nameserver nun als Antwort die IP-Adresse von Tux (217.85.39.130).

6.) Der Client kann nun auf den Webserver von Tux zugreifen durch die Eingabe von http://tux.homelinux.org

Somit der DynDNS Zyklus komplett und der Webserver Tux kann von Außen immer erreicht werden.


Liste von einigen DynDNS Anbietern

http://www.dyndns.org
http://www.dyns.cx
http://2mydns.com
http://www.orgdns.org
http://www.nerdcamp.net


dyndns.org - Einrichten und Konfigurieren

Den wohl bekanntesten DynDNS Dienst bietet http://www.dyndns.org. Die Anmeldung erfolgt über ein Webinterface. Dort klickt Ihr oben rechts auf Sign Up Now.


Abbildung 2: DynDNS Homepage

Es öffnet sich die Seite Create Account. Jetzt akzeptieren Ihr die Nutzungsbedingen und füllt vollständig das Registrierungsformular aus. Bei dem Benutzernamen handelt es sich noch nicht um den Hostnamen. Wenn alles korrekt ausgefüllt wurde, wird innerhalb kurzer Zeit euer Account erstellt und eine E-Mail zur Freischaltung wird an Euch gesendet.
Nach Bestätigung dieser E-Mail ist euer Account aktiviert und ihr könnt euch einloggen.


Abbildung 3: Login Window von DynDNS

Nachdem ihr euch eingeloggt habt, befindet ihr euch im Übersichtsmenu. Hier findet Ihr Informationen zum DynDNS Dienst, zur Installation und weiterer Dienste. Hier klickt ihr auf den Punkt Dynamic DNS.


Abbildung 4: Account Überblick

Hier könnt ihr nun euren Host und die Domain festlegen. Bei DynDNS könnt ihr außerdem einen Backup MX-Eintrag (Mail Exchanger Eintrag) wählen. Der Eintrag tux.homelinux.org ist hierbei der A-Record, mail.planet-rcs.de der MX-Record. Dies hat die Folge, dass E-Mails an den MX-Record geschickt werden, wenn der A-Record sie nicht akzeptiert.


Abbildung 5: Festlegen der Domain

DynDNS bietet noch viele weitere Funktionen, zum Beispiel Subdomains und Alias-Weiterleitung (CNAME). Eine Subdomain der Form subdomain.tux.homelinux.org wird direkt an den A-Record weitergeleitet.
Nun ist euer Server unter dieser Adresse zukünftig zu erreichen. Nun muss nur noch der Client oder der Server konfiguriert werden, damit sie immer die aktuelle IP an den DynDNS Dienst senden. Hierzu sind im Normalfall Zusatzprogramme, sog. DynDNS-Clients nötig.


Hardware Router

Heutzutage bieten die meisten Hardware Router die Möglichkeit den DynDNS Dienst zu nutzen. In Abbildung 6 wird die Einrichtig dieses Diensten am Beispiel des D-Link 604+ Hardware Routers gezeigt.


Abbildung 6: Einrichtig des DynDNS Diensten bei einem Hardware Router

Zuerst muss unter dem Menüpunkt DDNS der Radio-Button (enable) aktiviert werden. Nun kann man den Provider auswählen, wir wählen hier DynDNS.org aus. Nun müssen Sie nur noch ihren bei DynDNS.org registrierten Hostname und die Login Daten angeben und dies bestätigen. Somit ist die Einrichtung des Dienstes auf ihrem Hardware Router schon abgeschlossen und funktionsbereit. Die Einrichtung auf anderen Hardware Routern läuft in den meisten Fällen auf eine ähnliche Art und Weise ab. Außerdem ist keine weitere Installation eines Programms auf den einzelnen Clients in ihrem Netzwerk notwendig.


Linux Client Programm

Im Internet existieren einige Clients, welche zur Aktualisierung dynamischer Nameserverdienste dienen. Meiner Meinung nach ist ez-ipupdate eines der besten Programme. Es kann unter http://ez-ipupdate.com als C-Quellcode heruntergeladen werden. Es muss lediglich noch auf Ihrem Rechner kompiliert und installiert werden.

$ ./configure 
$ make 
# make install

Standartmäßig installiert sich der ez-ipupdate Deamon nach /usr/local/bin. Wenn man einen anderen Installationspfad benutzen will muss man dies im configure Schritt festlegen. Für weitere Informationen zum Thema schaut auch die mitgelieferte INSTALL Datei an oder schaut euch den Artikel Howto Kompilieren von uns an.

Neben der reinen Kommandozeilen-Funktion, bietet ez-ipupdate auch noch einen Deamon-Modus. Dabei überwacht ez-ipupdate ständig ein spezielles Device z.B. ppp0 und aktualisiert automatisch den Eintrag des dynamischen Nameservers, sobald sich die Client IP ändert.

Es gibt 2 Möglichleiten ez-ipupdate aufzurufen. Entweder mit Kommandozeilen-Parametern oder mit Hilfe einer Konfigurations-Datei, welche in Listing 1 gezeigt wird. Um die Adressänderungen des ppp0 Interfaces zu überwachen, sähe der Aufruf ungefähr so aus:

$ ez-ipupdate -d - S dyndns -i ppp0 -h tux.homelinux.org
-m mail.planet-rcs.de -u derkleinetux:mypass

-d deamon
-S Service
-i interface
-h host
-m mx=mail exchanger
-u user:pass

Nur wenn das Programm als Deamon initialisiert wird, werden die Änderungen automatisch aktualisiert. Um den Deamon mit einer fertigen Config zu starten, muss folgende Eingabe getätigt werden.

$ ez-ipupdate -c /etc/ez-ipupdate.dyndns.conf


Listing 1: Beispiel config für ez-ipupdate

#!/usr/local/bin/ez-ipupdate -c
# example config file for ez-ipupdate using dyndns.org

service-type=dyndns
user=derkleinetux:mypass
host= tux.homelinux.org
mx=mail.planet-rcs.de
interface=ppp0
max-interval=2073600

# please create this file and ensure that the user that ez-ipupdate is running
#cache-file=/etc/ez-ipupdate.cache.ppp0

# for the mean time we‘ll just use a cache file in the temp directory
cache-file=/tmp/ez-ipupdate.cache

# to stop it you can use "killall -QUIT ez-ipupdate" under linux.
daemon

Um einen genauen Überblick über die zur Verfügung stehenden Config-Befehle zu erhalten lest bitte die mitgelieferte example.conf.

Nun ist euer Linux Client oder Server fertig konfiguriert, um den DynDNS Dienst zu nutzen. Ein weiteres Programm das ähnlich wie ez-ipupdate funktioniert ist gnudip. Hierbei handelt es sich um einen Perl Client. Er steht ez-ipupdate in der Funktionalität in nichts nach.


Windows Client Programm

Einer der am bekanntsten Clients für Windows ist der DynDNS Updater von Kana Solutions. Dieser Client ist aber nur notwendig, wenn der Rechner direkt am DSL Modem hängt, oder Ihr am Hardware Router keinen DynDNS Dienst nutzen könnt.


Abbildung 7: Accountübersicht

Nach der Installation des Programms müssen noch einige Einstellungen gemacht werden. Zuerst muss unter dem Reiter "Account" ein neuer Account angelegt werden.


Abbildung 8: Eingabemaske für einen DynDNS Account

Geben sie alle nötigen Daten in die Maske ein, hierzu zählen die UserID, Passwort, der Host und der Mail Exchanger. Wenn alles korrekt ausgefüllt wurde, kann dieser Account hinzugefügt werden.

Nun müssen noch verschiede Einstellungen wie Connection (ob Dial-Up oder Network), IP-Adresse und Logging festgelegt werden. Dazu sollten sie sich einfach einmal durch die verschiedenen Reiter klicken und alle noch nötigen Angaben tätigen. Danach ist Ihr DynDNS Client einsatzbereit.


Serverdienste

Für die meisten Serverdienste sind dynamische IP-Adressen kein Problem. Mailprotokolle wie WWW, POP3, IMAP und SSH funktionieren ohne Probleme und sind sofort einsatzbereit, wenn nicht der Zugriff in einer Firewall geregelt wird. Probleme weisen Netzwerkdienste auf, welche mit einem bestimmten Hostnamen angesprochen werden. Unser Server tux.local (Hostname unseres Servers) würde nie eine E-Mail an beispielsweise admin@tux.homelinux.org annehmen, da der SMTP Dienst nicht angesprochen wird. Hingegen würde der Zugriff auf den Webserver ohne weiteres klappen.


Apache

Das einzige was bei dem Apache Webserver geändert werden muss ist die Listen Direktive. Hier reicht es, Listen 80 zu ersetzen. Ein weiterer Schritt ist jetzt natürlich die Konfiguration von sogenannten Virtual Hosts. Genauere Angaben zu diesem Thema finden sich in der ReadMe von Apache.

Das Aufsetzen eines Webservers via DynDNS hat aber auch seine Nachteile. Die meisten Browser cachen nicht nur den Inhalt der Seiten, sondern auch die IP-Adresse des Servers, um unnötige Nameserver Anfragen zu vermeiden. In normalen Fällen ist dieses Feature auch sehr hilfreich, aber so unnütz ist dieses Feature bei Servern, die ihren Namen behalten aber die IP wechseln. Um dem Abhilfe zu schaffen, könnte man entweder den Browser Cache löschen, oder einen nslookup durchführen, oder man platziert eine Redirect Script auf einem Webserver mit einer festen IP. In Listing 2 wird ein solches Script für PHP gezeigt.

Listing 2: Redirekting Script für PHP

<?
// Redirecting Script to DynDNS Adresse
// (c) Robert Madlo
$Hostname ="tux.homelinux.org";
$IP_Addr = gethostbyname ($Hostname);
header ("Location: http://$IP_Addr");
?>


Mailserver

Auch bei Mailservern wie Postfix oder ähnlichen lassen sich solche Änderungen vornehmen.
Ich will hier aber nicht weiter auf die Konfiguration eingehen. Aber wenn ihr die Config richtig angepasst habt, dann ist der Mailserver funktionsbereit und ein Client aus dem Internet kann nun eine Mail an admin@tux.homelinux.org schreiben. Aber dies bringt auch viele Probleme mit sich.

Wenn der Server Tux zum Beispiel nicht Online ist, landen die Mails in der Warteschlange, was eigentlich unproblematisch ist. Bekommt nun aber ein anderer Rechner die ehemalige IP von Tux zugewiesen, ist er wieder "erreichbar" und der SMTP Server wird versuchen die Mail nun an diesen Server zu versenden. Da diese Zustellung eigentlich unmöglich ist (es muss auf diesem Rechner ein SMTP-Server Existieren und Mails von der Domain tux.homelinux.org müssen akzeptiert werden), wird die E-Mail bouncen. Das ist sehr irritierend für den Absender. Somit ist es ratsamer keinen E-Mail Dienst auf seinem Server zu Hause laufen zu lassen, sondern den MX-Record zu nutzen. In unserem Fall mail.planet-rcs.de. Wenn die oben genannten Änderungen nicht durchgeführt wurden, verweigert der Server Tux die Annahme der E-Mails und sie werden an mail.planet-rcs.de weitergeleitet.

 


 

Vielleicht auch interessant:


Über den Autor

Robert programmiert Webanwendungen in ASP, kennt sich bestens im IRC und mit Eggdrops aus und schreibt auch darüber Artikel auf planet-rcs.de

Feedback