Heute morgen habe ich eher zufällig bemerkt das mein ISP nach Jahren wohl irgendwann mal mein IPv6 Präfix geändert hat. Technisch gibt es dafür keine Notwendigkeit das es IPv6 Adressen, im Gegensatz zu IPv4 Adressen, wirklich wie Sand am Meer gibt.
Aber irgendwie muss man ja den Business Kunden das Geld aus der Tasche ziehen und so hat man an einem Anschluss für Privatpersonen keine Garantie das man die IPv6 Adresse die man einmal kriegt auch behält. Bei IPv4 ist das ja ein alter Hut, und dafür habe ich schon vor fast zwölf Jahren beschrieben wie man seine Domains bei OVH mit der Fritzbox Updated: https://blog.sengotta.net/eigener-dyndns-dienst-mit-ovh-domain-und-fritzbox/
Bei IPv6 ist das ein wenig komplizierter, hier hat ja jedes Gerät eine eigene öffentlich IP Adresse. Optimal wäre natürlich wenn der Router jetzt für seine Client ein neues Präfix an den Nameserver schicken könnte, das kann die Fritzbox im Jahr 2025 aber leider immer noch nicht. Entweder kann die Fritzbox Ihre eigene IPv6 Adresse an den Nameserver schicken, oder es braucht auf Seite des Nameserver Hilfe. Diese Möglichkeit gibt es bei OVH aber nicht.
So bleibt einem eigentlich nur der Weg über ein Stück Software auf dem Client. Eigentlich Suboptimal denn der Router weiss genau wann ein neues Präfix kommt während der Updater quasi alle 5min schaut ob sich die öffentliche IPv6 des Clients von der im DNS unterscheidet.
Eigentlich wollte ich das mit irgendeinem schnell zusammen gezimmerten Bash Script erschlagen, aber das Problem haben auch anderen und die haben das viel eleganter gelöst.
Ich habe mich hier für das Tool ddns-updater entschieden. Das schöne: es ist ein single binary Programm das in GO geschrieben ist. Man lädt sich die Binary, macht Sie mit chmod +x ausführbar und dann kann man das Tool nutzen. Wenn ein Update kommt muss man nur die Binary austauschen.
Leider gibt es im Repo keine Systemd Unit File, aber auch die ist schnell mit ein bisschen Recherche zusammen gebastelt:
[Unit] Description=DDNS Updater Service After=network-online.target Wants=network-online.target [Service] Type=simple User=ddns-updater Group=ddns-updater WorkingDirectory=/opt/ddns-updater #EnvironmentFile=/etc/ddns-updater/ddns-updater.env ExecStart=/opt/ddns-updater/ddns-updater \ --config /etc/ddns-updater/config.json \ --listening-address :8000 Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Ich würde sagen das ist ziemlich selbsterklärend.
Noch eben via /sbin/useradd User und Group ddns-updater anlegen, via systemctl daemon-reload && systemctl enable –now ddns-updater.service
aktivieren und die Sache solle durch sein. Auf Port 8000 kriegt man auch ein kleines WebIf.
Ich bin mal gespannt wie gut das ganze funktioniert. Meine IPv4 wird immer noch von der Fritzbox geupdated, Erreichbarkeit ist also gegeben.
Vielleicht hilft das einem weiter, ansonsten ist das eben meine Referenz für die Zukunft.