OPT_DYNDNS - Dynamic Hostname Service


Thomas Mueller

Die Entwicklung dieses Pakets wurde gesponsert von headwork Consulting GmbH

Beschreibung

Optionales Paket zum Aktualisierung eines dynamischen Hostnamens, bei

Fuer naehere Informationen siehe die Webseite des jeweiligen Anbieters. Diese Liste ist vollstaendig, d.h. andere Provider werden nicht ohne Aenderungen unterstuetzt. Es ist jedoch moeglich, das Paket um eigene Eintraege zu erweitern, siehe unten.

(* DynAccess bietet im Rahmen der FLI4L-DynAccess-Kooperation Sondertarife an. Informationen hierzu gibt es auf der InterNet-Seite http://www.dyn-fli4l.de bzw. http://www.dyn-eisfair.de. Tip: DynAccess bietet auf seiner Homepage umfangreiche Hintergrundinformationen zu "dynamischem DNS" an.)

(** Diese Anbieter habe ich nicht getestet. Die Unterstuetzung basiert auf Angaben anderer.)

(*** Bei diesen Anbietern wurde von mindestens einem Anwender opt_dyndns erfolgreich eingesetzt. Ich selbst habe sie jedoch nicht getestet.)

Das Paket besteht aus einem Startup Script, welches dynamisch ein Script erzeugt, welches wiederum die Dienste mit der aktuell vom Internet Provider zugewiesenen IP-Adresse versorgen.

Das erzeugte Script wird automatisch jedesmal aufgerufen, wenn der Router sich ins Internet einwaehlt. Normalerweise erhaelt er dann eine neue oeffentliche IP-Adresse zugewiesen.

Hinweis: Es kann bis zu ein paar Minuten dauern, bis die Aenderungen des dynamische Hostnamen auch wirksam werden.

Hinweis: Wenn der Router bei der Einwahl keine neue IP-Adresse bekommt, wird trotzdem ein Update durchgefuehrt. Das betrachten manche Anbieter als Verschwendung ihrere Ressourcen und kann dazu fuehren, dass der Account gesperrt wird. Siehe hierzu auch den Troubleshooting Abschnitt.

Lizenz

Copyright (C) 2001 Thomas Mueller <opt_dyndns at s2h.cx>

Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version.

Die Veroeffentlichung dieses Programms erfolgt in der Hoffnung, dass es Ihnen von Nutzen sein wird, aber OHNE JEDE GEWAEHRLEISTUNG - sogar ohne die implizite Gewaehrleistung der MARKTREIFE oder der EIGNUNG FUER EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License.

Sie sollten eine Kopie der GNU General Public License zusammen mit diesem Programm erhalten haben. Falls nicht, schreiben Sie an die

Free Software Foundation Inc. 59 Temple Place Suite 330 Boston MA 02111-1307 USA.

Der Text der GNU General Public License ist auch im Internet unter http://www.gnu.org/licenses/gpl.txt veroeffentlicht. Eine inoffizielle deutsche Uebersetzung findet sich unter http://agnes.dida.physik.uni-essen.de/~gnu-pascal/gpl-ger.html Diese Uebersetzung soll jedoch nur zu einem besseren Verstaendnis der GPL verhelfen, rechtsverbindlich ist die englischsprachige Version.

Diese Lizenz erstreckt sich auf alle Teile des Pakets mit Ausnahme des Programs DynDnsConfig.exe. Fuer dieses Programm gelten alle Bestimmungen der GPL mit Ausnahme der Verfuegbarkeit des Sourcecodes. (Grund: Es verwendet Bibliotheken, die ich nicht zur Verfuegung stellen darf. Die freien Sourceode-Teile kann ich auf Anfrage gerne weitergeben.)

Danksagungen

Ich habe die Danksagungen ans Ende der Anleitung verschoben, sie wurden allmaehlich zu lang, um am Anfang zu stehen.

Ich moechte mich bei allen genannten und evtl. anderen, die ich vergessen habe, nochmal bedanken und nicht vergessen auch den Machern von FlI4L meinen Dank fuer dieses tolle Produkt auszusprechen!

Update Hinweis

Ausser den gravierenden Aenderungen, die das Update auf FlI4L mit sich brachte, haben sich von 2.1.0 auf 2.1.1 noch die Namen von zwei Variablen geaendert:

Das Config-Programm aendert dies automatisch ab, so dass es moeglich ist, eine alte Config zu laden und sie im neuen Format zu speichern.

Ansonsten bitte manuell anpassen.

WARNUNG

Die oben mit ** markierten Dienste habe ich nicht getestet. Die anderen habe ich zwar getestet, aber ich selbst benutze nur DynDNS.org, ZoneEdit.com und dynaccess.de regelmaessig, so dass es sein kann, dass ich Aenderungen bei anderen Anbietern nicht mitbekomme. Bei Problemen mit diesen Anbietern kann ich so gut wie nicht weiterhelfen, nehme jedoch Hinweise zur Problembehebung gerne entgegen.

Voraussetzungen

Installation

Notwendige Daten

Stelle sicher, dass alle notwendigen Daten des DynDNS-Accounts vorhanden sind und dass das manuelle Setzen einer IP ueber die Webseite des Anbieters bzw. mittels der von ihnen zur Verfuegung gestellten Programme funktioniert. (Wenn Du nicht verstehst, wovon hier die Rede ist, solltest Du Dich erst beim Dienstanbieter schlau machen, bevor Du weitermachst!)

Notwendige Daten sind:

Beispiel fuer einen DynAccess.de account:

Bei manchen Anbietern ist Host = Username und Domain = Domain des Anbieters, bei anderen sind diese Daten unterschiedlich.

Extrahieren des Archivs

Achtung: Beim Auspacken des Archivs wird eine evtl. existierende config ueberschrieben. Vorher eine Sicherheitskopie von 'config/dyndns.txt' machen!

Extrahiere das ZIP-Archiv im FlI4L-Verzeichnis (z.B. 'c:\fli4l-2.0.1'). Dabei ist darauf zu achten, dass Dateien in Unterverzeichnisse entpackt werden.

Folgende Dateien werden extrahiert:

check/dyndns.txt
dient zum ueberpruefen der Config
config/dyndns.txt
die Config
opt/dyndns.txt
Liste der zu installierenden Dateien
opt/etc/dyndns.conf
Dienste-Config
opt/etc/rc.d/rc.dyndns
Startup-Script
opt/files/usr/local/htdocs/main_dyndns.cgi
cgi Script
unix/userencode.pl
base64 encoder fuer Linux/Unix (Perl)
windows/DynDnsConfig.exe
Config-Programm fuer Windows (Delphi)
doc/deutsch/opt/dyndns.txt
diese Doku
doc/deutsch/opt/changes/dyndns.txt
Aenderungshistorie
doc/english/opt/dyndns.txt
englische Doku
doc/english/opt/changes/dyndns.txt
Aenderungshistorie in Englisch

Auf dem Router wird automatisch eine Datei '/etc/ppp/ip-up.zdyndns' erzeugt. Die Datei heisst '*.zdyndns' und nicht '*.dyndns', damit sie als letztes ip-up-Script aufgerufen wird. Damit funktioniert dann z.B. auch der Freenet-Trick (s. Troubleshooting) und es sind evtl. Portforwards bereits aktiv, wenn die IP gesetzt wird.

Installation fuer Windows

Fuer Windows-User habe ich ein GUI-Configprogramm in Delphi geschrieben, welches die Config-Datei automatisch erzeugt. Dasselbe Programm gibt es auch fuer Linux/X-Windows, geschrieben in Kylix, aber da ich mir nicht sicher bin, ob das ueberall laeuft, habe ich es nicht ins Archiv gepackt. Bei Interesse kann ich es aber zumailen.

DynDnsConfig Programm (nur fuer Windows)

  1. Rufe 'windows/DynDnsConfig.exe' auf und lade die Datei 'config/dyndns.txt' bzw. eine evtl. bereits existierende Config.
  2. Benutze den Dialog um Provider, Host/Domain, Username und Password einzugeben. Das Secret wird automatisch errechnet.
  3. Aktiviere das Opt-Paket mit der Checkbox 'enable OPT'.
  4. Speichere die Config nach 'config/dyndns.txt'
  5. Gehe zur Erstellung der Diskette.

Installation fuer Unix / Linux

userencode.pl (nur fuer Unix)

Rufe 'unix/userencode.pl' mit Deinem Usernamen und Deinem Password bei dem Dienstanbieter als Parametern auf:

 userencode.pl hallo geheim

Dies ist ein Perl-Script, welches Username und Password in Base64 kodierter Form ausgibt. Diese Ausgabe wird im naehsten Schritt benoetigt.

Config Datei anpassen (nur fuer Unix)

Passe die Datei 'config/dyndns.txt' an:

#-----------------------------------------
# Optional package: dyndns
#-----------------------------------------
OPT_DYNDNS='no'

# global options
DYNDNS_SCRIPT='/etc/ppp/ip-up.zdyndns' # don't change this unless you know what you are doing!
DYNDNS_SAVE_OUTPUT='yes' # make answers available for opt_httpd

DYNDNS_N='1' # update N entries

# ZONEEDIT for zoneedit.com
# DYNDNS for dyndns.org
# CJB for cjb.net
# DTDNS for dtdns.net
# DHS for dhs.org
# DYNODNS for dynodns.net
# DYNACCESS for dynaccess.de
# HAMMERNODE for hn.org
# SELFHOST for selfhost.de
# STORCKORG for storck.org
# DYNEE for dyn.ee
# DNSART for dnsart.com

DYNDNS_PROVIDER_1='DYNACCESS'    # provider
DYNDNS_USER_1='hallo'	    # username
DYNDNS_PASSWORD_1='geheim'       # password
DYNDNS_HOST_1='myhost'	   # host part of myhost.dyn-fli4l.de
DYNDNS_DOMAIN_1='dyn-fli4l.de'   # domain part of myhost.dyn-fli4l.de
DYNDNS_SECRET_1='encrypted username1 and password1 from userencode.pl'
#-----------------------------------------

OPT_DYNDNS muss auf 'yes' gesetzt werden, damit das Paket ueberhaupt verwendet wird.

Zunaechst muss in DYNDNS_N die Anzahl der Eintraege angegeben werden. Normalerweise ist das wohl '1', es sei denn man hat mehrere Subdomains oder dieselbe Subdomain bei mehreren Anbietern registriert oder beides.

In DYNDNS_SAVE_OUTPUT gibt man an, ob die Antworten der Dienstanbieter per Webbrowser abrufbar sein sollen oder ob sie lediglich auf die Konsole ausgegeben werden sollen. (siehe unten)

Fuer jede Subdomain muss dann ein Block von Variablen ausgefuellt werden, der mit der gleichen Zahl endet.

DYNDNS_PROVIDER_X ist der symbolische Name des Anbieters, wie in der obigen Liste angegeben. Damit bestimmt man, wie schliesslich die Daten an den Anbieter gesendet werden.

Die Werte fuer DYNDNS_HOST_X und DYNDNS_DOMAIN_X sind abhaengig davon, welche Subdomain Du registriert hast. Das obige Beispiel geht von der subdomain 'myhost.dyn-fli4l.de' (bei Dynaccess.de) aus. Bei einigen Anbietern gibt es nur eine Domain und der Host ist gleich dem Usernamen. In diesem Fall muessen die beiden Felder mit den Standardwerten (z.b. beim Anbieter dtdns: host = username und domain = darktech.org) gefuellt werden.

DYNDNS_SECRET ist die Ausgabe des userencode Scripts aus dem vorigen Schritt.

Diskette erstellen

Jetzt wie gewohnt die Diskette erstellen, booten und es sollte funktionieren. Das erzeugte Script gibt die Antwort des Servers auf die Konsole aus bzw. stellt sie per Webbrowser zur Verfuegung. Sollte sie eine Fehlermeldung enthalten, so gibt es vermutlich ein Problem mit der Configuration.

Abrufen der Antworten

Wenn die Option DYNDNS_SAVE_OUTPUT ausgewaehlt ist, werden die Antworten der DynDNS-Anbieter auf die Anfrage des Scripts in '/var/run/answer.<name des Anbieters> zwischengespeichert und koennen per Webbrowser abgerufen werden. Dies funktioniert nur, wenn opt_httpd aktiviert und konfiguriert wurde (siehe FlI4L Anleitung). Wenn das der Fall ist, wird im Hauptmenue ein Eintrag DynDNS angezeigt, unter dem man diese Information abrufen kann.

Ich bitte darum, mir keine Fragen zur Installation von opt_httpd zu stellen, die ist in der Anleitung von FlI4L gut beschrieben.

Erweitern des Pakets um zusaetzliche DynDNS-Anbieter

Vorweg eine Bitte: Ich habe in meiner Freizeit besseres zu tun, als jedesmal, wenn jemand meint, einen weiteren Anbieter benutzen zu wollen, die Daten des Anbieters zusammenzusuchen, einen Account anzumelden, zu pruefen, ob es funktioniert und ihn dann einzubauen. Ich werde schliesslich fuer diese Arbeit hier nicht bezahlt! Wer es trotz folgender Anleitung nicht schafft, einen bestimmten Anbieter selbst hinzuzufuegen, den bitte ich, auf andere Update-Clients auszuweichen oder mich fuer meinen Aufwand zu entlohnen.

Es ist relativ einfach, neue Anbieter eines dynamischen DNS-Service zu dem Paket hinzuzufuegen, vorausgesetzt, er verwendet normale HTTP-Anfragen fuer die IP-Updates. Es muss lediglich in der Datei 'dyndns.conf' ein Eintrag wie der folgende erstellt werden:

PROVIDER_NEWPROVIDER_NAME='NewProvider.org'
PROVIDER_NEWPROVIDER_REQUEST_URL='/script.cgi?username=$DYNDNS_USER&Domain=$DYNDNS_DOMAIN&Passwd=$DYNDNS_PASSWORD&ip=\$MYIP'
PROVIDER_NEWPROVIDER_REQUEST_HOST='server.newprovider.org'
PROVIDER_NEWPROVIDER_REQUEST_PORT='Portnummer'
PROVIDER_NEWPROVIDER_REQUEST_AUTHBASIC='yes/no'

Dabei muss der String _NEWPROVIDER_ durch einen eindeutigen, den Anbieter beschreibenden String ersetzt werden. *_REQUEST_HOST gibt den Server an, an den Updates geschickt werden muessen. *_REQUEST_AUTHBASIC muss auf 'yes' gesetzt werden, wenn der Anbieter eine 'Authorization Basic' Authentifizierung benoetigt. In *_REQUEST_PORT muss der Port angegeben werden, auf der der Server angesprochen wird. Wenn der Anbieter das nicht explizit sagt, ist dies meist Port 80 (http).

Der kompliziertere Teil ist *_REQUEST_URL. Hier muss eine URL angegeben werden, ueber die der Account geaendert werden kann. Es stehen die am Anfang der Sektion definierten Variablen, ohne das Zahlen-Suffix zur Verfuegung. Zusaetzlich gibt es noch die Variable \$MYIP. Diese muss im Gegensatz zu den anderen Variablen mit einem \ (Backslash) eingeleitet werden, damit sie nicht schon im 'rc.dyndns' Script sondern erst im dort erzeugten 'ip-up.zdyndns' Script aufgeloest wird.

Wenn Du weitere Anbieter hinzufuegst, schicke die entsprechenden Daten bitte auch an mich, so dass ich sie in das Paket aufnehmen kann. Aber bitte nur getestete Eintraege schicken, ich kann nicht jeden einzelnen Anbieter selbst ueberpruefen.

Troubleshooting/FAQ

	  8
	  bad auth
d.h. die Authentifizierung ist fehlgeschlagen. Wahrscheinlich stimmt der unter DYNDNS_SECRET angegebene String nicht.
Nein, es ist nicht moeglich vor dem Auflegen automatisch eine Offline-IP zu setzen (es sei denn, jemand hat eine geniale Idee). Grund: Das ip-down Script wird erst aufgerufen *nachdem* die Verbindung bereits getrennt ist. Wenn man dorthinein eine Anfrage schreiben wuerde, die auf das Internet zugreift, so wuerde automatisch die Verbindung wieder aufgebaut, also der Zweck des Scripts voellig verfehlt. Es gibt auch keine andere Moeglichkeit, etwas vor dem Auflegen ausfuehren zu lassen, denn der ppp-Daemon weiss ja moeglicherweise gar nicht, dass gleich aufgelegt wird, denn das kann auch von der Gegenseite oder durch andere Faktoren ausgeloest werden.
(So und wenn ich jetzt noch eine E-Mail zu dem Thema kriege, aus der hervorgeht, dass der Absender diesen Abschnitt nicht gelesen hat, werde ich zum Tier. ;-) )

