here is my ddclient configuration (VyOS 1.5-rolling-202406210019) :
set service dns dynamic name no-ip address web skip 'Your IP address is : '
set service dns dynamic name no-ip address web url 'https://checkip.dns.he.net/'
set service dns dynamic name no-ip host-name 'host.ddns.net'
set service dns dynamic name no-ip ip-version 'ipv4'
set service dns dynamic name no-ip password 'pwd'
set service dns dynamic name no-ip protocol 'noip'
set service dns dynamic name no-ip username 'user'
The generated /run/ddclient/ddclient.conf reads like this :
### Autogenerated by service_dns_dynamic.py ###
### It does not work.
daemon=300
syslog=yes
ssl=yes
pid=/run/ddclient/ddclient.pid
cache=/run/ddclient/ddclient.cache
web=googledomains
use=no
# Web service dynamic DNS configuration for no-ip: [noip, host.ddns.net]
usev4=webv4, \
webv4=https://checkip.dns.he.net/, \
webv4-skip='Your IP address is : ', \
protocol=noip, \
login=user, \
password='pwd' \
ballama.ddns.net
It does not work and the log reads as follows :
Jul 31 21:25:32 vyos ddclient[3767]: WARNING: Could not determine an IP for host.ddns.net
Since the version of ddclient (3.11) in VyOS still has legacy implementation of noip protocol, usev4 and webv4 variables aren’t recognized by noip protocol yet. Instead, the protocol falls back to legacy use and web variables.
By default web is set to use googledomains which was deprecated by Google few months back and now has completely stopped working (I just checked now).
So the issue you are seeing is a combination of:
legacy implementation of noip protocol
default value for web broken because Google stopped supporting googledomains for IP lookup.
For modernized noip implementation, we’ll have to wait for next stable release of ddclient, but we would still be able to apply workaround for legacy web by swapping out googledomains. I’ll create a PR next week.
Looking at /usr/share/vyos/templates/dns-dynamic/ddclient.conf.j2, one can see that it includes the following lines :
{# ddclient default (web=dyndns) doesn't support ssl and results in process lockup #}
web=googledomains
{# ddclient default (use=ip) results in confusing warning message in log #}
use=no
As a temporary fix, I edited the template file /usr/share/vyos/templates/dns-dynamic/ddclient.conf.j2 as follows :
{# ddclient default (web=dyndns) doesn't support ssl and results in process lockup #}
web=https://checkip.dns.he.net/
{# ddclient default (use=ip) results in confusing warning message in log #}
use=web
Now, even if I reboot my router, my settings persist. Not CLI compliant at all but as a quick-fix, it does the job.