IPv6 an dynv6.com vom Raspberry aus updaten

Avenger84

Lt. Commander
Registriert
Feb. 2008
Beiträge
1.492
Hallo, ich habe mir eine Domain *.dynv6.com eingerichtet und dort die IPv6 vom Raspberry eingetragen, das funktioniert wunderbar.

Ich wollte die IPv6 gerne durch den Raspberry minütlich updaten lassen per conjob mit dem token.

Dazu habe ich folgende Anleitung befolgt: https://github.com/KaitoCross/Dynv6-cronjob
bzw. das Video:

natürlich nur IPv6, nicht IPv4.

Leider klappt das nicht.

meine Domain wird nicht geupdatet, obwohl der cronjob minütlich läuft.
Leider kann ich nicht nachvollziehen wo es hängt/klemmt.

Danach habe ich noch das Skript probiert:
https://gist.github.com/thomasschaeferm/bb672373b271a3f9168fcdd530da94e6

mit
Code:
*/1 * * * * token=### /root/dynv6.sh ***.dynv6.net > /dev/null

klappt auch nicht.
in /root war natürlich die Datei

Habe Debian 9 drauf.
 
Falls eine Fritzbox im Einsatz ist, bietet sich MyFritz an ... da übernimmt die FB auch für Clienten das Update der IPv6 Adressen.

Was passiert, wenn Du es manuell versuchst, also ohne Cron?
 
Myfritz klappt nicht, da es nur die IPv6 der Box weiter gibt.

Wenn ich für den Raspberry eine "dummy" http:// TCP Myfritz Freigabe einrichte, dann klappt auch nur IPv4, IPv6 nicht.
Habe allerdings noch Dualstack, angeblich soll es bei DS-lite so klappen - kann ich noch nicht testen.

Bei DS-lite nimmt die Fritzbox automatisch nur die IPv6-Adressen. Das siehst du ja auch an meinen Beispielen. Bei Dualstack-Anschlüssen macht die Fritzbox IPv6 + IPv4+Portweiterleitung, was mitunter Mist ist, z.B. Port 80 für zwei Geräte - mit IPv6 kein Problem, mit IPv4 schon.


Brauche UDP für Wireguard.

Kannst du mir sagen wie ich das *.sh manuell ausführe ?
einfach
Code:
token=### /root/dynv6.sh ***.dynv6.net > /dev/null
eintippen ?
 
Ich bin gerade mit bash nicht auf der höhe, aber du musst nur deine aktuelle IPv6 Adresse am PI herausfinden und die Webadresse aufrufen.

https://dynv6.com/api/update?token=[deintoken]&ipv4=&ipv6=[deineIPv6Adresse]&hostname=[deinDNS]

Durch das leerlassen von IPv4 wird die nicht eingetragen und du kannst den Cleint auf deiner Fritzbox eintragen, die dann nach Verbindungsaufbau einmal aktualisiert. Damit hast du in der Zeit wo dein Internet neu startet bis das Script auf dem PI läuft kurz die falsche IPv6 Adresse, aber die IPv4 wird dann von der Box aktualisiert.
 
Kurze Frage: muss ich im Skript
https://gist.githubusercontent.com/...27630e25e47d50066d65687bd0c6dd266e83/dynv6.sh bzw. auch die anderen beiden noch was ändern

wenn ja kann es nicht funktionieren, habe da nix geändert


Code:
#!/bin/sh -e
hostname=$1
device=$2
file=$HOME/.dynv6.addr6
[ -e $file ] && old=`cat $file`

if [ -z "$hostname" -o -z "$token" ]; then
  echo "Usage: token=<your-authentication-token> [netmask=64] $0 your-name.dynv6.net [device]"
  exit 1
fi

if [ -z "$netmask" ]; then
  netmask=128
fi

if [ -n "$device" ]; then
  device="dev $device"
fi
address=$(ip -6 addr list scope global $device | grep -v " fd" | sed -n 's/.*inet6 \([0-9a-f:]\+\).*/\1/p' | head -n 1)

if [ -e /usr/bin/curl ]; then
  bin="curl -fsS"
elif [ -e /usr/bin/wget ]; then
  bin="wget -O-"
else
  echo "neither curl nor wget found"
  exit 1
fi

if [ -z "$address" ]; then
  echo "no IPv6 address found"
  exit 1
fi

# address with netmask
current=$address/$netmask

if [ "$old" = "$current" ]; then
  echo "IPv6 address unchanged"
  exit
fi

# send addresses to dynv6
$bin "http://dynv6.com/api/update?hostname=$hostname&ipv6=$current&token=$token"
$bin "http://ipv4.dynv6.com/api/update?hostname=$hostname&ipv4=auto&token=$token"

# save current address
echo $current > $file

könnt ihr mir bitte rot markieren was geändert werden muss, bin zu blöd, denke mindestens die letzte Zeile
 
Zuletzt bearbeitet:
Wenn ich mich richtig erinnere reicht das was @cloudman geschrieben hat.

