DDNS Updater

DDNS Updater ist ein kleines Python Skript, welches eine dynamische IP Adresse auf einem DNS Server aktualisert. Wird z.B. ein eigener Web-Server an einem (NAT-) Router betrieben muss die externe IP Adresse des Routers benutzt werden, um auf diesen Server zugreifen zu können. Da sich IP Adressen nur bedingt merken lassen, wurde DNS (Domain Name System) entwickelt. DNS löst Domain Namen in (statische) IP Adressen auf. Da sich IP Adressen von Routern sporadisch (alle paar Wochen) ändern, liefert DNS, nach solch einer Änderung, immernoch die alte IP Adresse. Eine Aktualisierung der IP Adresse auf dem DNS Server ist also notwendig, um weiterhin Zugriff auf seinen (internen) Web Server zu bekommen. Dieser Vorgang der Aktualisierung wird durch eine Variante von DNS dem Dynamischen DNS übernommen.

Um immer die aktuellste IP Adresse auf dem DNS Server zu hinterlegen, wurde DDNS Updater entwickelt. Es gibt zwar bereits einige solcher Programme. Meist bieten diese unnütze Funktionen, sind kompliziert zu konfigurieren und funktionieren teilweise nicht korrekt. DDNS Updater ist sehr schlank, einfach zu konfigurieren und bietet E-Mail Benachrichtigungen bei Fehlern und erfolgreicher Aktualisierung.

Installation

Falls das Repository von PM Code Works im Paketmanager eingebunden ist, genügt es diesem die Installation des Pakets "ddns-updater" mit folgendem Befehl anzuordnen:

~# apt-get install ddns-updater

Alternativ kann die Installation selbstverständlich auch mit einem grafischen Paketmanager, wie z.B. synaptic, durchgeführt werden. Falls das Repository von PM Code Works noch nicht von einem Paketmanager eingebunden wurde, gibt es eine Anleitung unter Linux Repository.

Konfiguration

Konfiguriert wird DDNS Updater über die Konfigurationsdatei /etc/ddns-updater/ddns.conf, welche den Aufbau einer INI-Datei hat. Darin gibt es Konfigurationsmöglichkeiten, die im Folgenden erläutert werden:

Die Sektion [DDNS]:

  • server
    Diese Variable muss den Domain-Namen des DNS Server Providers (ohne "http://"), z.B. dyndns.strato.com, beinhalten.

  • server_path
    Diese Variable muss den URL-Pfad zum DNS Server Verzeichnis beinhalten. Bei Strato ist dieser beispielsweise /nic/update.

  • username
    Benutzername des Kontos bei dem DNS Server Provider.

  • password
    Das zugehörige Passwort zum Benutzernamen.

  • hostname
    Der Domain-Name, der zur Verfügung gestellt werden soll.

  • ip
    Diese Variable sollte nicht verändert werden. Darin speichert DDNS Updater die aktuelle IP Adresse ab. Falls sich diese ändert, aktualisiert das Programm sofort die IP Adresse auf dem DNS Server.

  • external_ip_server
    Diese Variable muss einen externen Web Server beinhalten, der die Fähigkeit besitzt, die externe IP Adresse des Routers zurück zu liefern. checkip.dyndns.com ist beispielsweise ein bekannter Server. Eigene (externe) Web Server können auch dazu benutzt werden. Ein simples PHP Skript (checkip.php) befindet sich in /usr/share/doc/ddns-updater/.

  • external_ip_server_path
    URL-Pfad zum PHP Skript auf einem externen Web Server. Falls der checkip.dyndns.com Server benutzt wird ist hier lediglich ein / einzutragen.

  • use_regex
    Diese Variable aktiviert bzw. deaktiviert die Nutzung eines regulären Ausdrucks (RegEx), um die IP Adresse aus einer HTTP-Antwort im HTML-Format auszulesen. Falls checkip.dyndns.com benutzt wird, muss diese Variable auf True gesetzt werden und andernfalls auf False.

Die Sektion [Mail]:

  • notify
    Durch diese Variable werden E-Mail Benachrichtigungen aktiviert bzw. deaktiviert. Falls aktiviert (True) werden Mails bei Fehlern und nach erfolgreicher Aktualisierung der IP Adresse verschickt.

  • smtp_server
    SMTP Postausgangsserver von dem die E-Mail Benachrichtigungen verschickt werden.

  • port
    Port des Postausgangsservers (587 oder 465).

  • username
    Benutzername des E-Mail Kontos.

  • password
    Das zugehörige Passwort zum Benutzernamen des E-Mail Kontos. Hinweis: Das Passwort sowie der Benutzername werden durch TLS verschlüsselt übertragen.

  • recipient
    E-Mail Adresse des Empfängers an den die E-Mail Benachrichtigungen versandt werden.

DDNS Updater überprüft standardmäßig alle 10 Minuten, ob sich die IP Adresse geändert hat. Falls ja wird diese automatisch aktualisiert. Somit wird eine Aktualisierung nicht unnötig vorgenommen. Das Interval kann in der Datei /etc/cron.d/ddns-updater geändert werden.

Befehle

Standardmäßig wird die Konfigurationsdatei /etc/ddns-updater/ddns.conf beim Starten geladen. Mit folgendem Befehl kann eine andere Datei geladen werden:

~# ddns-updater --config /Pfad/zu/einer/anderen/Konfigurationsdatei

DDNS Updater unterstützt mehrere DDNS Profile. Jede Sektion innerhalb der Konfigurationsdatei bildet ein solches Profil. Standardmäßig wird das Profil "DDNS" geladen. Durch folgenden Befehl kann auch ein anderes Profil geladen werden:

~# ddns-updater --profile PROFILNAME

Lizenz

DDNS Updater wurde unter der D-FSL-Lizenz veröffentlicht und ist somit Open-Source. Der Quelltext kann entweder über das Repository oder als Zip-Archiv heruntergeladen werden.

Aktueller Entwicklungsstand

Wer einen Blick auf den aktuellsten Entwicklungsstand werfen oder gar mitarbeiten will, kann das Repository auf GitHub besuchen.