Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

usev6=ifv6 wouldn't work with protocol=nsupdate @ v3.11.2 #615

Closed
Neko-Chang-Taiwan opened this issue Jan 5, 2024 · 11 comments · Fixed by #604
Closed

usev6=ifv6 wouldn't work with protocol=nsupdate @ v3.11.2 #615

Neko-Chang-Taiwan opened this issue Jan 5, 2024 · 11 comments · Fixed by #604
Labels
bug Something isn't working needinfo More information is needed from the user

Comments

@Neko-Chang-Taiwan
Copy link

Neko-Chang-Taiwan commented Jan 5, 2024

Hi All

I modified get IPv6 method from use=cmd to usev6=ifv6 but got error.

Current ddclient.conf

daemon=300
syslog=yes
mail=root
mail-failure=root
pid=/var/run/ddclient.pid
protocol=nsupdate
usev6=ifv6, ifv6=ng0
server=dns.epopen.com
password=/usr/local/etc/epopen.com.key
zone=epopen.com
ttl=3600
*.epopen.com

Debug by # ddclient -daemon=0 -debug -verbose and result as follows.

Case 1: Original work fine use=cmd

DEBUG:    get_ip: using cmd, /sbin/ifconfig ng0 inet6 | /usr/bin/awk '{if($5 == "autoconf" && $6 == "temporary") { print }}' | /usr/bin/tail -n1 reports 2001:c211:c566:3ae:600c:2edb:1cea:7afa
INFO:     forcing updating *.epopen.com because no cached entry exists.
DEBUG:
DEBUG:    nic_nsupdate_update -------------------
INFO:     setting IP address to 2001:c211:c566:3ae:600c:2edb:1cea:7afa for *.epopen.com
UPDATE:   updating *.epopen.com
UPDATE:   nsupdate command is: /usr/local/bin/nsupdate -k /usr/local/etc/epopen.com.key -d
UPDATE:   nsupdate instructions are:
UPDATE:   server dns.epopen.com
UPDATE:   zone epopen.com.
UPDATE:   update delete *.epopen.com. AAAA
UPDATE:   update add *.epopen.com. 3600 AAAA 2001:c211:c566:3ae:600c:2edb:1cea:7afa
UPDATE:   send
Creating key...
Creating key...
namefromtext
keycreate
Sending update to 10.10.23.55#53
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:  39562
;; flags:; ZONE: 1, PREREQ: 0, UPDATE: 6, ADDITIONAL: 1
;; ZONE SECTION:
;epopen.com.                    IN      SOA

Case 2: New not work usev6=ifv6

WARNING:  'if-skip' is deprecated and does nothing for IPv6
DEBUG:    Reply from 'ifconfig -L ng0' :
DEBUG:    ------
DEBUG:    ng0: flags=10088d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1492
DEBUG:          options=0
DEBUG:          inet 122.117.86.253 --> 168.95.98.254 netmask 0xffffffff
DEBUG:          inet6 fe80::d05c:1d7b:9084:f879%ng0 prefixlen 64 scopeid 0x5
DEBUG:          inet6 2001:c211:c566:3ae:d05c:1d7b:9084:f879 prefixlen 64 autoconf
DEBUG:          inet6 2001:c211:c566:3ae:94b9:ab87:ded8:e07 prefixlen 64 deprecated autoconf temporary pltime 0 vltime 441726
DEBUG:          nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG:    ------
DEBUG:    Raw IPv6 after filtering for GUA addresses ng0: (1)
DEBUG:          inet6 2001:c211:c566:3ae:d05c:1d7b:9084:f879 prefixlen 64 autoconf
DEBUG:    get_ipv6: using (ifv6, ng0) reports 2001:c211:c566:3ae:d05c:1d7b:9084:f879
INFO:     forcing updating *.epopen.com because no cached entry exists.
DEBUG:    
DEBUG:    nic_nsupdate_update -------------------
Use of uninitialized value $_[0] in sprintf at /usr/local/sbin/ddclient line 2294.
INFO:     setting IP address to  for *.epopen.com
UPDATE:   updating *.epopen.com
Use of uninitialized value $ip in concatenation (.) or string at /usr/local/sbin/ddclient line 5981.
UPDATE:   nsupdate command is: /usr/local/bin/nsupdate -k /usr/local/etc/epopen.com.key -d
UPDATE:   nsupdate instructions are:
UPDATE:   server dns.epopen.com
UPDATE:   zone epopen.com.
UPDATE:   update delete *.epopen.com. A
UPDATE:   update add *.epopen.com. 3600 A 
UPDATE:   send
Creating key...
Creating key...
namefromtext
keycreate
could not read rdata
syntax error
WARNING:  ddclient: failed closing | /usr/local/bin/nsupdate -k /usr/local/etc/ddns-ipv6-internal.epopen.com.key -d.()
FAILED:   updating *.epopen.com

I tried to trace script