Einmal
chmod +x /root/dynv6.sh
damit du das Script ausführen kannst und dann als Command
token=### /root/dynv6.sh ***.dynv6.net
für das Update.
Mit token=### vor dem Script (gehört aber zum gleichen Befehl) setzt du die Variable token für den Aufruf des Scripts und ***.dynv6.net übergibt deinen Hostnamen als Parameter (warum auch immer die das nicht beides als Parameter machen, ber egal).
Ich hätte zumindest den Token auch als Parameter in das Script eingebaut, damit das einheitlicher ist...aber wie gesagt: Mit Bash scripts bin ich momentan nicht auf der Höhe...

Das Script setzt dann automatisch deine IPv4 und IPv6 Adresse.
 
ich habe Zeile 8 entsprechend geändert mit meinem Token + Adresse, dann chmod +x ... dann token .... -> darauf hin kam die Meldung dass die IPv6 Adresse sich nicht geändert hat.

Habe die FB neugestartet und einen Cronjob angegelgt, nun klappt es.

k.A. ob es an Zeile 8 oder an chmod +x ... lag
 
Ohne chmod +x ist es keine ausführbare Datei .. ohne das kann es nicht gehen :=) In Zeile 8 müssen unabhängig natürlich deine Daten drin stehen, die sind ja für jede Person/Domain anders.
 
Avenger84 schrieb:
Myfritz klappt nicht, da es nur die IPv6 der Box weiter gibt.
Nee, geht einwandfrei ... gerade mal ausprobiert:

xyz.myfritz.net -> IPv6 meiner Fritzbox
pc.xyz.myfritz.net -> IPv6 meines PC

IPv4 ist eh immer die gleiche
 
d2boxSteve schrieb:
In Zeile 8 müssen unabhängig natürlich deine Daten drin stehen, die sind ja für jede Person/Domain anders.
In Zeile 8 wird nur ausgegeben, wie der Befehl genutzt werden soll, falls man den falsch eingibt (ohne Token oder Hostname). Eine Änderung an der Stelle bringt nichts :)
 
Also lag es nur an chmod +x :freak:

@till69 k.A. bei mir klappt es nicht
kannst du mal einen Screenshot von deiner Freigabe machen (anonymisiert)
stört mich sowieso dass man da mit einer dummy Freigabe (http:// TCP) fuschen muss.
 
Zuletzt bearbeitet:
Wie wichtig ist Dir der VPN Zugang? In vielen öffentlichen Netzen ist UDP komplett geblockt (z.B. bei jedem Fritzbox-Gastzugang in Default-Einstellung), da geht nix mit IPsec oder Wireguard. Da hilft in der Regel dann nur OpenVPN über TCP Port 443/993/995.

Die IPv6 Myfritz-Freigabe geht einwandfrei, sofern die richtige Interface-ID angegeben ist.
 
Primär ist das WG Netz Zuhause<->Büro wegen Datensicherung wichtig.
Mit den Gastzugängen weiß ich.

Im Moment haben wir eine feste IPv4 (ohne IPv6) - das ist für Wireguard sehr angenehm, der Tunnel steht immer.
Zuhause DS.

Wenn dann demnächst Dt.Glasfaser mit DS-lite kommt, muss ich den Tunnel über IPv6 laufen lassen.
Jetzt habe ich nur noch das Problem, dass bei dyndns Adressen WG nicht wieder prüft ob sich die IP hinter dem dyndns geändert hat.

Ich weiß nicht wie oft DG die IPv6 ändert.
DG sagt jeden Tag, im Netz ließt man von fast nie.

Eine feste IPv6 gibt´s nicht (auch nicht gegen Bezahlung) und die Businessanschlüsse mit fester IPv4 fangen bei 297€ p.M. an - viel zu teuer.

Sonst müsste man WG halt 1-mehrmals am Tag neustarten lassen per Skript.

Das Skript was die IP abfragt funktioniert wohl nur wenn man einen einzigen Peer hat, habe aber mehrere..
 
Habe mir eine Anleitung geschrieben (aus der Banana Pi Anleitung), falls dies hier noch mal Jemand per Suche findet:

1. wget https://gist.githubusercontent.com/...27630e25e47d50066d65687bd0c6dd266e83/dynv6.sh

-> dynv6.sh wird ins /home/pi Verzeichnis geladen


2. nano dynv6.sh -> Zeile 45 $bin "http://ipv4... löschen (nur IPv6 soll übertragen werden)


3. Skript ausführbar machen: chmod +x dynv6.sh
testen -> token=############ ./dynv6.sh ####.dynv6.net
(kann direkt von dynv6.com -> Instructions kopiert werden)


4. crontab -e -> */2 * * * * token=######### ./dynv6.sh ####.dynv6.net >/dev/null 2>&1
-> /2 = alle 2 Minuten wird geupdatet


5. Überprüfen mit: grep CRON /var/log/syslog
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: montragon, Dante2000, icerain und eine weitere Person
Zurück
Oben