DynDNS ipv6 Präfix update ohne Fritzbox

Hallo,

so wie ich es verstanden habe ist ein automatisches ipv6 Präfix Update nur mit der Fritz box möglich?

Ich habe hier alle Komponenten von ubiquiti ist dies auch irgendwie über die UDM-Pro möglich?

Oder gibt es eine Möglichkeit das Problem mit einem LXC Container in Proxmox zu lösen, vielleicht ein Helper Script?

Bin für jeden Tipp sehr dankbar.

Zunächst brauchst du die Präfix-Länge. Da diese in der Regel statisch ist (Internet Anschluss/ Tarif), musst du sie nur einmalig nachschauen um sie in Erfahrung zu bringen.

Als nächstes musst du ein Verfahren haben, um regelmäßig an eine Adresse aus dem Subnetz kommen, das dir zugewiesen wurde. Dazu könnte dir ein echo ip Service helfen, z.B. https://www.ipify.org/

Nachdem du jetzt eine IP aus deinem Subnetz und die Präfix-Länge hast, kannst du ausrechnen, wie dein Subnetz aussieht. Dabei kann dir ipcalc helfen.

Eine Automatisierung ist dann nur noch bash-Scripting.

Achtung: Das Script ist ungetestet und dient nur um die Idee zu verdeutlichen!

#!/usr/bin/env bash

# configuration
PREFIX_LENGTH=56
IPV64_TOKEN="1235"
DOMAIN="foo.ipv64.net"
PREFIX_ONLY=1
UPDATER_CACHE="/tmp/updater.txt"
UPDATE_INTERVAL=30
# /configuration

# translate config (human readable to machine)
if [ $PREFIX_ONLY -gt 0 ]; then
  PREFIX_ONLY="&onlyprefix"
else
  PREFIX_ONLY=""
fi

if [ ! -z "${DOMAIN}" ]; then
  DOMAIN="domain=${DOMAIN}"
fi


touch "${UPDATER_CACHE}"

while true; do
  # determine runtime variables
  CURRENT_IP=$(curl -s 'https://api6.ipify.org?format=json' | jq -r '.ip')
  NETWORK=$(ipcalc -j -pn "${CURRENT_IP}/${PREFIX_LENGTH}" |  jq -r '.NETWORK')
  PREFIX="${NETWORK}/${PREFIX_LENGTH}"

  IPV64="https://ipv64.net/nic/update?ipv6prefix=${PREFIX}${PREFIX_ONLY}${DOMAIN}"

  # ensure update only in case the ip has changed
  OLD_PREFIX=$(cat "${UPDATER_CACHE}")
  if [ "${OLD_PREFIX}" != "${PREFIX}" ]; then
    # try to update, refresh the cache in case the update succeeded
    if curl -sSL -u "none:${IPV64_TOKEN}" "${IPV64}"; then
      echo "${PREFIX}" > "${UPDATER_CACHE}"
    fi
  fi

  # idle
  sleep $UPDATE_INTERVAL
done

Nein. Es geht z.B. auch mit meiner pfsense.

Kommt wohl sehr darauf an, ob die UDM-Pro auch die Möglichkeit bietet eine Custom-Defined also benutzerdefinierte Update-URL zu verwenden, so wie ich es in der pfsense machen kann. Da ich aber keine UDM-Produkte verwende, entzieht sich das meiner Kenntnis.

Das lieber @CalthaPalustris halte ich für den vollkommen falschen Ansatz.

Die Länge des vom ISP zugewiesenen Präfixes ist vollkommen irrelevant. Was man braucht ist doch der Präfix, den der Router oder die Firewall dem LAN-Segment, um das es geht, zugewiesen hat. Sowohl die Fritten, wie auch meine pfsense bilden aus dem mir vom ISP zugewiesenen /56-Präfix einen oder mehrere /64-Präfix(e) für das oder die LAN-Segmente. Siehe als Beispiel:


Wie man sieht weist die Fritte dem Heimnetz und dem Gastnetz jeweils einen /64-Präfix zu, der aus dem vom ISP gelieferten /56-Präfix abgeleitet wurde. Anderes wäre zwar möglich, würde aber nur dann Sinn ergeben, wenn im LAN der Fritte noch ein weiterer Router oder eine Firewall wären, die ihrerseits Subnetze bilden und Präfixe delegieren sollten.

