Hier finden Sie Informationen, zur DynDNS-Schnittstelle, mit der automatische Aktualisierungen der A- und AAAA-Records zu Ihren Domains auf unseren DNS-Servern möglich sind.
Updates erfolgen an die folgende URL: https://www.itsdns.de/update.php
Zum Erzwingen der Protokolle IPv4 oder IPv6 stehen alternativ die folgenden zwei URLs zur Verfügung:
Die URL unterstützt dabei die folgenden GET-Parameter:
Nach einem erfolgreichem DynDNS-Update erfolgt die Rückgabe des HTTP-Statuscode 200 und dem Text-Content good 123.123.123.123, wobei natürlich die tatsächliche IPv4- oder IPv6-Adresse ausgegeben wird. War im DNS bereits die aktuelle IP-Adresse hinterlegt wird ebenfalls der HTTP-Statuscode 200 zurückgegen, als Text jedoch nochg 123.123.123.123 ausgegeben.
Fehlte der Anfrage einer der notwendigen oben beschriebenen Paramter erfolgt die Rückgabe des HTTP-Statuscode 400. Dem zurückgegenen Text können weitere Details entnommen werden, welcher der Parameter vermisst wurde.
Stimmen die Zugansdaten, d. h. die E-Mail-Adresse, der Update-Key und der vollständige Hostname nicht mit den auf unserem System hinterlegten Informationen überein, wird dieser Umstand ebenfalls als Text-Information zurückgegen und der HTTP-Statuscode 401 gesendet.
Sollte es beim DNS-Update auf unseren Server-Systemen zu einem Fehler/Problem kommen, wird der HTTP-Statuscode 500 zurückgegeben und Details als Text ausgeben, mit denen Sie sich bei wiederholten Auftreten des Problems gern an uns wenden können.
In einer AVM FritzBox (getestet mit aktueller Firmware 7.x) können Sie unseren DynDNS-Dienst im Bereich Internet > Freigaben > DynDNS wie folgt eintragen:
In einem ZyXEL Speedlink (getestet mit aktueller Firmware auf dem Modell 5501) können Sie unseren DynDNS-Dienst unter Internet > Zusatzfunktionen > Dynamic DNS wie folgt eintragen: (Die Ansicht der Konfigurationsseite muss dafür auf EXPERTE eingestellt sein.)
In einer Telekom Digitalisierungsbox können Sie unseren DynDNS-Dienst unter Internet & Netzwerk >
DynDNS-Client wie folgt eintragen. Wichtig zu wissen ist bei diesem Gerät, dass leider keine Aktualisierung per HTTPS möglich ist, dass heißt
die eingegebenen Zugangsdaten werden leider unverschlüsselt über das Internet übertragen.
Zunächst muss ein neuer DynDNS-Provider angelegt werden:
Bei einer aktuellen IPfire-Version (ab Core-Update 133) wird unser Dienst in der Liste der verfügbaren DynDNS-Dienste angeboten. Sie finden diese Funktion im Menü Dienste unter Dynamischer DNS. Dort muss dan also einfach itsdns.de ausgewählt werden und die Eingabefelder wie folgt ausgefüllt werden:
Bei OPNsense (getestet mit aktueller Version 19.1) können Sie unseren DynDNS-Dienst unter Dienste > Dynamisches DNS wie folgt hinzufügen:
Mit diesem Eintrag erfolgt dann das Update des A-Records, d.h. der IPv4-Adresse. Für die IPv6-Adresse, also zur Aktualisierung des AAAA-Records muss ein weiterer DynDNS-Account hinzugefügt werden: Dabei werden alle Felder nochmals identisch ausgefüllt, lediglich als Anbieter wird stattdessen Custom (v6) ausgewählt.
Damit OPNsense die DynDNS-Updates auch automatisch in intervallen von 15 Minuten durchführt, muss zusätzlich unter System > Einstellungen > Cron folgender Eintrag hinzugefügt werden:
Bei pfSense (getestet mit aktueller Version 2.4.4) können Sie unseren DynDNS-Dienst als Dynamic DNS Client unter Dienste > Dynamisches DNS wie folgt hinzufügen:
Mit diesem Eintrag erfolgt dann das Update des A-Records, d.h. der IPv4-Adresse. Für die IPv6-Adresse, also zur Aktualisierung des AAAA-Records muss ein weiterer DynDNS-Client hinzugefügt werden: Dabei werden alle Felder nochmals identisch ausgefüllt, lediglich als Anbieter wird stattdessen Custom (v6) ausgewählt.
In einem Synology NAS muss zunächst ein benutzerdefinierter DDNS-Dienst angelegt werden. Öffnen Sie dazu in der Systemsteuerung unter Externer Zugriff den Reiter DDNS. Klicken Sie rechts auf den Button Anpassen. Füllen Sie die beiden Felder wie folgt aus:
Anschließend kann der konkrete DDNS-Account hinzugefügt werden, füllen Sie dazu die Felder wie folgt aus:
In einem QNAP NAS (ab Firmware 4.3.6) können Sie unseren DynDNS-Dienst wie folgt innerhalb von "Netzwerk- und virtueller Switch" eintragen:
In einem QNAP NAS mit x86-Prozessor lässt sich alternativ zu obiger Methode auch ein Shell-Script verwenden, dieses muss unterhalb des Verzeichnisses /share/CACHEDEV1_DATA/ gespeichert werden:
#!/bin/bash
# Update-Script für it's DNS, dem DynDNS-Dienst von der IT-Service Stalhut GmbH
# Konfiguration der Zugangsdaten bitter hier anpassen:
user="email@example.com"
host="example.user.itsdns.de"
pass="XXXXXXXXXXXXXXXXXXXXXXXX"
# Ab hier keine Änderungen mehr vornehmen:
dyn_ipv4=`host -t A ${host} | grep -o 'address [0-9.]*' | cut -d ' ' -f 2`
dyn_ipv6=`host -t AAAA ${host} | grep -o 'address [0-9a-f:]*' | cut -d ' ' -f 2`
ext_ipv4=`curl -s https://www.ipv4.itsdns.de/ip.php`
ext_ipv6=`curl -s https://www.ipv6.itsdns.de/ip.php`
if [ "$ext_ipv4" = "" ];then
log_tool -t 1 -a "[it's DNS] Keine IPv4-Internetverbindung."
elif [ "$dyn_ipv4" = "$ext_ipv4" ];then
log_tool -t 0 -a "[it's DNS] A-Record (IPv4) ist aktuell."
elif [ "$dyn_ipv4" != "$ext_ipv4" ];then
log_tool -t 0 -a "[it's DNS] A-Record (IPv4) ist nicht aktuell: Neue IPv4-Adresse = $ext_ipv4"
res="`curl -u ${user}:${pass} "https://www.ipv4.itsdns.de/update.php?hostname=${host}"`"
res_code=`echo "$res" | cut -d ' ' -f 1`
if [ "$res_code" = "good" ] || [ "res_code" = "nochg" ];then
log_tool -t 0 -a "[it's DNS] IPv4-Update war erfolgreich. ($res_code)"
else
log_tool -t 2 -a "[it's DNS] $res"
fi
else
log_tool -t 2 -a "[it's DNS] IPv4-ERROR"
fi
if [ "$ext_ipv6" = "" ];then
log_tool -t 1 -a "[it's DNS] Keine IPv6-Internetverbindung."
elif [ "$dyn_ipv6" = "$ext_ipv6" ];then
log_tool -t 0 -a "[it's DNS] AAAA-Record (IPv6) ist aktuell."
elif [ "$dyn_ipv6" != "$ext_ipv6" ];then
log_tool -t 0 -a "[it's DNS] AAAA-Record (IPv6) ist nicht aktuell: Neue IPv6-Adresse = $ext_ipv6"
res="`curl -u ${user}:${pass} "https://www.ipv6.itsdns.de/update.php?hostname=${host}"`"
res_code=`echo "$res" | cut -d ' ' -f 1`
if [ "$res_code" = "good" ] || [ "res_code" = "nochg" ];then
log_tool -t 0 -a "[it's DNS] IPv6-Update war erfolgreich. ($res_code)"
else
log_tool -t 2 -a "[it's DNS] $res"
fi
else
log_tool -t 2 -a "[it's DNS] IPv6-ERROR"
fi
Dieses Script ist so konzipiert, dass Ereignisse (Erfolg oder Misserfolg) entsprechend im Ereignis-Log des QNAP-Systems auftauchen. Das
heißt über die QNAP-Eigenen funktionen lassen sich auch E-Mail-Benachrichtigungen aktivieren, die bspw. bei einem fehlgeschlagenen
Update ausgelöst werden.
Das Skript lässt sich dann als Cron-Job automatisiert bspw. alle 5 min ausführen. Dazu muss die Datei
/etc/config/crontab entsprechend um folgende Zeile erweitert werden:
*/5 * * * * /share/CACHEDEV1_DATA/scripts/dyndnsupdate.sh
Wichtig: Die Bearbeitung von Cron-Jobs darf bei einem QNAP NAS nicht per crontab -e erfolgen.
Mit folgendem Befel werden die Änderungen in der crontab-Datei übernommen und aktiviert:
crontab /etc/config/crontab && /etc/init.d/crond.sh restart
Für hier nicht aufgeführte Systeme steht das folgende Shell-Script zur Verfügung, das Ihre eigene öffentlichen IPv4- und IPv6-Adresse ermittelt und in unserem DynDNS-System hinterlegt. Dabei findet vorab eine Überprüfung statt, ob sich die eigenen IP-Adressen verändert haben, und nur dann wird tatächlich die Änderung an unser System übermittelt.
#!/bin/bash
# Update-Script für it's DNS, dem DynDNS-Dienst von der IT-Service Stalhut GmbH
# Konfiguration der Zugangsdaten bitter hier anpassen:
user="email@example.com"
host="example.user.itsdns.de"
pass="XXXXXXXXXXXXXXXXXXXXXXXX"
# Ab hier keine Änderungen mehr vornehmen:
dyn_ipv4=`host -t A ${host} | grep -o 'address [0-9.]*' | cut -d ' ' -f 2`
dyn_ipv6=`host -t AAAA ${host} | grep -o 'address [0-9a-f:]*' | cut -d ' ' -f 2`
ext_ipv4=`curl -s https://www.ipv4.itsdns.de/ip.php`
ext_ipv6=`curl -s https://www.ipv6.itsdns.de/ip.php`
if [ "$ext_ipv4" = "" ];then
echo "Keine IPv4-Internetverbindung. Keine IPv4 zum aktualisieren."
elif [ "$dyn_ipv4" = "$ext_ipv4" ];then
echo "DynDNS A-Record (IPv4) ist aktuell."
elif [ "$dyn_ipv4" != "$ext_ipv4" ];then
echo "DynDNS A-Record (IPv4) ist nicht aktuell, Update gestartet: Neue IPv4-Adresse = $ext_ipv4"
curl -u ${user}:${pass} "https://www.ipv4.itsdns.de/update.php?hostname=${host}"
echo .
else
echo "IPv4-ERROR"
fi
if [ "$ext_ipv6" = "" ];then
echo "Keine IPv6-Internetverbindung. Keine IPv6 zum aktualisieren."
elif [ "$dyn_ipv6" = "$ext_ipv6" ];then
echo "DynDNS AAAA-Record (IPv6) ist aktuell."
elif [ "$dyn_ipv6" != "$ext_ipv6" ];then
echo "DynDNS AAAA-Record (IPv6) ist nicht aktuell, Update gestartet: Neue IPv6-Adresse = $ext_ipv6"
curl -u ${user}:${pass} "https://www.ipv6.itsdns.de/update.php?hostname=${host}"
echo .
else
echo "IPv6-ERROR"
fi
Dieses Script lässt sich dann als Cron-Job automatisiert bspw. alle 5 min ausführen.
Getestet wurde dieses Script auf einer aktuellen Ubuntu-Installation (Version 18.04), voraussetzung sind aber lediglich die verschiedenen
Kommandozeilen-Tools host (Teil der Bind-Utils), curl (Version 7.x), grep
(Version 2.x) und cut (Version 8.x)