Ddclient

Aus Linupedia
Wechseln zu: Navigation, Suche

Autoren: Yehudi & TomcatMJ

Diese Beschreibung wurde mit folgenden Distributionen getestet:

Wer die SuFu verwendet hat, der wird wahrscheinlich festgestellt haben, dass er sich durch zig Einträge kämpfen muss, und seine Konfiguration trotzdem nicht funktioniert. Also werde ich hier ein recht kurzes HOWTO anlegen, welches gerne erweitert werden kann, da es immer Einzelfälle gibt, die nicht berücksichtigt worden sind.

Über ddclient selbst

Das im Titel aus technischen Gründen nicht komplett kleingeschriebene Perl-Programm ddclient dient als Daemon im Hintergrund gestartet dazu, einem DynDNS Serviceanbieter die Änderung der eigenen IP mitzuteilen, damit der dortige DNS-Servereintrag entsprechend automatisch aktualisiert werden kann. Dieses kleine Hilfsprogramm wird heute von den meisten Linux Distributionen mitgeliefert, ist jedoch dort nicht immer auf dem aktuellsten Stand. Daher kann man es auch oft in alternativen Software-Repositories für diverse Paketmanager in aktuelleren Versionen finden, z.B. für openSUSE im Guru-Repository oder sich bei den meisten DynDNS-Anbietern auch über die dortige Liste der unterstützten IP-Abgleich-Clients als Tarball herunterladen um es dann manuell zu installieren.

Installation von ddclient

Woher nun ddclient nehmen? Wenn man openSUSE hat, gibt es den Weg dieses Programm über YaST von der DVD/CD zu installieren, oder die schnellere Möglichkeit, über apt/Synaptic das Programm recht schnell zu installieren. Bei Debian oder damit verwandten Linux Distributionen sollte das auch über apt gehen.

Über die grafischen Oberflächen braucht einfach nur "ddclient" eingegeben werden oder in der Konsole als root


apt-get install ddclient

oder

smart install ddclient

eingeben und auf Enter drücken.

Alternativ kann man sich auch den tarball von http://ddclient.sourceforge.net herunterladen und gemäß dem beiliegenden Readme-File in den beannten Pfad des Systems kopieren und konfigurieren und dann ebenso nutzen wie die per DPKG/RPM/APT/smart/YaST instalierte von dritten Personen fertig gepackte Version.


Webadresse

Alle Angaben sind nur Beispiele, um einen eigenen Acount anzulegen!

Man braucht eine Adresse für seine Webseite, die auf dem eigenen Rechner im Apache liegt, und die zugewiesene IP ändert sich ständig, weil der genutzte Provider in regelmäßigen Abständen, z. B. alle 24 Stunden, die Verbindung vom Netz trennt. Ein Script zur Wiedereinwahl und einen Cron-Job dafür ist vorhanden oder ddclient wird als daemon genutzt. Als Beispiel wird hier der DNS-Serviceprovider DynDNS.org aufgeführt.

Also geht man auf https://www.dyndns.com/ und legt einen Benutzernamen mit Passwort an. Unter "Add Host Services" > "Add Dynamic DNS Host" wählt man sich einen Namen für die Webadresse aus.

Unter "My Services" > runter scrollen > "Host Level Services" ist jetzt die gewählte Adresse zu finden. Dort klickt man auf den Link "Dynamic DNS" Und dort ist die derzeitige IP des Rechners und die IP, mit welcher die Webadresse zur Zeit verbunden ist. Mit Modify Host" kann man die IP aktualisieren. Wenn man nun in einem neuen Browserfenster die vorhin gewählte Adresse eingibt, zeigt der Browser die auf dem lokalen Webserver liegende index.html Datei an. Da man aber nicht immer um 4:00Uhr Nachts aufstehen will um per Hand die Ip zu aktualisieren, gibt es z.B. ddclient.

Konfiguration von ddclient

Ein Umsteiger mag nun erwarten, dass er über die Taskleiste ein Programm findet, welches "ddclient" heißt. Um möglichen Enttäuschungen vorzubeugen, weise ich darauf hin, dass wir uns hier mit einer steril aussehenden Konfigurationsdatei

/etc/ddclient.conf 

oder

/etc/ddclient/ddclient.conf

befassen müssen, die in diesem Fall bis zum oberen Rande mit Beispiel-Konfigurationen und ausreichend enthaltenen Komentaren so gefüllt ist, dass man erst mal gar nicht weiss, wo man anfangen soll. Mein Tipp wäre erst mal die Datei in einen Ordner im z.B. homeverzeichnis zu sichern. Nun öffnet man das gute Stück indem man in der Konsole als root mit dem Befehl "mc", oder aber wie ich das momentan gerne mache, den Konqueror auch als root mit dem Befehl "konqueror" öffnen. In beiden Fällen muss man erst mal in das Verzeichnis /etc/ browsen. In erstem Fall öffnet man die Datei ddclient.conf mit "bearbeiten". Im zweiten Fall klickt mit der rechten Maustaste drauf und öffnet sie mit Kate. Den Inhalt kann man einfach mal komplett löschen und dann folgendes einsetzen:


######################################################################
##
## Define default global variables with lines like:
##    var=value [, var=value]*
## These values will be used for each following host unless overridden
## with a local variable definition.
##
## Define local variables for one or more hosts with:
##    var=value [, var=value]* host.and.domain[,host2.and.domain...]
##
## Lines can be continued on the following line by ending the line
## with a \
##
######################################################################
daemon=300            # check every 300 seconds
syslog=yes              # log update msgs to syslog
#mail=root                # mail all msgs to root
#mail-failure=root         # mail failed update msgs to root
pid=/var/run/ddclient.pid      # record PID in file.
#
#use=watchguard-soho,        fw=192.168.111.1:80   # via Watchguard's SOHO FW
#use=netopia-r910,           fw=192.168.111.1:80   # via Netopia R910 FW
#use=smc-barricade,          fw=192.168.123.254:80   # via SMC's Barricade FW
#use=netgear-rt3xx,          fw=192.168.0.1:80      # via Netgear's internet FW
#use=linksys,                fw=192.168.1.1:80      # via Linksys's internet FW
#use=maxgate-ugate3x00,      fw=192.168.0.1:80      # via MaxGate's UGATE-3x00  FW
#use=elsa-lancom-dsl10,      fw=10.0.0.254:80      # via ELSA LanCom DSL/10 DSL Router
#use=elsa-lancom-dsl10-ch01, fw=10.0.0.254:80      # via ELSA LanCom DSL/10 DSL Router
#use=elsa-lancom-dsl10-ch02, fw=10.0.0.254:80      # via ELSA LanCom DSL/10 DSL Router
#use=alcatel-stp,            fw=10.0.0.138:80           # via Alcatel Speed Touch Pro
#use=xsense-aero,            fw=192.168.1.1:80          # via Xsense Aero Router
#use=allnet-1298,            fw=192.168.1.1:80          # via AllNet 1298 DSL Router
#use=3com-oc-remote812,        fw=192.168.0.254:80   # via 3com OfficeConnect Remote 812
#use=e-tech,                 fw=192.168.1.1:80          # via E-tech Router
#use=cayman-3220h,           fw=192.168.0.1:1080        # via Cayman 3220-H DSL Router
#
#fw-login=admin,             fw-password=XXXXXX      # FW login and password
#
## To obtain an IP address from FW status page (using fw-login, fw-password)
#use=fw, fw=192.168.1.254/status.htm, fw-skip='IP Address' # found after IP Address
#
## To obtain an IP address from Web status page (using the proxy if defined)
#use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
#
#use=ip,                     ip=127.0.0.1   # via static IP's
#use=if,                      if=eth1      # via interfaces
##Funktioniert nicht mit dem ip Update
#use=if,                     if=ppp0            # für DSL
use=web               # via web

protocol=dyndns2                      # Standardprotokoll
server=members.dyndns.org   # Standardserver
login=Dein Login                   # Standard-Login für den DynDNS-Account
password=Dein Passwort        # Standard-Passwort
wildcard=yes                            # add wildcard CNAME? 

server=members.dyndns.org,        \
protocol=dyndns2,                  \
Deine dyndns Adresse

Im Prinzip brauchen hier nur Drei Einträge vollzogen werden, den Login-Namen, das Passwort und die DynDNS Adresse (alles aus der Anlage des Accounts auf dyndns.com, was im übrigen mit dyndns.org identisch ist). Das wars dann auch schon.

Der Eintrag

use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address

oder

use=web # via web

dient dazu, um von aussen zu gucken, welche "Hausnummer" also IP der Rechner von außen hat. Alle anderen Einträge würden nachgucken, welche "Hausnummer" - IP der Rechner von innen hat.

Diese Konfiguration funktioniert wenn der Rechner per Ethernet über ein DSL Modem im Netz hängt.

Andere Konfigurationen können gerne an dieser Stelle eingefügt werden. z.B. über einen Router. Nutzt der Provider über den man ins Netz geht einen solchen Router so kann es auch Probleme geben, denn da würde eventuell immer die Homepage-Adresse auf den ggf. zum Zuge ommenden Proxyserver des Providers laufen statt auf den eigenen mit der Funktion ja anvisierten Rechner.