Somit nutzt der ISP-Präfix einem nichts. Man benötigt nur den vom Router / der Firewall generierten Präfix des LAN-Segments, in dem sich die Server befinden, die man per Präfix-Update erreichbar machen will. Bei ipv64 kann man zudem nur einen Präfix je Domain updaten. Somit müssen sich die Server in einem gemeinsamen LAN-Segment befinden oder man muss unterschiedliche Domains verwenden. Je eine pro LAN-Segment.

Dann prüfe doch zunächst einmal ob die UDM benutzerdefinierte Update-URL’s ermöglicht. Dann könnte man versuche eine passende Update-URL zu „basteln“.

Ich erinnere nochmal an die Frage des Themen-Erstellers: DynDNS ipv6 Präfix update ohne Fritzbox

Basierend auf der Frage und basierend darauf, dass gerade keine weiteren Informationen zu seinem Setup gegeben wurden, würde ich annehmen, dass es @Elektroniker86 um das vom Provider zugewiesene Präfix geht.

Andererseits müsste das in deinem Szenario ganz genauso funktionieren:

Die Präfix-Länge dürfte auch da eher statisch sein.
Einzig zu beachten ist, dass der Updater als Client in dem passenden Subnetz sitzen muss.

Guten Abend!

Vielen Dank für eure Antworten. Ja mir geht es um das Präfix vom ISP das sieht so aus:

Also man kann bei Unifi bei DynDNS benutzerdefiniert auswählen sieht dann so aus:

Das habe ich laut Anleitung von ipv64.net für Unifi so konfiguriert.

Es ist einfach als man denkt. Auch die Unifi macht in aller Regel aus einem /56 oder /59 für jedes einzelne Netz ein /64..

Jedes Gerät in dem jeweiligen IPv6-Netz kann einfach den Aufruf starten ipv64.net/update…..&ipv6prefix=PREFIX&onlyprefix

Fertig.

offenbar unterliegst du gerade einem Denkfehler.

Mit einem vom ISP zugewiesen Präfix, welches kein /64-Präfix ist, kann man für ein Präfix-Update bei ipv64 nichts anfangen.Warum nicht? Ganz einfach:

Eine IPv6-Adresse besteht aus zwei Teilen. Dem Network Prefix (Präfix oder Netz-ID) und dem Interface Identifier (Suffix, IID oder EUI). Der Interface Identifier hat genau 64 Bit (siehe z.B.: Elektronik-Kompendium). Eine vollständige IPv6-Adresse hat 128 Bit. Somit müssen denknotwendig weitere 64 Bit als Präfix an ipv64 übermittelt werden, damit daraus die vollständigen IPv6-Adressen der Server in der DMZ der UDM-Pro von @Elektroniker86 gebildet werden können.

Leider fehlt bei deiner Unifi etwas das es bei meiner pfsense bei der Einrichtung einer benutzerdefinierten Update-URL gibt: die Optionen „Interface to monitor“ und „Interface to send update from“. Du hast ja offenkundig eine Zone DMZ. In dieser sind die Server. Jetzt fehlt bei dir in der Unifi eben leider die Option zu sagen: sende das DynDNS-Update aus der DMZ und monitore auch Änderungen des Präfixes in der DMZ.

Wenn du diese Option nicht noch irgendwo findest, wird die von @Dennis_Admin vorgeschlagene Lösung die beste Option sein.

Nachtrag:
@CalthaPalustris Hier nochmal zur Verdeutlichung eine Abbildung aus dem Elektronik-Kompendium die genau zeigt worauf ich hinaus will. Diese Abbildung zeigt doch deutlich, dass bei einem /56-Präfix des ISP noch das 8 Bit Subnet.Präfix fehlen würde, um zusammen mit dem 64 Bit Interface Identifer auf eine gültige 128 Bit IPv6-Adresse zu kommen.

Ich glaube nicht das es solch eine Funktion momentan gibt.

Und wie setze ich diese Option dann um ?

Gibt es da ein Skript das ich auf meinem Server in der Zone ausführen kann ?

Oder wie kann die Lösung in meinem Fall aussehen?

Ich bin Elektroniker von Beruf und mach zwar mit Linux rum das ist aber eher Basic Wissen und benötige dazu ein wenig Hilfe.

Vielen Dank vorab!

Nun die Lösung wurde dir von @Dennis_Admin bereits genannt.

Die Zauberformel liegt in der Ergänzung der Update-URL um das &onlyprefix. In den DynDNS Helper // Anleitungen findest du Beispiele. Am einfachsten ist für dich mutmaßlich das unter Raspberry Pi / Linux stehende Update per curl und crontab. Auszuführen auf einem beliebigen Linux-Gerät in deiner DMZ.

