Metainformationen zur Seite
Dies ist eine alte Version des Dokuments!
Dynamische DNS
Szenario: Man von daheim auf einen Schulserver zugreifen. Die Schule hat nur einen einfachen Internetzugang, dessen IP-Adressen sich dynamisch (i.d.R. täglich) ändern. Um ihn erreichen zu können sorgt man dafür, dass die neuen Adressen an einen geeigneten Dienst (früher: dyndns.com, jetzt eher andere Anbieter wie z.B. spDYN.de) gemeldet werden. Dann kann man den Schulserver unter der beispielhaften Adresse serviceabcschule.my-firewall.org erreichen, da dieser DNS-Name immer mit den aktuellen Adressen aufgelöst wird.
Tipp
Will man das Kollegium oder gar die Eltern- und Schülerschaft auf den Server lassen, so sollte man den DNS-Namen des DynDNS-Dienstes nicht veröffentlichen, sonder einen zusätzlichen DNS-Eintrag bei der Schuldomäne vornehmen., z.B. service.abc-schule.edu. Dieser Eintrag muss vom Typ CNAME mit dem Ziel serviceabcschule.my-firewall.org sein.
Aktualisierung
IPv4-Adressen lässt man eher vom Router aktualisieren. Ansonsten gibt es viele Anleitungen für Rechner bei dynamisch vergebenen IP-Adressen. Selten findet man aber eine, die sich mit dem Problem beschäftigt, dass man sowohl IPv4, als auch IPv6-Adressen zuweisen möchte. Bei meiner letzten Recherche im Jahr 2019 fand ich nur wenige kostenlose Dienste, die das anbieten. Ergebnis sind u.a. die beiden folgenden Skripte, die unter Linux auf dem Gateway-Server in der DMZ laufen (wenn curl installiert ist). Sie werden bei mir alle 5 Minuten aufgerufen und überprüfen die aktuellen IP-Adressen und melden diese nur bei Adressänderung an den Dienst. Vielleicht reicht auch eine Überprüfung morgens um 6 Uhr.
Funktionsfähige Datei für SPdyn
Hier die besser funktionierende mit dem Anbieter spDYN.de
#!/bin/sh ## Konfiguration SPdyn tokenv4='nmxx-yyyy-zzcj' tokenv6='jhvv-wwww-uuah' hostname='serviceabcschule.my-firewall.org' ## Und los: aktipv6=`ip addr | grep "inet6 2" | awk '{print $2}' | awk -v FS='/' '{print $1}'| head -n1` content=1234 content=$(cat /tmp/dynv6.state) #echo ${aktipv6} vs ${content} if [ "${aktipv6}" != "${content}" ];then aktipv4=`/usr/bin/curl "http://checkip4.spdyn.de"` echo `date` "setzen: IPv4: ${aktipv4} IPv6: ${aktipv6}" /usr/bin/curl "https://${hostname}:${tokenv6}@update.spdyn.de/nic/update?hostname=${hostname}&myip=$aktipv6" echo ${aktipv6} > /tmp/dynv6.state #/usr/bin/curl "https://${hostname}:${tokenv4}@update.spdyn.de/nic/update?hostname=${hostname}&myip=$aktipv4" /usr/bin/curl --ipv4 "https://${hostname}:${tokenv4}@update.spdyn.de/nic/update?hostname=${hostname}&myip=192.168.0.1" service apache2 restart else echo `date` "-> Keine Aenderung in der IP-Adresse" fi
Funktionsfähige Datei für DynV6
Der Dienst dynv6.de ist/war? nur ein Hobbyprojekt. Mit folgendem einfacheren Skript ließ es sich erfolgreich nutzen:
#!/bin/sh ## Konfiguration: token='PMPxxxxxxxxxyyyyyyyyyyyyzzzzzzzzzL' hostname='unsergatewayserver.dynv6.net' ## Und los: aktstate=`ip addr | grep inet6 | md5sum | awk '{print $1}'` content=1234 content=$(cat /tmp/dynv6.state) #echo $aktstate vs $content if [ "$aktstate" != "$content" ];then date /usr/bin/curl "https://ipv4.dynv6.com/api/update?token=${token};hostname=${hostname};ipv4=auto" /usr/bin/curl "https://ipv6.dynv6.com/api/update?token=${token};hostname=${hostname};ipv6=auto" echo $aktstate > /tmp/dynv6.state #else # date # echo Keine Aenderung in der IP-Adresse fi