Martin Kisser schlaegt dazu folgende Script-Zeilen vor:
	  if [ -f /var/run/meine.ip ]; then
	    oldip=`cat /var/run/pppoe.ip`
	  else
	    oldip="0.0.0.0"
	  fi

	  if [ "$local" != "$oldip" ]; then
	    echo $local > /var/run/meine.ip
	    STARTEDYNDNS-SCRIPT
	  fi
Ich habe das so nicht eingebaut, aber falls es jemand implementiert, bin ich gerne bereit, das zu uebernehmen.

Feedback

Bei Fragen oder Problemen mit diesem Paket

Email an Thomas Mueller <opt-dyndns at s2h.cx>

Bitte immer die verwendete Version von FlI4L und OPT-DynDNS angeben. Evtl. hilfreich waere auch der Provider und sonstige OPT-Pakete, die aktiv sind. Mails ohne diese Angaben werde ich zukuenftig nicht mehr beantworten.

Bitte keine Fragen zu Fli4L allgemein stellen, ich bin kein FlI4L-Support, es sei denn gegen Bezahlung, mein Tagessatz ist 800 Euro.

Danksagungen die 2.

Folgende Leute haben mir bei der Entwicklung dieses Pakets geholfen:

Disclaimer: Dieses Dokument wurde erstellt mit aft (Url siehe unten), die Umlaute habe ich absichtlich mit nachgestelltem 'e' (ae, oe, ue etc.) geschrieben, das ist kein Fehler in diesem Utility.



This document was generated using AFT v5.077