So sähe eine funktionierende CURL-Update-URL aus:

curl -sSL "https://ipv64.net/nic/update?key=deinSecurityLevel2Update-KEY&ipv6prefix=auto&onlyprefix"

Nachtrag: Zum vorab testen kannst du curl -sSL "https://ipv64.net/nic/update?key=deinSecurityLevel2Update-KEY&ipv6prefix=auto&onlyprefix" ganz einfach per ssh im Terminal eines Linux-Gerätes in deiner DMZ nutzen.

Das mag schön und richtig sein. War aber doch nicht die formulierte Frage, oder?


Wie ich bereits geschrieben habe, wäre aber auch das kein Problem: DynDNS ipv6 Präfix update ohne Fritzbox - #4 von CalthaPalustris

Bringt der Update-Client selbst seine IP in Erfahrung, dann hat er doch eine vollständige IPv6 Adresse in diesem Subnetz, richtig?

Er hat also einmal:

xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx

Wenn er jetzt (Network Prefix (/56) + Subnet Prefix (+8 bit)) benötigt, dann weiß er aber auch:

| Network       |   | Interface       |
| Prefix        |   | Identifier      |
xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx
                 ^^
                 Subnet Prefix

Entsprechend bei dem Script PREFIX_LENGTH auf 64 setzen. Dann hat er doch das, was du sagst, was er braucht?

Falls du mit der formulierten Frage die Ausgangsfrage von @Elektroniker86 meinen solltest, so war diese ohnehin leicht am Thema vorbei. Mit einer Fritte hat das ganze nix zu tun, hat @Elektroniker86 ja nicht, stattdessen eben eine UDM-Pro. Diese UDM-Pro hat offenbar mehr als nur ein LAN-Segment. Eines davon wird bei @Elektroniker86 DMZ genannt.

Für seine DMZ benötigt @Elektroniker86 den IPv6-Präfix um diesen bei ipv64 aktuell zu halten. Jetzt kann man @Elektroniker86 natürlich anbieten dein tolles, aber eben auch aufwändigen, Script zu schreiben oder aber auch einfach auf die DynDNS Helper // Anleitungen und CURL verweisen. Problem auf einfache Weise gelöst, denn es ist lediglich eine einzige Zeile in der Crontab, also empfehlenswert besonders wenn man wie @Elektroniker86 schon den Hinweis von @Dennis_Admin nicht so richtig verstanden hat und laut eigener Aussage nur Linux Basiswissen hat.

Den curl Command direkt in die crontab zu schreiben ist keine gute Herangehensweise. Man würde sowieso in die Crontab nur einen Script-Aufruf packen und den curl entsprechend in ein Script packen.

Das “aufwändige” Script von mir macht, wenn du genau schaust, aber eben auch noch ein bisschen mehr.

  1. Es ermöglicht auf Updates in weniger als 1 Minute (cron Limitierung) zu reagieren.
  2. Dennis Server wird nicht bei jedem Scriptaufruf mit unnötigen Requests penetriert, sondern nur dann, wenn auch wirklich ein Update notwendig ist.

Vielen Dank für die vielen Ansätze, jedoch weiss ich jetzt auch nicht genau was ich machen soll….

Gibt es nicht vielleicht ein Proxmox Helper Script oder ein open source Projekt was ich auf meinem Proxmox aufsetzen kann wo man sowas eventuell in einem Webif konfigurieren kann?

geht mir genau so. Weiß gerade nicht ob ich lachen oder weinen soll …

Drei Personen (inkl. Dennis) haben dir Wege aufgezeigt dein Problem zu lösen und du weißt nicht was du machen sollst - unfassbar.

Mutmaßlich weißt du das nicht weil nichts davon einfach nur zwei oder drei Mausklicks sind. Was ssh ist und wie man das nutzt sollte man schon wissen. insbesondere wenn man Linux-Systeme betreibt und auch Proxmox ist so ein auf Debian basierendes Linux-System.

Ich meinte eigentlich damit das ich mir unsicher bin welche Lösung für mich jetzt passt da es ja unterschiedliche Lösungsansätze gibt und einer schreibt, das es nicht der richtige Weg ist. Das hat mich verunsichert.

Das jetzt als unfassbar abzutun finde ich ein bisschen übertrieben.

Ich schau mir das alles in Ruhe nochmal an und schau wie ich klar komme.

Vielen lieben Dank