Ddclient configuration for no-ip does not seem to work

Hi,

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

I have to change two lines to make it work :

web=https://checkip.dns.he.net/
use=web

Is this a bug or am I doing something wrong ?

Marc

Hi @ballatom, this should have worked. I suspect there is an issue is acquiring the public IP address using https://checkip.dns.he.net/.

Can you please try invoking ddclient update in debug mode and see if you find anything abnormal?

You can try something like this in the shell to troubleshoot:

sudo ddclient -daemon=0 -debug -verbose -noquiet -cache /run/ddclient/ddclient.cache-2024-08-01 -file /run/ddclient/ddclient.conf

Mmmmmmm @indrajitr. I tried with other web servers that return one’s public IP and got the same result.

I ran ddclient in debug mode with the standard configuration file (failure) and with the file manually modified as explained in the OP (success).

ddclient.failure.txt (4.9 KB)
ddclient.success.txt (7.5 KB)

Thanks for the logs @ballatom!

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.

Happy I was able to help find a bug @indrajitr .

Have a nice WE and thanks for your follow-up.

1 Like

Wait a minute. I cannot write Python but I can read high-level languages.

The configuration file /run/ddclient/ddclient.conf starts with the following line :

### Autogenerated by service_dns_dynamic.py ###

The Python script is located in /usr/libexec/vyos/conf_mode and contains the following line :

render(config_file, 'dns-dynamic/ddclient.conf.j2', dyndns, permission=0o600)

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.

This topic was automatically closed after 14 days. New replies are no longer allowed.