- Mitglied seit
- 02. Apr 2014
- Beiträge
- 292
- Punkte für Reaktionen
- 22
- Punkte
- 24
Heute habe ich mich mit dem Problem beschäftigt, dass ja nach dem Update auf DSM 7 der DDNS Updater 2 offenbar nicht mehr funktioniert. Das ist für mich besonders tragisch, da ich von meinem Provider eine lokale IPv4 bekomme und eine öffentliche IPv6 und somit mein NAS nur per IPv6 von ausserhalb meines Netzwerkes erreichbar ist. Naja vielleicht noch per QuickConnect, was ich aber nicht dauerhaft benutzen möchte.
Also habe ich mich mit dem DDNS der Synology beschäftigt. Bei einem neuen Eintrag sehe ich beide IP-Adressen.
Das sieht vielversprechend aus, dachte ich. Habe meine Daten eingetragen, Verbindungstest ok. Allerdings wird nur die IPv4 beim DynDNS-Provider (für mich Strato) gesetzt.
Neuer Versuch, diesmal die IPv4 im DDNS Fenster auf 0.0.0.0 gesetzt. Sah wieder super aus.
Es bleibt nur die IPv6 Adresse im Dialog übrig. Wieder die Verbindungsdaten eingetragen, aktiviert und ... Netzwerkfehler. Es wird gar keine IP in die Query eingetragen :-(
Ob das Problem bei mir liegt oder bei Synology kann ich leider nicht herausfinden. Auch weiß ich nicht, ob das Problem unter DSM 7 noch existiert.
Also habe ich mal ein wenig über Skripte recherchiert, die sich mit DDNS befassen. Ich habe (hoffe ich) eine Lösung per Taskmanager mit einem Shell-Skript gefunden / probiert. Ob es stabil ist und tut was es soll, kann ich nur durch probieren über die Kommandozeile sagen: es scheint zumindest das zu tun was es soll: es setzt bei Strato meine IPv6 Adresse in meine dort gemietete Domain.
Für alle Interessierten und diejenigen, die sich besser mit Netzwerk, IPv6 und insbesondere Unix-Skripting auskennen hier der Code. Ich hoffe, dass es jemandem hilft oder dass es konstruktive Anmerkungen dazu geben wird. Bitte wohlwollend prüfen und gerne Anmerkungen in diesem Thread. Danke!
Im Aufgabenplaner habe ich einen neue Aufgabe angelegt (benutzerdefiniertes Skript". Dieses wird alle 15 min aufgerufen. Da ich mir die letzte (hoffentlich erfolgreich) gesetzte IPv6 in einer Datei merke, weiß ich, ob die Adresse upgedatet werden muss.
Ich freue mich auf eure Anmerkungen!
Also habe ich mich mit dem DDNS der Synology beschäftigt. Bei einem neuen Eintrag sehe ich beide IP-Adressen.
Das sieht vielversprechend aus, dachte ich. Habe meine Daten eingetragen, Verbindungstest ok. Allerdings wird nur die IPv4 beim DynDNS-Provider (für mich Strato) gesetzt.
Neuer Versuch, diesmal die IPv4 im DDNS Fenster auf 0.0.0.0 gesetzt. Sah wieder super aus.
Es bleibt nur die IPv6 Adresse im Dialog übrig. Wieder die Verbindungsdaten eingetragen, aktiviert und ... Netzwerkfehler. Es wird gar keine IP in die Query eingetragen :-(
Ob das Problem bei mir liegt oder bei Synology kann ich leider nicht herausfinden. Auch weiß ich nicht, ob das Problem unter DSM 7 noch existiert.
Also habe ich mal ein wenig über Skripte recherchiert, die sich mit DDNS befassen. Ich habe (hoffe ich) eine Lösung per Taskmanager mit einem Shell-Skript gefunden / probiert. Ob es stabil ist und tut was es soll, kann ich nur durch probieren über die Kommandozeile sagen: es scheint zumindest das zu tun was es soll: es setzt bei Strato meine IPv6 Adresse in meine dort gemietete Domain.
Für alle Interessierten und diejenigen, die sich besser mit Netzwerk, IPv6 und insbesondere Unix-Skripting auskennen hier der Code. Ich hoffe, dass es jemandem hilft oder dass es konstruktive Anmerkungen dazu geben wird. Bitte wohlwollend prüfen und gerne Anmerkungen in diesem Thread. Danke!
Bash:
##=============================================================================================
## DDNS Script
##
## Aktuelle IPv6 der Synology ermitteln ip -6 addr show dev <interface> scope global dynamic
##
## https://ihredomain.de:DynDNS-Passwort@dyndns.strato.com/nic/update?hostname=subdomain.ihredomain.de&myip=192.XXX.X.X,2003:8106:1234:5678:abcd:ef01:2345:6789
##
##=============================================================================================
user='<meinuser>'
password='<meindyndnspasswort>'
hosts='<meinhost1>,<meinhost2>,<meinhost3>'
interface='<meinnetzinterface>'
## ich habe ein Bond, das ich hier mit bond0 angegeben habe
last_ipv6_file='/volume1/homes/admin/lastipv6.log'
last_cmd6_file='/volume1/homes/admin/lastcmd6.log'
updateurl="https://${user}:${password}@dyndns.strato.com/nic/update?hostname=${hosts}&myip="
outsideipv6="$(ip -6 addr show dev ${interface} scope global dynamic| sed -e's/^.*inet6 \([^ ]*\)\/.* scope global.*$/\1/;t;d')"
if [[ -f ${last_ipv6_file} ]]; then
lastipv6=$( cat ${last_ipv6_file} )
fi
if [[ -z "${lastipv6}" ]] || [[ "${lastipv6}" != "${outsideipv6}" ]] || test $( find "${last_ipv6_file}" -mmin +10080 ); then
echo $(date '+%Y.%m.%d %H:%M:%S') "=============================================================" >> ${last_cmd6_file}
echo $(date '+%Y.%m.%d %H:%M:%S') "Start des DynDNS Aufrufes - IPv6 changed or over one week old" >> ${last_cmd6_file}
echo $(date '+%Y.%m.%d %H:%M:%S') ${updateurl}${outsideipv6} >> ${last_cmd6_file}
curlout="$(ip -6 addr show dev ${interface} scope global dynamic)"
echo $(date '+%Y.%m.%d %H:%M:%S') "$curlout" >> ${last_cmd6_file}
curlout="$( curl "${updateurl}${outsideipv6}" )"
echo $(date '+%Y.%m.%d %H:%M:%S') "$curlout" >> ${last_cmd6_file}
echo ${outsideipv6} > ${last_ipv6_file}
echo $(date '+%Y.%m.%d %H:%M:%S') "Ende des DynDNS Aufrufes" >> ${last_cmd6_file}
fi
Im Aufgabenplaner habe ich einen neue Aufgabe angelegt (benutzerdefiniertes Skript". Dieses wird alle 15 min aufgerufen. Da ich mir die letzte (hoffentlich erfolgreich) gesetzte IPv6 in einer Datei merke, weiß ich, ob die Adresse upgedatet werden muss.
Ich freue mich auf eure Anmerkungen!
Zuletzt bearbeitet: