out of the box: ddclient

Aus LinuxUser 07/2003

out of the box: ddclient

Rund um die Uhr erreichbar

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.

Abbildung 1: Unter Debian gibt es für ddclient ein Konfigurationstool

Abbildung 1: Unter Debian gibt es für ddclient ein Konfigurationstool

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.

Abbildung 2: Erstellen eines dynamischen DNS-Eintrags bei DynDNS

Abbildung 2: Erstellen eines dynamischen DNS-Eintrags bei DynDNS

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.

LinuxUser 07/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben