Dynamic DNS warn error

Hello I am just trying to understand why I get an error message when IPv6 is used in the dyndns procedure

111047       : Registered IP '2001:1648:4302:2621:d4c7:2de36:6656:f346' detected
 111047  info : Rerun IP check at 2022-02-25 11:10
 111047       : Detect local IP on 'interface'
 111047       : #> ip -o addr show dev pppoe-wan scope global >/var/run/ddns/IPv6.dat 2>/var/run/ddns/IPv6.err
 111047       : Local IP '2001:1648:4302:2621:d4c7:2de36:6656:f346' detected on interface 'pppoe-wan'
 111048       : Forced Update - L: '2001:1648:4302:2621:d4c7:2de36:6656:f346' == R: '2001:1648:4302:2621:d4c7:2de36:6656:f346'
 111048       : #> /usr/bin/wget-ssl --hsts-file=/tmp/.wget-hsts -nv -t 1 -O /var/run/ddns/IPv6.dat -o /var/run/ddns/IPv6.err -6 --ca-directory=/etc/ssl/certs --no-proxy 'https://api.dynu.com/nic/update?hostname=user-agent-string.net&myipv6=2001:1648:4302:2621:d4c7:2de36:6656:f346&username=skjdfhks&password=***PW***'
 111049       : DDNS Provider answered:
nochg
 111049  info : Forced update successful - IP: '2001:1648:4302:2621:d4c7:2de36:6656:f346' send
 111050       : Waiting 300 seconds (Check Interval)
 111550       : Detect registered/public IP
 111550       : #> /usr/bin/host -t AAAA -6 user-agent-string.net  >/var/run/ddns/IPv6.dat 2>/var/run/ddns/IPv6.err
 111550  WARN : NO valid IP found
 111550  WARN : Get registered/public IP for 'user-agent-string.net' failed - retry 1/0 in 60 seconds
 111650       : #> /usr/bin/host -t AAAA -6 user-agent-string.net  >/var/run/ddns/IPv6.dat 2>/var/run/ddns/IPv6.err
 111651  WARN : NO valid IP found

You can see it is sent the IPv6 once correctly to the dyndns provider and then there is the error I can not see IPv6 in the overview

The error messages told you:

You should check your IPv6 connectivity on the router.

Is your domain user-agent-string.net?
Looks like you configuration is broken, could you share the file here, please?

1 Like

Yes, thank you for your help, do you mean the network or the ddns config? which is immediately undecided to me, why is the /usr/bin/host executed and not ip -o addr show dev pppoe-wan scope global, to determine the IPv6 address?

Post the DDNS config, please.

The script is trying to ask outside for the IP address associated with the domain, to check that it matches with the current IP address on the interface.

1 Like

Yes, the DNS resolution via /usr/bin/host works with IPv4 and IPv6, but only if the DNS servers out there are working properly. The DDNS config is perfectly fine I've found.
Dynu.com is probably a dubious DNS service provider. Because I got completely out of control DNS requests about it. From time to time a request is possible and then some internet pages are displayed that are not my domain. Now it gets even more interesting, after I close my account at Dynu.com, an IPv4 Address of Dynu.com is now routed to my domain via DNS. That's really crazy

I need to know what the script /usr/bin/host does it seems to have a bug because the DDNS IPv4 is read incorrectly? What exactly happens when I call /usr/bin/host -t A? And how can I view the host file legibly?

Will you post your DDNS config?

1 Like

Dear Eduperez,
i have the same issue than the original poster >> ddns: WARN : NO valid IP found.
Strange but if i restart the router, everything is OK, the ddns script works!
After that (600 sec) if the ddns wants to update:

Detect registered/public IP
 072941       : #> /usr/bin/nslookup gthbo.ddns.net  >/var/run/ddns/myddns_ipv4.dat 2>/var/run/ddns/myddns_ipv4.err
 072941  WARN : NO valid IP found

Is it possible that this has something to do with my unbound config?
Until now i used dnsmasq, and it worked (with exact the same config of ddns).

config ddns 'global'
	option ddns_dateformat '%F %R'
	option ddns_loglines '250'
	option upd_privateip '0'

config service 'myddns_ipv4'
	option use_https '1'
	option cacert '/etc/ssl/certs'
	option interface 'wan'
	option ip_source 'network'
	option ip_network 'wan'
	option service_name 'no-ip.com'
	option domain 'gthbo.ddns.net'
	option username '***'
	option password '***'
	option enabled '1'
	option lookup_host 'gthbo.ddns.net'

Thanks!

what happens if you run this from the command prompt, on the router ?

1 Like
nslookup gthbo.ddns.net
Server:         127.0.0.1
Address:        127.0.0.1#53

*** Can't find gthbo.ddns.net: No answer
*** Can't find gthbo.ddns.net: No answer

Maybe because it's trying with port number #53 ?
Unbound is set up to only allow tls....

That would be the case.

The router itself doesn't really need encrypted DNS, there's very little dns traffic originating from it.

You could also change the nslookup command to
/usr/bin/nslookup gthbo.ddns.net 8.8.8.8
Run it manually 1st, see if it works.

1 Like

wow, thank ou frollic!!
i made an exception to the unbound conf:

config zone 'fwd_noip'
        option enabled '1'
        option zone_type 'forward_zone'
        option fallback '1'
        list server '8.8.8.8@53#dns.google'
        list zone_name 'gthbo.ddns.net'

And now its working like dream :slight_smile:

Question: with this exception, i hope only this lookup is allowed through plain dns?
All the other dns lookups are made through tls ?

THANKS

I'm not familiar with unbound, sorry.
Try the nslookup workaround, it won't affect unbound.

1 Like

That's strange, again...
After changing unbound nslookup worked:

nslookup gthbo.ddns.net
Server:         127.0.0.1
Address:        127.0.0.1#53
Name:      gthbo.ddns.net
Address 1: 81.182.213.xxx

After 5 minutes again dead:

nslookup gthbo.ddns.net
Server:         127.0.0.1
Address:        127.0.0.1#53
*** Can't find gthbo.ddns.net: No answer
*** Can't find gthbo.ddns.net: No answer

With your suggestion it's OK:

/usr/bin/nslookup gthbo.ddns.net 8.8.8.8
Server:         8.8.8.8
Address:        8.8.8.8#53
Name:      gthbo.ddns.net
Address 1: 81.182.214.xxx

So should i change the ddns nslookup script?

I would, since there's no risk it could affect the clients.

1 Like

OK but where can i find it?

Have no access to any openwrt box atm, but check the /usr/lib/ddns/dynamic_dns_functions.sh

around line 538

__RUNPROG="$NSLOOKUP $__HOST >$DATFILE 2>$ERRFILE"

OK, i tried with unbound change and i think i found it.
Changed the config: add_wan_fqdn from 1 to 0 and now nslookup can resolve gthbo.ddns.net
I don't know where i read about this setup , but it's working (sadly, i don't know what is it for...)