DynDNS mit PowerDNS
Unser PowerDNS haben wir ja bereits angelegt. Das schöne ist, dass Du mit PowerDNS recht schnell und einfach deinen eigenen DynDNS Dienst basteln kannst. Ich selber nutze ein FritzBox an einem 1&1 Anschluss, aber in Verbindung mit der FritzBox ist es einfach super einfach, egal welcher Anbieter :)
Vorbereitung in PowerDNS Admin:
Anlegen eines neuen Users der die DNS-Änderungen vornimmt:


Dem User kannst Du einen beliebigen Benutzernamen geben (dnsupdate) oder was auch immer und ein gescheites Passwort (für meine Beispiel nehmen wir „geheimXd“)
In deinen angelegten Zonen gehst Du oben auf

und aktivierst dort den DynDNS Part für die Domain

und ordnest den neu erstellten User deiner Domain hinzu damit dieser auch berechtigt ist Änderung an der Zone vorzunehmen

Vorarbeiten in PowerDNS erledigt :-)
Wir loggen uns per SSH auf einem Server deiner Wahl ein. Ich habe mir den Ordner /opt/scripts/dyndns angelegt. Hier habe ich 2 Scripts angelegt. Das erste überprüft einfach nur ob sich die IP geändert hat. Sollte sich etwas getan haben tritt das zweite Script in Aktion und ändert die entsprechenden Records.
Script 1 – check_ip.sh
#!/bin/bash
IP=$(dig -4 A +short xxxxxxxxxxxx.myfritz.net @1.1.1.1)
DIFF=$(diff /opt/scripts/dyndns/currentip.txt <(echo "$IP"))
if [ "$IP" ]
then
if [ "$DIFF" = "" ]
then
:
elif [ "$DIFF" != "" ]
then
rm /opt/scripts/dyndns/oldip.txt
mv /opt/scripts/dyndns/currentip.txt /opt/dyndns/oldip.txt
echo "$IP" >/opt/scripts/dyndns/currentip.txt
source /opt/scripts/dyndns/dyndns.sh | mail -s "IP Change" mail@meinedomain.de < /opt/scripts/dyndns/currentip.txt
fi
else
:
fi
Bitte in der Datei check_ip.sh die URL xxxxxxxxxxxx.myfritz.net (Zeile 3) durch deine eigene URL deiner FritzBox anpassen. Diese findest Du eigentlich direkt nach dem einloggen auf der Übersichtsseite. Und natürlich deine eMail Adresse (Zeile 16) anpassen.
Script 2 – dyndns.sh
#!/bin/bash
pub_ipv4=$(dig -4 A +short xxxxxxxxxxxx.myfritz.net @1.1.1.1)
curl "http://dnsupdate:geheimXd@123.123.123.123:8080/nic/update?hostname=meinedomain.de&myip=$pub_ipv4"
curl "http://dnsupdate:geheimXd@123.123.123.123:8080/nic/update?hostname=*.meinedomain.de&myip=$pub_ipv4"
Anpassen:
1. Zeile 3: URL deiner FritzBox wie schon im ersten Script in Zeile 3
2. Zeile 4: User (dnsupdate) und Passwort (geheimXd) wie in PowerDNS-Admin bei dem neu angelegten User vergeben sowie die IP deines ersten (Master) PowerDNS Servers (123.123.123.123) sowie den Hostnamen der aktualisiert werden soll (meinedomain.de)
3. Zeile 5 – siehe Zeile 4, hier muss werden dann auch die A-Records für die Subdomains (*.meinedomain.de) angepasst.
Die Zeile 4 und 5 kannst Du mit weiteren Domains beliebig erweitern :)+
Bitte gib den beiden Scripten noch das Recht mit auch ausgeführt zu werden und lege 2 Dateien an.
chmod +x /opt/scripts/dyndns/check_ip.sh
chmod +x /opt/scripts/dyndns/dyndns.sh
touch /opt/scripts/dyndns/oldip.txt
touch /opt/scripts/dyndns/currentip.txt
Damit Änderungen auch zeitnah gefunden werden noch einen cronjob anlegen der entweder jede Minute (mir reichen alle 2 Minuten) überprüft ob die FritzBox eine neue IP bekommen hat
crontab -e
####
*/2 * * * * /opt/scripts/dyndns/check_ip.sh > /dev/null 2>&1
Fertig ist dein eigener DynDNS Dienst :)