Was ist DDNS?
Dynamisches DNS oder DDNS ist eine Technik, um Domains im Domain Name System (DNS) dynamisch zu aktualisieren. Der Zweck ist, dass ein Computer (bspw. ein PC oder ein Router) nach dem Wechsel seiner IP-Adresse automatisch und schnell den dazugehörigen Domaineintrag ändert. So ist der Rechner immer unter demselben Domainnamen erreichbar, auch wenn die aktuelle IP-Adresse für den Nutzer unbekannt ist. Wikipedia
Der populärste Vertreter ist sicherlich Dyn.com (früher auch DynDNS.org), jedoch gibt es das gratis Service schon länger nicht mehr. Darum gibt es auch viele freie Angebote die Versuchen den Platz einzunehmen, eines davon ist Duck DNS. Es verspricht eine einfach Nutzung und hat IPv4 und IPv6 Support. Der unbezahlte Account kann bis zu 5 Domains mit IPs versehen und das über einen einfachen HTTPS Post.
Damit war der Weg bereit für eine Implementierung von Duck DNS auf einer NextGent Firewall F von Barracuda und ich war überrascht wie einfach und schnell sie zu realisieren war.
Schritt für Schritt Anleitung
- Auf DuckDNS.org einen Account anlegen
- Domain hinzufügen
- Duck DNS Token notieren
- Per SSH auf die die NextGen Firewall verbinden
- Ein neues Verzeichnis anlegen mit
mkdir /root/duckdns/
- Mittels
cd /root/duckdns/
ins das neue Verzeichnis wechseln - Eine neue Datei anlegen
touch duck.sh
- Mit einem Editor öffnen
nano duck.sh
-
Folgenden Inhalt einfügen, man kann ich nach folgenden Schema selbst zusammenstellen oder über den Menüpunkt Install > linux cron auf der Duck DNS Seite erzeugen lassen
echo url="https://www.duckdns.org/update?domains=[mydomain]&token=[myToken]&ip=" | curl -k -o ~/duckdns/duck.log -K -
- Das Script ausführbar machen (und testen)
chmod 700 duck.sh
- Damit das Script regelmäßig ausgeführt wird per NextGen Admin Configuration > Advanced Configuration > System Scheduler einen neuen Cron Job unter Daily / Intrahour einführen.
- Ein Log File wird in das selbe Verzeichnis wie das Script geschrieben und die erfolgreiche Ausführung des Scripts findet man im System Log (Box > System > cron). [