Um http://yehudi.de auch unter http://www.yehudi.de erreichbar zu machen müssen zwei Punkte beachtet werden. Einmal oben in der Grafik bei "Enable Wildcard" ein Häkchen, und die Option

wildcard=yes                       # add wildcard CNAME?

dabei muss diese Zeile

use=web               # via web

verwendet werden.

Die Datei sollte zwecks des Passwortes nur rootrechte haben, dazu geben wir in der Konsole

chmod -Rc a-rwx /etc/ddclient.conf

als root ein.

Starten von ddclient

Unter root in der Konsole geben wir

ddclient start

ein. Damit startet ddclient.

Weitere Befehle sind:

ddclient stop
killall -9 ddclient

Starten von ddclient bei Systemstart

Normalerweise wird in den gängigen Linux Distributionen bereits ein entsprechendes Startscript mitgeliefert, ebenso wie in den Versionen aus den diversen Drittanbieter-Repositories. Für openSUSE (oder nach entsprechender Anpassung auch anderen Linux Distributionen) kann man auch folgendes Startscript nutzen, dazu folgen wir oc2pus seinen Anweisungen:

1.) dieses script nach /etc/init.d/ddclient kopieren

 #!/bin/sh
 #
 # init.d/ddclient
 #
 ### BEGIN INIT INFO
 # Provides:       ddclient
 # Required-Start: $named $network
 # Required-Stop:
 # Default-Start:  3 5
 # Default-Stop:
 # Description:    ddclient provides support for updating dynamic DNS services.
 ### END INIT INFO

 . /etc/rc.status
 rc_reset

 [ -f /etc/ddclient.conf ] || exit 0
 
 PATH=/usr/sbin:${PATH}
 COLUMNS=9999
 export PATH COLUMNS
 program=ddclient 
 
 case "$1" in
         start)
                 echo -n "Starting ddclient: "
 #               ddclient -daemon 300
                 ddclient -v
                 rc_status -v
                 ;;
         stop)
                 echo -n "Shutting down ddclient: "
                 kill `ps -aef | awk '/[ \/]perl.*ddclient/ { print $2}'`
                 rc_status -v
                 ;;
         restart)
                 $0 stop
                 $0 start
                 rc_status
                 ;;
         status)
                 pids=`ps -aef | awk '/[ \/]perl.*ddclient/ { print $2}'`
                 if test "$pids"
                  then
                          for p in $pids
                         do
                                  echo "$program (pid $p) is running"
                         done
                 else
                          echo "$program is stopped"
                fi
                  rc_status -v1
                 ;;
         *)
                 echo "Usage: ddclient {start|stop|restart|status}"
                 exit 1
 esac

 exit 0

2.)

cd /etc/init.d
insserv ddclient

3.)

cd /sbin
ln -s ../etc/init.d/ddclient rcddclient

jetzt wird der ddclient in runlevel 3 und 5 gestartet oder mit rcddclient start

Dieser Abschnitt stammt von oc2pus aus diesem Thread: http://www.linux-club.de/viewtopic.php?p=90597

Suche von Fehlerquellen

Hierzu können zwei Befehle genutzt werden:


cat /etc/ddclient.cache


und

tail -20 /var/log/messages

Weitere Quellen und Links

Einige unterstützte DynDNS Serviceanbieter

Die Liste stammt aus der Dokumentation von ddclient, den tests nach ist die Aktualität aber nicht wirklich gegeben:

  • DynDNS.org (bis zu 5 kostenlose DynDNS Domains,auch statische, wer mehr Domains braucht muss zahlen)Englisch.png
  • DNSPark.com Englisch.png
  • OrgDNS.org (offenbar nicht mehr aktiv, hat nun wohl andere Inhalte als DynDNS betreffende) Deutsch.png
  • DSLReports (scheint auch nicht mehr mit den ursprünglichen Diensten aktiv zu sein, zumindest war DynDNS dort nicht direkt zu finden) Englisch.png
  • Hammernode (offenbar nicht mehr aktiv)
  • EasyDNS Englisch.png
  • ZoneEdit (bietet ebenso kostenlose DynDNS Domains) Englisch.png

Weiter DynDNS Dienstanbieter die eigene Software statt ddclient nutzen

  • SelfHost.de (bietet kostenpflichtig auch .de Domains an, nutzt dazu jedoch ein eigenes Updatetool, welches für Linux, Windows und MacOS erhältlich ist) Deutsch.png

zurück zu DHCP und DNS