@ get_ipv6()
3259         warning("'if-skip' is deprecated and does nothing for IPv6") if (opt('verbose') && opt('if-skip', $h));
3260         $ipv6 = get_ip_from_interface($arg,6);
...
3327     debug("get_ipv6: using (%s, %s) reports %s", $usev6, $arg, $ipv6 // "<undefined>");
3328     return $ipv6;

And

@ update_nics()
1330             $config{$h}{'wantipv6'} = $ipv6 = $ip if (!$ipv6 && is_ipv6($ip));
1331             # But we will set 'wantip' to the IPv4 so old functions continue to work until we update them all
1332             $config{$h}{'wantip'}   = $ipv4       if (!$ip && $ipv4);

Here problematic @ nic_nsupdate_update{} I think, because $ip get empty wanip due above $ipv4 = empty (Empty here correct).
In valid IPv6 existence, get IPv6 here I think.
5963 my $ip = $config{$h}{'wantip'};

Sorry, I'm not PERL programmer, mistake result possible.
Look like bug, can help fix?
Thanks a lot.

@LenardHess
Copy link
Contributor

Hi,

I just pushed a fix (ad854ab) - can you confirm this fixes your issue?

@LenardHess LenardHess added bug Something isn't working needinfo More information is needed from the user labels Jan 6, 2024
@Neko-Chang-Taiwan
Copy link
Author

Hi @LenardHess

The fix work fine!

Thank you very much

@Neko-Chang-Taiwan
Copy link
Author

Neko-Chang-Taiwan commented Jan 8, 2024

Sorry @LenardHess, Re-open issue.

Because 1st time manual (with -debug) update successful, but WARNING and SUCCESS mail report infinite looping periodically just found.

Detail of WARNING report

WARNING:  skipping update of *.epopen.com from <nothing> to 2001:c211:c566:3ae:2c0a:b4c:d8ba:251.
WARNING:  last updated Mon Jan  8 14:51:45 2024 but last attempt on Mon Jan  8 14:51:45 2024 failed.
WARNING:  Wait at least 5 minutes between update attempts.

regards,
  ddclient@epopen.com (version 3.11.2)

Detail of SUCCESS report after 5 mins

SUCCESS:  updating *.epopen.com: 1: IP address set to 2001:c211:c566:3ae:2c0a:b4c:d8ba:251

regards,
  ddclient@epopen.com (version 3.11.2)

Next is WARNING report looping after 10 mins

Detail manual debug message @ WARNING situation as follows.

=== opt ====
opt{cache}                           : <undefined>
opt{cmd}                             : <undefined>
opt{cmd-skip}                        : <undefined>
opt{cmdv4}                           : <undefined>
opt{cmdv6}                           : <undefined>
opt{daemon}                          : 0
opt{debug}                           : 1
opt{exec}                            : <undefined>
opt{facility}                        : <undefined>
opt{file}                            : <undefined>
opt{force}                           : <undefined>
opt{foreground}                      : <undefined>
opt{fw}                              : <undefined>
opt{fw-banlocal}                     : CODE(0x3bd4c1030840)
opt{fw-login}                        : <undefined>
opt{fw-password}                     : <undefined>
opt{fw-skip}                         : <undefined>
opt{fw-ssl-validate}                 : <undefined>
opt{fwv4}                            : <undefined>
opt{fwv4-skip}                       : <undefined>
opt{fwv6}                            : <undefined>
opt{fwv6-skip}                       : <undefined>
opt{geturl}                          : <undefined>
opt{help}                            : <undefined>
opt{host}                            : <undefined>
opt{if}                              : <undefined>
opt{if-skip}                         : CODE(0x3bd4c1030840)
opt{ifv4}                            : <undefined>
opt{ifv6}                            : <undefined>
opt{ip}                              : <undefined>
opt{ipv4}                            : <undefined>
opt{ipv6}                            : <undefined>
opt{list-devices}                    : CODE(0x3bd4c124b168)
opt{list-protocols}                  : CODE(0x3bd4c12e2780)
opt{list-web-services}               : CODE(0x3bd4c12e4a98)
opt{login}                           : <redacted>
opt{mail}                            : <undefined>
opt{mail-failure}                    : <undefined>
opt{max-interval}                    : 2160000
opt{max-warn}                        : <undefined>
opt{min-error-interval}              : 300
opt{min-interval}                    : 30
opt{options}                         : <undefined>
opt{password}                        : <redacted>
opt{pid}                             : <undefined>
opt{postscript}                      : <undefined>
opt{priority}                        : <undefined>
opt{protocol}                        : <undefined>
opt{proxy}                           : <undefined>
opt{query}                           : <undefined>
opt{quiet}                           : 0
opt{retry}                           : <undefined>
opt{server}                          : <undefined>
opt{ssl}                             : <undefined>
opt{ssl_ca_dir}                      : <undefined>
opt{ssl_ca_file}                     : <undefined>
opt{syslog}                          : <undefined>
opt{test}                            : <undefined>
opt{timeout}                         : <undefined>
opt{use}                             : <undefined>
opt{usev4}                           : <undefined>
opt{usev6}                           : <undefined>
opt{verbose}                         : 1
opt{web}                             : <undefined>
opt{web-skip}                        : <undefined>
opt{web-ssl-validate}                : <undefined>
opt{webv4}                           : <undefined>
opt{webv4-skip}                      : <undefined>
opt{webv6}                           : <undefined>
opt{webv6-skip}                      : <undefined>
=== globals ====
globals{daemon}                      : 60
globals{debug}                       : 1
globals{ifv6}                        : ng0
globals{mail}                        : root
globals{mail-failure}                : root
globals{password}                    : <redacted>
globals{pid}                         : /var/run/ddclient.pid
globals{protocol}                    : nsupdate
globals{quiet}                       : 0
globals{server}                      : dns.epopen.com
globals{syslog}                      : 1
globals{ttl}                         : 3600
globals{usev6}                       : ifv6
globals{verbose}                     : 1
globals{zone}                        : epopen.com
=== config ====
config{*.epopen.com}{atime}          : 0
config{*.epopen.com}{cacheable}      : ARRAY(0x3bd4c1534798)
config{*.epopen.com}{cmd}            : <undefined>
config{*.epopen.com}{cmd-skip}       : 
config{*.epopen.com}{cmdv4}          : <undefined>
config{*.epopen.com}{cmdv6}          : <undefined>
config{*.epopen.com}{fw}             : 
config{*.epopen.com}{fw-login}       : <undefined>
config{*.epopen.com}{fw-password}    : 
config{*.epopen.com}{fw-skip}        : 
config{*.epopen.com}{fw-ssl-validate} : 1
config{*.epopen.com}{fwv4}           : 
config{*.epopen.com}{fwv4-skip}      : 
config{*.epopen.com}{fwv6}           : 
config{*.epopen.com}{fwv6-skip}      : 
config{*.epopen.com}{host}           : *.epopen.com
config{*.epopen.com}{if}             : ppp0
config{*.epopen.com}{ifv4}           : default
config{*.epopen.com}{ifv6}           : ng0
config{*.epopen.com}{ip}             : <undefined>
config{*.epopen.com}{ipv4}           : <undefined>
config{*.epopen.com}{ipv6}           : <undefined>
config{*.epopen.com}{login}          : <redacted>
config{*.epopen.com}{max-interval}   : 2160000
config{*.epopen.com}{min-error-interval} : 300
config{*.epopen.com}{min-interval}   : 30
config{*.epopen.com}{mtime}          : 0
config{*.epopen.com}{password}       : <redacted>
config{*.epopen.com}{protocol}       : nsupdate
config{*.epopen.com}{server}         : dns.epopen.com
config{*.epopen.com}{status}         : 
config{*.epopen.com}{status-ipv4}    : 
config{*.epopen.com}{status-ipv6}    : 
config{*.epopen.com}{tcp}            : 0
config{*.epopen.com}{ttl}            : 3600
config{*.epopen.com}{use}            : ip
config{*.epopen.com}{usev4}          : disabled
config{*.epopen.com}{usev6}          : ifv6
config{*.epopen.com}{warned-min-error-interval} : 0
config{*.epopen.com}{warned-min-interval} : 0
config{*.epopen.com}{web}            : dyndns
config{*.epopen.com}{web-skip}       : 
config{*.epopen.com}{web-ssl-validate} : 1
config{*.epopen.com}{webv4}          : googledomains
config{*.epopen.com}{webv4-skip}     : 
config{*.epopen.com}{webv6}          : googledomains
config{*.epopen.com}{webv6-skip}     : 
config{*.epopen.com}{wtime}          : 30
config{*.epopen.com}{zone}           : epopen.com
=== cache ====
cache{*.epopen.com}{atime}           : 1704692907
cache{*.epopen.com}{host}            : *.epopen.com
cache{*.epopen.com}{ip}              : 2001:c211:c566:3ae:2c0a:b4c:d8ba:251
cache{*.epopen.com}{mtime}           : 0
cache{*.epopen.com}{status}          : noconnect
cache{*.epopen.com}{status-ipv4}     : noconnect
cache{*.epopen.com}{status-ipv6}     : noconnect
cache{*.epopen.com}{tcp}             : 0
cache{*.epopen.com}{ttl}             : 3600
cache{*.epopen.com}{warned-min-error-interval} : 0
cache{*.epopen.com}{warned-min-interval} : 0
cache{*.epopen.com}{wtime}           : 30
cache{*.epopen.com}{zone}            : epopen.com
WARNING:  'if-skip' is deprecated and does nothing for IPv6
DEBUG:    Reply from 'ifconfig -L ng0' :
DEBUG:    ------
DEBUG:    ng0: flags=10088d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1492
DEBUG:          options=0
DEBUG:          inet 122.117.86.253 --> 168.95.98.254 netmask 0xffffffff
DEBUG:          inet6 fe80::2c0a:b4c:d8ba:251%ng0 prefixlen 64 scopeid 0x5
DEBUG:          inet6 2001:c211:c566:3ae:2c0a:b4c:d8ba:251 prefixlen 64 autoconf
DEBUG:          inet6 2001:c211:c566:3ae:218a:4131:ee1f:3a8 prefixlen 64 deprecated autoconf temporary pltime 0 vltime 95300
DEBUG:          inet6 2001:c211:c566:3ae:bc04:dea9:4b6:55aa prefixlen 64 deprecated autoconf temporary pltime 0 vltime 181161
DEBUG:          inet6 2001:c211:c566:3ae:d4b4:b18d:a59f:bd4c prefixlen 64 deprecated autoconf temporary pltime 0 vltime 267022
DEBUG:          inet6 2001:c211:c566:3ae:e812:29bc:b8a3:6c26 prefixlen 64 deprecated autoconf temporary pltime 0 vltime 352883
DEBUG:          inet6 2001:c211:c566:3ae:1108:324:c686:5e0c prefixlen 64 deprecated autoconf temporary pltime 0 vltime 438744
DEBUG:          inet6 2001:c211:c566:3ae:b1bd:d190:c5ae:2885 prefixlen 64 autoconf temporary pltime 6205 vltime 524605
DEBUG:          nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG:    ------
DEBUG:    Raw IPv6 after filtering for GUA addresses ng0: (1)
DEBUG:          inet6 2001:c211:c566:3ae:2c0a:b4c:d8ba:251 prefixlen 64 autoconf
DEBUG:    get_ipv6: using (ifv6, ng0) reports 2001:c211:c566:3ae:2c0a:b4c:d8ba:251
WARNING:  skipping update of *.epopen.com from <nothing> to 2001:c211:c566:3ae:2c0a:b4c:d8ba:251.
WARNING:  last updated <never> but last attempt on Mon Jan  8 13:48:27 2024 failed.
WARNING:  Wait at least 5 minutes between update attempts.

Busy now, therefore paste debug log first, debug later.
Thanks a lot.

@LenardHess
Copy link
Contributor

It looks like your DNS update is failing - in the cache, the mtime is not set and the status is "noconnect".

The 5 minute delay is the min-error-interval of 300 seconds - this time indicates how long to not update after a failed update.

Could you post a full log of a successful update and the cache file (var/cache/ddclient/ddclient.cache by default) after that update?

@Neko-Chang-Taiwan
Copy link
Author

It looks like your DNS update is failing - in the cache, the mtime is not set and the status is "noconnect".

The 5 minute delay is the min-error-interval of 300 seconds - this time indicates how long to not update after a failed update.

Could you post a full log of a successful update and the cache file (var/cache/ddclient/ddclient.cache by default) after that update?

Please reference full log of successful update as follows

=== opt ====
opt{cache}                           : <undefined>
opt{cmd}                             : <undefined>
opt{cmd-skip}                        : <undefined>
opt{cmdv4}                           : <undefined>
opt{cmdv6}                           : <undefined>
opt{daemon}                          : 0
opt{debug}                           : 1
opt{exec}                            : <undefined>
opt{facility}                        : <undefined>
opt{file}                            : <undefined>
opt{force}                           : <undefined>
opt{foreground}                      : <undefined>
opt{fw}                              : <undefined>
opt{fw-banlocal}                     : CODE(0x3fe5260d0840)
opt{fw-login}                        : <undefined>
opt{fw-password}                     : <undefined>
opt{fw-skip}                         : <undefined>
opt{fw-ssl-validate}                 : <undefined>
opt{fwv4}                            : <undefined>
opt{fwv4-skip}                       : <undefined>
opt{fwv6}                            : <undefined>
opt{fwv6-skip}                       : <undefined>
opt{geturl}                          : <undefined>
opt{help}                            : <undefined>
opt{host}                            : <undefined>
opt{if}                              : <undefined>
opt{if-skip}                         : CODE(0x3fe5260d0840)
opt{ifv4}                            : <undefined>
opt{ifv6}                            : <undefined>
opt{ip}                              : <undefined>
opt{ipv4}                            : <undefined>
opt{ipv6}                            : <undefined>
opt{list-devices}                    : CODE(0x3fe5262ed168)
opt{list-protocols}                  : CODE(0x3fe526383780)
opt{list-web-services}               : CODE(0x3fe526385a98)
opt{login}                           : <redacted>
opt{mail}                            : <undefined>
opt{mail-failure}                    : <undefined>
opt{max-interval}                    : 2160000
opt{max-warn}                        : <undefined>
opt{min-error-interval}              : 300
opt{min-interval}                    : 30
opt{options}                         : <undefined>
opt{password}                        : <redacted>
opt{pid}                             : <undefined>
opt{postscript}                      : <undefined>
opt{priority}                        : <undefined>
opt{protocol}                        : <undefined>
opt{proxy}                           : <undefined>
opt{query}                           : <undefined>
opt{quiet}                           : 0
opt{retry}                           : <undefined>
opt{server}                          : <undefined>
opt{ssl}                             : <undefined>
opt{ssl_ca_dir}                      : <undefined>
opt{ssl_ca_file}                     : <undefined>
opt{syslog}                          : <undefined>
opt{test}                            : <undefined>
opt{timeout}                         : <undefined>
opt{use}                             : <undefined>
opt{usev4}                           : <undefined>
opt{usev6}                           : <undefined>
opt{verbose}                         : 1
opt{web}                             : <undefined>
opt{web-skip}                        : <undefined>
opt{web-ssl-validate}                : <undefined>
opt{webv4}                           : <undefined>
opt{webv4-skip}                      : <undefined>
opt{webv6}                           : <undefined>
opt{webv6-skip}                      : <undefined>
=== globals ====
globals{daemon}                      : 60
globals{debug}                       : 1
globals{ifv6}                        : ng0
globals{mail}                        : root
globals{mail-failure}                : root
globals{password}                    : <redacted>
globals{pid}                         : /var/run/ddclient.pid
globals{protocol}                    : nsupdate
globals{quiet}                       : 0
globals{server}                      : dns.epopen.com
globals{syslog}                      : 1
globals{ttl}                         : 3600
globals{usev6}                       : ifv6
globals{verbose}                     : 1
globals{zone}                        : epopen.com
=== config ====
config{*.epopen.com}{atime}          : 0
config{*.epopen.com}{cacheable}      : ARRAY(0x3fe5265d6fc0)
config{*.epopen.com}{cmd}            : <undefined>
config{*.epopen.com}{cmd-skip}       : 
config{*.epopen.com}{cmdv4}          : <undefined>
config{*.epopen.com}{cmdv6}          : <undefined>
config{*.epopen.com}{fw}             : 
config{*.epopen.com}{fw-login}       : <undefined>
config{*.epopen.com}{fw-password}    : 
config{*.epopen.com}{fw-skip}        : 
config{*.epopen.com}{fw-ssl-validate} : 1
config{*.epopen.com}{fwv4}           : 
config{*.epopen.com}{fwv4-skip}      : 
config{*.epopen.com}{fwv6}           : 
config{*.epopen.com}{fwv6-skip}      : 
config{*.epopen.com}{host}           : *.epopen.com
config{*.epopen.com}{if}             : ppp0
config{*.epopen.com}{ifv4}           : default
config{*.epopen.com}{ifv6}           : ng0
config{*.epopen.com}{ip}             : <undefined>
config{*.epopen.com}{ipv4}           : <undefined>
config{*.epopen.com}{ipv6}           : <undefined>
config{*.epopen.com}{login}          : <redacted>
config{*.epopen.com}{max-interval}   : 2160000
config{*.epopen.com}{min-error-interval} : 300
config{*.epopen.com}{min-interval}   : 30
config{*.epopen.com}{mtime}          : 0
config{*.epopen.com}{password}       : <redacted>
config{*.epopen.com}{protocol}       : nsupdate
config{*.epopen.com}{server}         : dns.epopen.com
config{*.epopen.com}{status}         : 
config{*.epopen.com}{status-ipv4}    : 
config{*.epopen.com}{status-ipv6}    : 
config{*.epopen.com}{tcp}            : 0
config{*.epopen.com}{ttl}            : 3600
config{*.epopen.com}{use}            : ip
config{*.epopen.com}{usev4}          : disabled
config{*.epopen.com}{usev6}          : ifv6
config{*.epopen.com}{warned-min-error-interval} : 0
config{*.epopen.com}{warned-min-interval} : 0
config{*.epopen.com}{web}            : dyndns
config{*.epopen.com}{web-skip}       : 
config{*.epopen.com}{web-ssl-validate} : 1
config{*.epopen.com}{webv4}          : googledomains
config{*.epopen.com}{webv4-skip}     : 
config{*.epopen.com}{webv6}          : googledomains
config{*.epopen.com}{webv6-skip}     : 
config{*.epopen.com}{wtime}          : 30
config{*.epopen.com}{zone}           : epopen.com
=== cache ====
cache{*.epopen.com}{atime}           : 0
cache{*.epopen.com}{host}            : *.epopen.com
cache{*.epopen.com}{ip}              : 2001:c211:c566:3ae:2c0a:b4c:d8ba:251
cache{*.epopen.com}{mtime}           : 1704763133
cache{*.epopen.com}{status}          : noconnect
cache{*.epopen.com}{status-ipv4}     : noconnect
cache{*.epopen.com}{status-ipv6}     : noconnect
cache{*.epopen.com}{tcp}             : 0
cache{*.epopen.com}{ttl}             : 3600
cache{*.epopen.com}{warned-min-error-interval} : 1704763138
cache{*.epopen.com}{warned-min-interval} : 0
cache{*.epopen.com}{wtime}           : 30
cache{*.epopen.com}{zone}            : epopen.com
WARNING:  'if-skip' is deprecated and does nothing for IPv6
DEBUG:    Reply from 'ifconfig -L ng0' :
DEBUG:    ------
DEBUG:    ng0: flags=10088d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1492
DEBUG:          options=0
DEBUG:          inet 122.117.86.253 --> 168.95.98.254 netmask 0xffffffff
DEBUG:          inet6 fe80::2c0a:b4c:d8ba:251%ng0 prefixlen 64 scopeid 0x5
DEBUG:          inet6 2001:c211:c566:3ae:2c0a:b4c:d8ba:251 prefixlen 64 autoconf
DEBUG:          inet6 2001:c211:c566:3ae:218a:4131:ee1f:3a8 prefixlen 64 deprecated autoconf temporary pltime 0 vltime 25431
DEBUG:          inet6 2001:c211:c566:3ae:bc04:dea9:4b6:55aa prefixlen 64 deprecated autoconf temporary pltime 0 vltime 111292
DEBUG:          inet6 2001:c211:c566:3ae:d4b4:b18d:a59f:bd4c prefixlen 64 deprecated autoconf temporary pltime 0 vltime 197153
DEBUG:          inet6 2001:c211:c566:3ae:e812:29bc:b8a3:6c26 prefixlen 64 deprecated autoconf temporary pltime 0 vltime 283014
DEBUG:          inet6 2001:c211:c566:3ae:1108:324:c686:5e0c prefixlen 64 deprecated autoconf temporary pltime 0 vltime 368875
DEBUG:          inet6 2001:c211:c566:3ae:b1bd:d190:c5ae:2885 prefixlen 64 deprecated autoconf temporary pltime 0 vltime 454736
DEBUG:          inet6 2001:c211:c566:3ae:4da8:f70f:1261:6f58 prefixlen 64 autoconf temporary pltime 22197 vltime 540597
DEBUG:          nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG:    ------
DEBUG:    Raw IPv6 after filtering for GUA addresses ng0: (1)
DEBUG:          inet6 2001:c211:c566:3ae:2c0a:b4c:d8ba:251 prefixlen 64 autoconf
DEBUG:    get_ipv6: using (ifv6, ng0) reports 2001:c211:c566:3ae:2c0a:b4c:d8ba:251
DEBUG:    
DEBUG:    nic_nsupdate_update -------------------
INFO:     setting IP address to 2001:c211:c566:3ae:2c0a:b4c:d8ba:251 for *.epopen.com,dns.epopen.com,epopen.com
UPDATE:   updating *.epopen.com,dns.epopen.com,epopen.com
UPDATE:   nsupdate command is: /usr/local/bin/nsupdate -k /usr/local/etc/ddns-ipv6-internal.epopen.com.key -d
UPDATE:   nsupdate instructions are:
UPDATE:   server dns.epopen.com
UPDATE:   zone epopen.com.
UPDATE:   update delete *.epopen.com. AAAA
UPDATE:   update add *.epopen.com. 3600 AAAA 2001:c211:c566:3ae:2c0a:b4c:d8ba:251
UPDATE:   send
Creating key...
Creating key...
namefromtext
keycreate
Sending update to 10.0.2.1#53
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:   1669
;; flags:; ZONE: 1, PREREQ: 0, UPDATE: 6, ADDITIONAL: 1
;; ZONE SECTION:
;epopen.com.                    IN      SOA

;; UPDATE SECTION:
*.epopen.com.           0       ANY     AAAA
*.epopen.com.           3600    IN      AAAA    2001:c211:c566:3ae:2c0a:b4c:d8ba:251

;; TSIG PSEUDOSECTION:
ddns-ipv6-internal.epopen.com. 0 ANY    TSIG    hmac-sha512. 1704763151 300 64 3Fa8wB15gZ4Yu/8BLeKXA55B8bXM02gmbhWtV4UKiOFX8LG2awIMBwEW JN5ABZ7mFwlh1KOtoc8b/5J1Gwe9Qg== 1669 NOERROR 0 


Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:   1669
;; flags: qr; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 1
;; ZONE SECTION:
;epopen.com.                    IN      SOA

;; TSIG PSEUDOSECTION:
ddns-ipv6-internal.epopen.com. 0 ANY    TSIG    hmac-sha512. 1704763151 300 64 ASw6bWPPpFbyf1lfsb8fwGnAzIs3sn4WHjL3s61QVIGm/1wZP0kfAvYo Wi4Z8M6bQvdrmPQ9rL9KQZLaPVwcuw== 1669 NOERROR 0 

SUCCESS:  updating *.epopen.com: 1: IP address set to 2001:c211:c566:3ae:2c0a:b4c:d8ba:251

And cache file as follows.

## ddclient-3.11.2
## last updated at Tue Jan  9 09:24:19 2024 (1704763459)
atime=1704763459,host=*.epopen.com,ip=2001:c211:c566:3ae:2c0a:b4c:d8ba:251,mtime=1704763459,status=noconnect,status-ipv4=noconnect,status-ipv6=noconnect,tcp=0,ttl=3600,warned-min-error-interval=0,warned-
min-interval=0,wtime=0,zone=epopen.com *.epopen.com

Note: In my system (FreeBSD), path of cache file = /var/tmp/ddclient.cache

Thanks you very much.

@indrajitr
Copy link
Contributor

@LenardHess: There is a PR #604 that updates nsupdate provider for both v4 and v6 and is likely to address this.
Is it worth considering that as well?

@LenardHess
Copy link
Contributor

@indrajitr I'll look into reviewing it this weekend - Its probably best to look whether that already clears the issue

@LenardHess
Copy link
Contributor

#604 just got merged - @Neko-Chang-Taiwan could you check whether your issue persists? If yes, please try changing your config from using use and usev6 to instead use usev4 and usev6 and see if that fixes the issue?

@Neko-Chang-Taiwan
Copy link
Author

Hi @LenardHess @indrajitr

I tried to apply #604
First, deleted ddclient.cache file and run result as follows.

=== opt ====
opt{cache}                           : <undefined>
opt{cmd}                             : <undefined>
opt{cmd-skip}                        : <undefined>
opt{cmdv4}                           : <undefined>
opt{cmdv6}                           : <undefined>
opt{daemon}                          : 0
opt{debug}                           : 1
opt{exec}                            : <undefined>
opt{facility}                        : <undefined>
opt{file}                            : <undefined>
opt{force}                           : <undefined>
opt{foreground}                      : <undefined>
opt{fw}                              : <undefined>
opt{fw-banlocal}                     : CODE(0xc5421ac9840)
opt{fw-login}                        : <undefined>
opt{fw-password}                     : <undefined>
opt{fw-skip}                         : <undefined>
opt{fw-ssl-validate}                 : <undefined>
opt{fwv4}                            : <undefined>
opt{fwv4-skip}                       : <undefined>
opt{fwv6}                            : <undefined>
opt{fwv6-skip}                       : <undefined>
opt{geturl}                          : <undefined>
opt{help}                            : <undefined>
opt{host}                            : <undefined>
opt{if}                              : <undefined>
opt{if-skip}                         : CODE(0xc5421ac9840)
opt{ifv4}                            : <undefined>
opt{ifv6}                            : <undefined>
opt{ip}                              : <undefined>
opt{ipv4}                            : <undefined>
opt{ipv6}                            : <undefined>
opt{list-devices}                    : CODE(0xc5421ce7138)
opt{list-protocols}                  : CODE(0xc5421d7f750)
opt{list-web-services}               : CODE(0xc5421d81a68)
opt{login}                           : <redacted>
opt{mail}                            : <undefined>
opt{mail-failure}                    : <undefined>
opt{max-interval}                    : 2160000
opt{max-warn}                        : <undefined>
opt{min-error-interval}              : 300
opt{min-interval}                    : 30
opt{options}                         : <undefined>
opt{password}                        : <redacted>
opt{pid}                             : <undefined>
opt{postscript}                      : <undefined>
opt{priority}                        : <undefined>
opt{protocol}                        : <undefined>
opt{proxy}                           : <undefined>
opt{query}                           : <undefined>
opt{quiet}                           : 0
opt{retry}                           : <undefined>
opt{server}                          : <undefined>
opt{ssl}                             : <undefined>
opt{ssl_ca_dir}                      : <undefined>
opt{ssl_ca_file}                     : <undefined>
opt{syslog}                          : <undefined>
opt{test}                            : <undefined>
opt{timeout}                         : <undefined>
opt{use}                             : <undefined>
opt{usev4}                           : <undefined>
opt{usev6}                           : <undefined>
opt{verbose}                         : 1
opt{web}                             : <undefined>
opt{web-skip}                        : <undefined>
opt{web-ssl-validate}                : <undefined>
opt{webv4}                           : <undefined>
opt{webv4-skip}                      : <undefined>
opt{webv6}                           : <undefined>
opt{webv6-skip}                      : <undefined>
=== globals ====
globals{daemon}                      : 60
globals{debug}                       : 1
globals{ifv6}                        : ng0
globals{mail}                        : root
globals{mail-failure}                : root
globals{password}                    : <redacted>
globals{pid}                         : /var/run/ddclient.pid
globals{protocol}                    : nsupdate
globals{quiet}                       : 0
globals{server}                      : dns.epopen.com
globals{syslog}                      : 1
globals{ttl}                         : 3600
globals{usev6}                       : ifv6
globals{verbose}                     : 1
globals{zone}                        : epopen.com
=== config ====
config{*.epopen.com}{atime}          : 0
config{*.epopen.com}{cacheable}      : ARRAY(0xc5421fd3900)
config{*.epopen.com}{cmd}            : <undefined>
config{*.epopen.com}{cmd-skip}       : 
config{*.epopen.com}{cmdv4}          : <undefined>
config{*.epopen.com}{cmdv6}          : <undefined>
config{*.epopen.com}{fw}             : 
config{*.epopen.com}{fw-login}       : <undefined>
config{*.epopen.com}{fw-password}    : 
config{*.epopen.com}{fw-skip}        : 
config{*.epopen.com}{fw-ssl-validate} : 1
config{*.epopen.com}{fwv4}           : 
config{*.epopen.com}{fwv4-skip}      : 
config{*.epopen.com}{fwv6}           : 
config{*.epopen.com}{fwv6-skip}      : 
config{*.epopen.com}{host}           : *.epopen.com
config{*.epopen.com}{if}             : ppp0
config{*.epopen.com}{ifv4}           : default
config{*.epopen.com}{ifv6}           : ng0
config{*.epopen.com}{ip}             : <undefined>
config{*.epopen.com}{ipv4}           : <undefined>
config{*.epopen.com}{ipv6}           : <undefined>
config{*.epopen.com}{login}          : <redacted>
config{*.epopen.com}{max-interval}   : 2160000
config{*.epopen.com}{min-error-interval} : 300
config{*.epopen.com}{min-interval}   : 30
config{*.epopen.com}{mtime}          : 0
config{*.epopen.com}{password}       : <redacted>
config{*.epopen.com}{protocol}       : nsupdate
config{*.epopen.com}{server}         : dns.epopen.com
config{*.epopen.com}{status}         : 
config{*.epopen.com}{status-ipv4}    : 
config{*.epopen.com}{status-ipv6}    : 
config{*.epopen.com}{tcp}            : 0
config{*.epopen.com}{ttl}            : 3600
config{*.epopen.com}{use}            : ip
config{*.epopen.com}{usev4}          : disabled
config{*.epopen.com}{usev6}          : ifv6
config{*.epopen.com}{warned-min-error-interval} : 0
config{*.epopen.com}{warned-min-interval} : 0
config{*.epopen.com}{web}            : dyndns
config{*.epopen.com}{web-skip}       : 
config{*.epopen.com}{web-ssl-validate} : 1
config{*.epopen.com}{webv4}          : googledomains
config{*.epopen.com}{webv4-skip}     : 
config{*.epopen.com}{webv6}          : googledomains
config{*.epopen.com}{webv6-skip}     : 
config{*.epopen.com}{wtime}          : 30
config{*.epopen.com}{zone}           : epopen.com
=== cache ====
WARNING:  'if-skip' is deprecated and does nothing for IPv6
DEBUG:    Reply from 'ifconfig -L ng0' :
DEBUG:    ------
DEBUG:    ng0: flags=10088d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1492
DEBUG:          options=0
DEBUG:          inet 122.117.86.253 --> 168.95.98.254 netmask 0xffffffff
DEBUG:          inet6 fe80::ac:95ff:fee3:83d2%ng0 prefixlen 64 scopeid 0x5
DEBUG:          inet6 2001:c211:c566:3ae:ac:95ff:fee3:83d2 prefixlen 64 autoconf
DEBUG:          inet6 2001:c211:c566:3ae:55b6:c7d8:a119:9d3d prefixlen 64 deprecated autoconf temporary pltime 0 vltime 513529
DEBUG:          inet6 2001:c211:c566:3ae:593d:cb1a:3e57:d988 prefixlen 64 autoconf temporary pltime 81305 vltime 599705
DEBUG:          nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG:    ------
DEBUG:    Raw IPv6 after filtering for GUA addresses ng0: (1)
DEBUG:          inet6 2001:c211:c566:3ae:ac:95ff:fee3:83d2 prefixlen 64 autoconf
DEBUG:    get_ipv6: using (ifv6, ng0) reports 2001:c211:c566:3ae:ac:95ff:fee3:83d2
INFO:     forcing updating *.epopen.com because no cached entry exists.
DEBUG:    
DEBUG:    nic_nsupdate_update -------------------
INFO:     setting IPv6 address to 2001:c211:c566:3ae:ac:95ff:fee3:83d2 for *.epopen.com,dns.epopen.com,epopen.com
UPDATE:   updating *.epopen.com,dns.epopen.com,epopen.com
UPDATE:   nsupdate command is: /usr/local/bin/nsupdate -k /usr/local/etc/ddns-ipv6-internal.epopen.com.key -d
UPDATE:   nsupdate instructions are:
UPDATE:   server dns.epopen.com
UPDATE:   zone epopen.com.
UPDATE:   update delete *.epopen.com. AAAA
UPDATE:   update add *.epopen.com. 3600 AAAA 2001:c211:c566:3ae:ac:95ff:fee3:83d2
UPDATE:   send
Creating key...
Creating key...
namefromtext
keycreate
Sending update to 10.0.2.1#53
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:  15620
;; flags:; ZONE: 1, PREREQ: 0, UPDATE: 6, ADDITIONAL: 1
;; ZONE SECTION:
;epopen.com.                    IN      SOA

;; UPDATE SECTION:
*.epopen.com.           0       ANY     AAAA
*.epopen.com.           3600    IN      AAAA    2001:c211:c566:3ae:ac:95ff:fee3:83d2

;; TSIG PSEUDOSECTION:
ddns-ipv6-internal.epopen.com. 0 ANY    TSIG    hmac-sha512. 1705303179 300 64 SQ2+vAvYG/HvPbaliMVVCCsBqKc1o9KH/fGVb9mFvzzOBL/0Re4/4/as sXjD891ygJPlytyr31SDn2nCf1ZWXw== 15620 NOERROR 0 


Reply from update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id:  15620
;; flags: qr; ZONE: 1, PREREQ: 0, UPDATE: 0, ADDITIONAL: 1
;; ZONE SECTION:
;epopen.com.                    IN      SOA

;; TSIG PSEUDOSECTION:
ddns-ipv6-internal.epopen.com. 0 ANY    TSIG    hmac-sha512. 1705303179 300 64 rYSZ4Koay3//ofpZrrmtpfmt/D/C3o6W5bU1S2JEEnxdxZ22nhQungT5 w2Hj7Zm2+93ZqyYiYmcTp0rspVxulw== 15620 NOERROR 0 

SUCCESS:  updating *.epopen.com: good: IPv6 address set to 2001:c211:c566:3ae:ac:95ff:fee3:83d2

2nd and more time, run test result as follows.

=== opt ==== , === globals ==== and === config ==== does not change, ignored.
...
=== cache ====
cache{*.epopen.com}{atime}           : 1705303179
cache{*.epopen.com}{host}            : *.epopen.com
cache{*.epopen.com}{ip}              : 2001:c211:c566:3ae:ac:95ff:fee3:83d2
cache{*.epopen.com}{ipv6}            : 2001:c211:c566:3ae:ac:95ff:fee3:83d2
cache{*.epopen.com}{mtime}           : 1705303179
cache{*.epopen.com}{status}          : noconnect
cache{*.epopen.com}{status-ipv4}     : noconnect
cache{*.epopen.com}{status-ipv6}     : good
cache{*.epopen.com}{tcp}             : 0
cache{*.epopen.com}{ttl}             : 3600
cache{*.epopen.com}{warned-min-error-interval} : 0
cache{*.epopen.com}{warned-min-interval} : 0
cache{*.epopen.com}{wtime}           : 30
cache{*.epopen.com}{zone}            : epopen.com
WARNING:  'if-skip' is deprecated and does nothing for IPv6
DEBUG:    Reply from 'ifconfig -L ng0' :
DEBUG:    ------
DEBUG:    ng0: flags=10088d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1492
DEBUG:          options=0
DEBUG:          inet 122.117.86.253 --> 168.95.98.254 netmask 0xffffffff
DEBUG:          inet6 fe80::ac:95ff:fee3:83d2%ng0 prefixlen 64 scopeid 0x5
DEBUG:          inet6 2001:c211:c566:3ae:ac:95ff:fee3:83d2 prefixlen 64 autoconf
DEBUG:          inet6 2001:c211:c566:3ae:55b6:c7d8:a119:9d3d prefixlen 64 deprecated autoconf temporary pltime 0 vltime 513256
DEBUG:          inet6 2001:c211:c566:3ae:593d:cb1a:3e57:d988 prefixlen 64 autoconf temporary pltime 81032 vltime 599432
DEBUG:          nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
DEBUG:    ------
DEBUG:    Raw IPv6 after filtering for GUA addresses ng0: (1)
DEBUG:          inet6 2001:c211:c566:3ae:ac:95ff:fee3:83d2 prefixlen 64 autoconf
DEBUG:    get_ipv6: using (ifv6, ng0) reports 2001:c211:c566:3ae:ac:95ff:fee3:83d2
SUCCESS:  *.epopen.com: skipped: IPv6 address was already set to 2001:c211:c566:3ae:ac:95ff:fee3:83d2.

Based on test result, issue fixed I think.
Please verify my result.

@Neko-Chang-Taiwan
Copy link
Author

Hi All

Have any update about the issue?

@rhansen
Copy link
Member

rhansen commented May 19, 2024

Based on test result, issue fixed I think.

OK, closing. Thanks for testing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working needinfo More information is needed from the user
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants