ich nutze seit ca. 6 Monaten erfolgreich IPv64.net in Kombination mit dem DynDNS-Client von OPNsense (os-ddclient). Seit kurzem gibt es jedoch Probleme mit dem Update der IP-Adresse – obwohl der Server „success“ zurückliefert, erkennt OPNsense das offenbar als Fehler.
Ich habe gelesen, dass ddclient bei „DynDNS2“-Protokoll kein JSON erwartet, sondern einfache Textausgaben wie:
good 1.2.3.4
nochg 1.2.3.4
Das scheint das Problem zu sein: IPv64.net liefert ein JSON-Objekt zurück, OPNsense/ddclient erwartet aber Klartext.
Was ich bereits versucht habe:
Server von ipv4.ipv64.net auf ipv64.net geändert → kein Unterschied
Backend von ddclient auf nativ stellen → funktioniert tatsächlich, aber:
Das funktioniert nur mit IPv64.net – meine anderen Provider wie Cloudflare und Dynu funktionieren dann nicht mehr. Daher für mich keine Option.
Ich habe die identische Version der OPNsense und des ddclients. In meiner Konfiguration habe ich nur anstatt Check ip method: ipify-ipv4 → Check ip method: Interface[IPv4] bzw. [IPv6] und ich habe keinerlei Probleme.
Meine OPNsense macht jede Nacht um drei Uhr die Zwangstrennung und danach wird die IP ohne Probleme bei ipv64.net aktualisiert. Selbst wenn ich nur mein Interface deaktiviere und ich eine neue IP zugewiesen bekomme läuft das Update ohne Fehlermeldungen durch.
Danke Dennis, jedoch kann ich das nirgends so eintragen, denn die OPNSense Maske ist vordefiniert.
Verstehe nicht ganz wieso das bei den anderen funktioniert…ich werde jetzt mal versuchen den ddns-client neu zu installieren bzw config zuruückzusetzen…mal schauen was passiert
hmmm schade ich glaub langsam bin ich mit meinem Latein bzw mit opnsense oder dyndns am ende ^^
hab mal ddns neu installiert und jetzt ein neuen hacken gefunden mit ausführliche logs:
jedoch bin ich nicht schlauer geworden.
Moin. Gleiches Problem hier.
Seit 20. Mai mögen meine 4.0er ddclients die Antworten von ipv64.net nicht mehr.
Ich habe 2 verschiedene Implementierungen im Einsatz; mit gleichen (schlechten) Ergebnissen.
a) Ubuntu mit ddclient aus dem Projekt Launchpad
$ ddclient --version
ddclient version 4.0.0-rc.3
b) Suse mit Kubernetes k3s und Docker-Container von LinuxServer
$ kubectl logs -n infra-dyn-dns pod/ddclient-REDACTED-6f75bb77f7-x4cpk
[migrations] started
[migrations] no migrations found
usermod: no changes
───────────────────────────────────────
██╗ ███████╗██╗ ██████╗
██║ ██╔════╝██║██╔═══██╗
██║ ███████╗██║██║ ██║
██║ ╚════██║██║██║ ██║
███████╗███████║██║╚██████╔╝
╚══════╝╚══════╝╚═╝ ╚═════╝
Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID: 911
User GID: 911
───────────────────────────────────────
Linuxserver.io version: v4.0.0-ls199
Build-date: 2025-05-27T06:57:18+00:00
───────────────────────────────────────
[custom-init] No custom files found, skipping...
Setting up watches.
Watches established.
[ls.io-init] done.
FAILED: [dyndns2][REDACTED.ipv64.de]> unexpected status: {"info":"good","status":"success","ip":{"ipv4":"89.246.38.250"}}
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["status":"success"][atime]> ignoring 'atime=1749319924' for unknown host: "status":"success"
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["status":"success"][backupmx]> ignoring 'backupmx=0' for unknown host: "status":"success"
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["status":"success"][login]> ignoring 'login=REDACTED.ipv64.de' for unknown host: "status":"success"
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["status":"success"][status-ipv4]> ignoring 'status-ipv4={info:good' for unknown host: "status":"success"
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["ip":{"ipv4":"89.246.38.250"}}][status-ipv4]> ignoring 'status-ipv4={info:good' for unknown host: "ip":{"ipv4":"89.246.38.250"}}
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["ip":{"ipv4":"89.246.38.250"}}][login]> ignoring 'login=REDACTED.ipv64.de' for unknown host: "ip":{"ipv4":"89.246.38.250"}}
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["ip":{"ipv4":"89.246.38.250"}}][atime]> ignoring 'atime=1749319924' for unknown host: "ip":{"ipv4":"89.246.38.250"}}
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3]["ip":{"ipv4":"89.246.38.250"}}][backupmx]> ignoring 'backupmx=0' for unknown host: "ip":{"ipv4":"89.246.38.250"}}
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3][wildcard=0][atime]> ignoring 'atime=1749319924' for unknown host: wildcard=0
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3][wildcard=0][backupmx]> ignoring 'backupmx=0' for unknown host: wildcard=0
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3][wildcard=0][login]> ignoring 'login=REDACTED.ipv64.de' for unknown host: wildcard=0
WARNING: [file /run/ddclient-cache/ddclient.cache, line 3][wildcard=0][status-ipv4]> ignoring 'status-ipv4={info:good' for unknown host: wildcard=0
@Dennis_Admin Wie kann man den Zusatzparameter „&output=min“ an den DDNS2 Update-URL vom ddclient anfügen? Bzw. kannst Du diese Antwort-Variante als Default (anstelle von JSON) verwenden?
Weil die Probleme offenbar nur beim ddclient auftreten.
ipv64 gehört nicht zu den Supported services des ddclients. Das APT Debian DDNS IPv64 Package ist jedoch speziell für ipv64 gedacht.
Nachtrag:
sieht für mich nach Henne / Ei Problem aus. Was war zuerst da, Henne oder Ei?
Hier: wer ist für Anpassungen zuständig: Die Entwickler:innen des ddclients oder ipv64?
Das APT Package läuft nur halb OK, wenn man es aus der Source installiert (UPDATEINTERVALL und DNSOVERTLS werden von ipv64-ddns-update -set nicht gesetzt).
Meine Haupt-Plattform ist Kubernetes (auf Suse) und dort hat der ddclient Pod bisher (seit 2023) gut funktioniert.
Ich habe auch vom Docker-Container gelesen. Geht bestimmt auch in Kubernetes; aber nicht out-of-the-box
Evtl. geht’s auch mit In-a-Dyn. Dort hat @Dennis_Admin ja auch schon mal Code eingesendet.
Und es gibt ein (3 Jahre altes) Helm-Chart, das sich bestimmt adaptieren lässt.
ddclient kennt zwar einen script Parameter; aber der Suffix „&output=min“ lässt sich leider nur durch einen Patch im Quellcode einbauen; da „?hostname“ hart codiert an den Scriptnamen angehängt wird
my $url = "$groupcfg{'server'}$groupcfg{'script'}?hostname=$hosts&myip=";
$url .= $ipv4 if $ipv4;
if ($ipv6) {
$url .= "," if $ipv4;
$url .= $ipv6;
}
Frage: gibt es ein Protocol für ddclient, das wie ‚dyndns2‘ funktioniert, aber mit der JSON-Antwort besser umgehen kann?
Update: mit einem gepatchten ddclient klappt der Update (auf Ubuntu) wieder.
$ diff ddclient*
3966c3966,3967
< my $url = "$groupcfg{'server'}$groupcfg{'script'}?hostname=$hosts&myip=";
---
> # my $url = "$groupcfg{'server'}$groupcfg{'script'}?hostname=$hosts&myip=";
> my $url = "$groupcfg{'server'}$groupcfg{'script'}?hostname=$hosts&output=min&myip=";
$ systemctl status ddclient.service
● ddclient.service - Update dynamic domain name service entries
Loaded: loaded (/usr/lib/systemd/system/ddclient.service; disabled; preset: enabled)
Active: active (running) since Sun 2025-06-08 12:40:17 BST; 8s ago
Docs: man:ddclient(8)
Main PID: 6728 (ddclient - slee)
Tasks: 1 (limit: 2268)
Memory: 9.9M (peak: 13.0M)
CPU: 172ms
CGroup: /system.slice/ddclient.service
└─6728 "ddclient - sleeping for 300 seconds"
Jun 08 12:40:17 manara06 systemd[1]: Starting ddclient.service - Update dynamic domain name service entries...
Jun 08 12:40:17 manara06 systemd[1]: Started ddclient.service - Update dynamic domain name service entries.
Jun 08 12:40:17 manara06 ddclient[6728]: WARNING: [dyndns2][REDACTED.udp64.de]> nochg: No update required; unnecessary attempts to change the current address are considered abusive
Jun 08 12:40:17 manara06 ddclient[6728]: SUCCESS: [dyndns2][REDACTED.udp64.de]> IPv6 address set to 2001:16b8:bb30:ec00:dead:beef:c0ff:ee00
@alex_fl Das nützt DIR aber leider gar nix, da der os-ddclient ein Rewrite der OPNsense-Community in Python ist.
Hi,
ich hatte ein ähnliches Problem.
Meine Version ist ebenfalls die von Github.
Nachdem ich das Protokoll von „dyndns2“ auf „changeip“ geändert hatte war der Fehler weg.
# IPv64
Jun 04 04:07:16 homesrv ddclient-ipv6[1481911]: SUCCESS: [changeip][IRGENDWAS.srv64.de]> IP address set to xxxx:e0:xxx:8a00:xx3a:5bxx:xxxx:xxxx
Jun 04 04:10:05 homesrv ddclient-ipv4[1483381]: SUCCESS: [changeip][IRGENDWAS.srv64.de]> IP address set to 12.34.81.233
# anderer Anbieter
Jun 06 00:07:43 homesrv ddclient-ipv6[2873858]: SUCCESS: [dyndns2][IRGENDWAS.v6.rocks]> IPv6 address set to xxxx:e0:xxx:8a00:xx3a:5bxx:xxxx:xxxx
Jun 06 00:08:30 homesrv ddclient-ipv4[2874312]: SUCCESS: [dyndns2][IRGENDWAS.v6.rocks]> IPv4 address set to 12.34.95.198
Jun 04 04:07:16 homesrv ddclient-ipv6[1481911]: SUCCESS: [changeip] [IRGENDWAS.srv64.de]> IP address set to xxxx:e0:xxx:8a00:xx3a:5bxx:xxxx:xxxx
Jun 04 04:10:05 homesrv ddclient-ipv4[1483381]: SUCCESS: [changeip][IRGENDWAS.srv64.de]> IP address set to 12.34.81.233
Ja beim Docker funktioniert das bei mir ebenfalls…danke
naja … derzeit läuft es über docker und changeip … eventuell sagt ja @Dennis_Admin noch was dazu, oder ändert dies auf Standardmäßig auf „&output=min. oder wir lassen das so…was ich jedoch nicht sehr befriedigend finde…
Falls ich zeit habe werde ich mich mal bisschen umschauen was opnsense ddns davon hält wenn man den ein Modul bereitstellt…kann ja nicht so mega schwierig sein.
Ich danke euch bisher…ich lass den Thread mal noch offen…eventuell findet sich ja noch eine gute Lösung
ACK @Apollo13, funktioniert mit dem in Perl programmierten Original ddclient.
Da beim Protokoll ‚changeip‘ der Result-String nicht so penibel überprüft wird, wie beim Protokoll ‚dyndns2‘, reicht der Teilstring „success“ für ein positives Resultat.
Hi @alex_fl, seit OPNsense 23.7 wird dort nicht mehr der ddclient Code in „Perl“ benutzt.
Das neue os-ddclient Plugin ist eine (teilweise) Neuimplementierung in „Python3“. siehe hier
D.h. sowohl Algorithmen, als auch Protokolle sind nicht identisch zum alten Plugin.
PS, für alle K8s User: Bitte melden, falls jemand Interesse am gepatchten Docker-Image linuxserver/ddclient:v4.0.0 hat. Ich kann dann eine Anleitung zusammenklöppeln.