Ob es sich um die Urlaubsfotos aus der Digitalkamera, Konfigurationsdateien, die ein bestimmtes Problem lösen, oder mühsam erstellte Briefvorlagen handelt – es gibt genügend Daten auf dem heimischen Linux-Rechner, auf die man von anderswo gern Zugriff hätte. Mit dynamischen DNS-Diensten und dem ddclient dürfen auch Benutzer ohne feste IP-Adressen ihre Rechner dauerhaft den Fährnissen des Internets aussetzen.
out of the box
Es gibt tausende Tools und Utilities für Linux. “out of the box” pickt sich die Rosinen raus und stellt pro Monat ein Progrämmchen vor, das wir für schlichtweg unentbehrlich oder aber zu Unrecht wenig beachtet halten.
Wer seinen Heim-Rechner von unterwegs erreichen möchte, kämpft bei den meisten Providern damit, dass sich spätestens nach 24 Stunden die zugewiesene IP-Adresse ändert. Mit handelsüblichen Lösungen lässt sich der Zugriff von außen (“remote”) dann nur für diese Zeit sicherstellen. Abhilfe naht in Gestalt eines Dynamic-DNS-Service: Er erlaubt es, die Zuordnung von DNS-Hostnamen zu numerischen IP-Adressen bei Bedarf zu aktualisieren.
Allerdings muss der Anbieter des Dienstes zu diesem Zweck von der sich ändernden IP-Adresse erfahren. Sie bei jeder Umadressierung von Hand zu aktualisieren, ist mühselig oder gar unmöglich – dann nämlich, wenn man zum entsprechenden Zeitpunkt keinen Zugriff auf die Konsole des Rechners hat. ddclient von Paul Burry versorgt die wichtigsten Dynamic-DNS-Dienste (namentlich http://www.dyndns.org/, http://www.hn.org/, http://www.zoneedit.com/ und http://www.easydns.com/) automatisch mit den entsprechenden Informationen.
Problemlose Installation
Als Perl-Skript braucht man ddclient nicht einmal kompilieren, was die Installation erheblich vereinfacht. Einzige Voraussetzung: Perl muss vorinstalliert sein. Glücklicherweise sorgen zumindest die Hersteller gängiger Distributionen von sich aus dafür.
ddclient selbst finden Sie samt einigen Beispiel-Dateien auf der Heft-CD oder auch auf der Webseite http://burry.ca:4141/ddclient/. Letztere ist allerdings eher schlecht zu erreichen. Benutzer einer aktuellen Debian-Distribution oder von Red Hat Linux 8/9 finden auf der Heft-CD fertig vorkompilierte Pakete vor, die sie mit
dpkg -i ddclient_3.6.2-2_all.deb
(Debian) oder
rpm -ivh ddclient-3.6.2-4.noarch.rh8.rpm rpm -ivh ddclient-3.6.2-5.noarch.rh9.rpm
(erster Befehl: Red Hat 8.x, zweites Kommando: 9.x) einspielen.
Debian bietet sogar an, ddclient direkt nach der Installation mittels einer Textoberfläche (Abbildung 1) zu konfigurieren. Möchte man die dabei getätigten Einstellungen später ändern, steht jederzeit der Befehl
dpkg-reconfigure ddclient
zur Verfügung. Wir beschäftigen uns hier aber mit der manuellen Konfiguration.
Unter Red Hat trägt man das Programm anschließend mit
chkconfig --add ddclient
in die Liste der Dienste ein, die automatisch bei jedem Systemstart hochgefahren werden. Benutzer anderer Distributionen finden in Listing 1 eine Installationsanleitung.
Listing 1
ddclient installieren
tar xzf ddclient-3.6.2.tar.gz cd ddclient-3.6.2 su (Geben Sie hier bitte Ihr root-Passwort ein) cp ddclient /usr/sbin cp sample-etc_ddclient.conf /etc/ddclient.conf cp sample-etc_rc.d_init.d_ddclient /etc/rc.d/init.d/ddclient exit
Dynamik
Um aus ddclient überhaupt Nutzen zu ziehen, benötigen Sie einen Account bei einem der oben genannten Provider dynamischer DNS-Dienste. Dieses Konto ist völlig unabhängig vom Anbieter Ihres Internet-Zugangs!
Beim bekanntesten Anbieter DynDNS bekommen Sie unter http://www.dyndns.org/account/create.html einen Zugang, der bis zu fünf Hostnamen kostenlos aufnimmt. Nach der Anmeldung loggen Sie sich unter http://www.dyndns.org/account/ ein und fügen unter Dynamic DNS / Add Host in der Zeile Hostname einen Rechnernamen hinzu (Abbildung 2). Rechts davon wählen Sie eine der von der Firma bereitgestellten Domains aus. Alle anderen Felder können Sie unverändert lassen. Ihr Rechner wird später unter der Adresse Hostname.gewählteDomain erreichbar sein, in Abbildung 2 also unter linuxusertest.dyndns.org.
Da sich DynDNS vorbehält, unbenutzte Hostnamen nach 35 Tagen ohne Update der IP-Adresse aus der Datenbank zu löschen, lohnt es sich nicht, Hostnamen auf Vorrat zu registrieren. Wer die Rechner eigenen Domains zuordnen will, muss den dynamischen DNS-Provider damit beauftragen, die DNS-Informationen für die eigene Domain kostenpflichtig zu verwalten.
Sag mir, wer ich bin!
Nun muss man ddclient in der Datei /etc/ddclient.conf so konfigurieren, dass es dem dynamischen DNS-Dienst die jeweils aktuelle Internet-IP-Adresse des Systems übermittelt. Einmal kann man eine feste IP-Adresse senden:
use=ip, ip=127.0.0.1
Hier müsste man ddclient bei jeder Änderung der zugewiesenen IP-Adresse umkonfigurieren, ein Gedanke, der die Idee des dynamischen DNS-Dienstes ad absurdum führt. Besser weisen Sie das Tool mit
use=if, if=ppp0
an, die aktuelle IP-Adresse des Interfaces ppp0 auszulesen. An seiner Statt könnten auch andere Netzwerkschnittstellen stehen, vorausgesetzt, sie tragen die extern erreichbare IP-Adresse. Alternativ sendet ddclient eine Web-Anfrage an den dynamischen DNS-Server, aus der dieser die IP-Adresse übernimmt. Diese Methode, einschaltbar über use=web, berücksichtigt die aktuelle Routing-Tabelle des Rechner, so dass es keine Rolle spielt, über welches Medium der Rechner mit dem Internet verbunden ist. Sie scheitert, wenn Ihr Provider einen Zwangsproxy vorsieht, da dann die Adresse des Proxies in die Datenbank eingetragen wird.
Darüber hinaus liest ddclient die Einwahl-Daten aus einigen Einwahl-Routern aus (ddclient –help hilft hier weiter), aber in den meisten Fällen funktioniert die Web-Methode genauso gut oder besser.
Für den Rest der Konfiguration in /etc/ddclient.conf ist es egal, welche der use-Methoden Sie verwenden. Lediglich die Werte für login und password müssen Sie in Listing 2 durch Ihr DynDNS-Login bzw. das Passwort ersetzen und Ihre registrierten Host-Namen in die server-Zeile am Ende eintragen.
Startet man ddclient im Daemon-Modus durch Eingabe von /etc/init.d/ddclient start, prüft das Tool in festlegbaren Intervallen, ob die IP-Adresse bei DynDNS noch mit der aktuellen übereinstimmt. Sobald sich die IP-Adresse ändert, übermittelt ddclient die neue IP-Adresse an den dynamischen DNS-Provider. Ist der Rechner nicht über eine Flatrate mit dem Internet verbunden, verursacht diese Methode durch den ständigen Verbindungsaufbau unnötigen Verkehr. In diesem Fall ruft man ddclient besser bei jedem Start der Internet-Verbindung ohne Kommandozeilenoptionen auf.
Listing 2
/etc/ddclient.conf
daemon=300 # Der Daemon überprüft alle 300 Sekunden,
# ob sich die IP-Adresse geändert hat …
syslog=yes # … und schreibt einen Logeintrag ins Syslog
# (normalerweise /var/log/messages).
# mail=root # Sende eine E-Mail bei Änderung der
# IP-Adresse (nicht aktiviert)
pid=/var/run/ddclient.pid # Speichere die Prozess-ID des Daemons in
# /var/run/ddclient.pid
# use=ip, ip=127.0.0.1 # Statische IP übermitteln (nicht aktiviert)
# use=if, if=ppp0 # Lies IP aus einem Interface aus (nicht aktiviert)
use=web # Ermittle IP-Nummer über Web-Zugriff
protocol=dyndns2 # Standardprotokoll
server=members.dyndns.org # Standardserver
login=linuxusertest # Standard-Login für den DynDNS-Account
password=blablabl # Standard-Passwort
server=members.dyndns.org, protocol=dyndns2, meinhostname.dyndns.org
# Zusätzlicher Eintrag für zoneedit. Da dieser Dienst andere Zugangsdaten als
# DynDNS verwendet, enthält die Zeile neue protocol-, login- und
# password-Angaben.
server=www.zoneedit.com, protocol=zoneedit1, login=zoneeditlogin, password=zoneeditpasswort, meinhostname.meine.domain
Fehlersuche
Ob ddclient beim Versuch, die aktuelle IP-Nummer an den in der Zeile server konfigurierten dynamischen-Server zu senden, erfolgreich war, zeigt ein Blick in die Datei /var/log/messages:
May 13 14:54:58 freedom ddclient[4196]: SUCCESS: updating meinhostname.dyndns.org: good: IP address set to 62.245.157.217
meldet Erfolg. Stimmt die in der Log-Meldung angebene IP-Adresse nicht mit der IP-Adresse des Rechners überein, experimentieren Sie mit dem use=-Parameter. Meist lässt sich das Problem bereits mit wenigen Versuchen beheben.
Glossar
-
DNS-Hostnamen
-
Der eindeutige Name eines Rechners im “Domain Name Service” (DNS), zum Beispiel www.linux-user.de. Dynamische DNS-Dienste ordnen dem Namen die numerische IP-Adresse zu, die der Rechner bei der Einwahl ins Internet erhält und die ddclient übermittelt. Das geht natürlich nur für Domains, für deren DNS-Einträge sie verantwortlich sind.
-
Perl
-
Die “Practical extraction and report language” ist eine sehr umfangreiche und weitverbreitete Skript-Sprache. Den darin geschriebenen Code braucht man nicht erst kompilieren, sondern kann ihn mit Hilfe des perl-Interpreters sofort ausführen.
-
Routing-Tabelle
-
Dieser vom Betriebssystem verwalteten Tabelle entnimmt ein Rechner die Information, über welchen anderen Router (Rechner) er am besten zu einem Zielsystem (hier das Internet) kommt.






