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.
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
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
$ ez-ipupdate -d - S dyndns -i ppp0 -h tux.homelinux.org -m mail.planet-rcs.de -u derkleinetux:mypass
$ ez-ipupdate -c /etc/ez-ipupdate.dyndns.conf
#!/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
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");
?>