What's new

custom ddns update every minutes with AX86U 3004.388.7 firmeware

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

wuwentao

Occasional Visitor
I have flashed Merlin 3004.388.7 firmeware to my AX86U and enabled custom ddns in /jffs/scripts/ddns-start with my custom domain like ddns.****.xyz

in this scirpt I have send notice to /sbin/ddns_custom_updated

now I have add logger feature to print the info in web log,

Code:
if [ $? -eq 0 ]; then
    echo "DDNS updadte pass"
    logger "DDNS updadte pass"
    /sbin/ddns_custom_updated 1
else
    echo "DDNS updadte failed"
    logger "DDNS updadte failed"
    /sbin/ddns_custom_updated 0
fi

and also set the WEB UI setting from [WAN]-- [DDNS] --[Forced update interval (in days)] to 5 or 10

seems it can't work anymore, it always update the ddns every minutes.

after I add logger command to the script, below is the timestamp and detail log:

Code:
May 24 18:32:20 ddns: Completed custom ddns update
May 24 18:32:50 watchdog: start ddns.
May 24 18:32:50 ddns: update CUSTOM , wan_unit 0
May 24 18:32:50 ddns: Clear ddns cache.
May 24 18:32:50 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:32:50 myusername: [domain]:ddns.xxxxyz
May 24 18:32:50 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:32:50 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:32:50 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:32:51 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:32:51 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:32:51 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:32:51 myusername: DDNS updadte pass
May 24 18:32:51 ddns: Completed custom ddns update
May 24 18:33:21 watchdog: start ddns.
May 24 18:33:21 ddns: update CUSTOM , wan_unit 0
May 24 18:33:21 ddns: Clear ddns cache.
May 24 18:33:21 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:33:21 myusername: [domain]:ddns.xxxxyz
May 24 18:33:21 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:33:21 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:33:21 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:33:22 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:33:22 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:33:22 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:33:22 myusername: DDNS updadte pass
May 24 18:33:22 ddns: Completed custom ddns update
May 24 18:33:52 watchdog: start ddns.
May 24 18:33:52 ddns: update CUSTOM , wan_unit 0
May 24 18:33:52 ddns: Clear ddns cache.
May 24 18:33:52 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:33:52 myusername: [domain]:ddns.xxxxyz
May 24 18:33:53 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:33:53 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:33:53 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:33:54 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:33:54 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:33:54 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:33:54 myusername: DDNS updadte pass
May 24 18:33:54 ddns: Completed custom ddns update
May 24 18:34:24 watchdog: start ddns.
May 24 18:34:24 ddns: update CUSTOM , wan_unit 0
May 24 18:34:24 ddns: Clear ddns cache.
May 24 18:34:24 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:34:24 myusername: [domain]:ddns.xxxxyz
May 24 18:34:24 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:34:24 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:34:24 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:34:25 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:34:25 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:34:25 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:34:25 myusername: DDNS updadte pass
May 24 18:34:25 ddns: Completed custom ddns update
May 24 18:34:55 watchdog: start ddns.
May 24 18:34:55 ddns: update CUSTOM , wan_unit 0
May 24 18:34:55 ddns: Clear ddns cache.
May 24 18:34:55 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:34:55 myusername: [domain]:ddns.xxxxyz
May 24 18:34:55 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:34:55 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:34:55 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:34:56 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:34:56 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:34:56 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:34:56 myusername: DDNS updadte pass
May 24 18:34:56 ddns: Completed custom ddns update
May 24 18:35:26 watchdog: start ddns.
May 24 18:35:26 ddns: update CUSTOM , wan_unit 0
May 24 18:35:26 ddns: Clear ddns cache.
May 24 18:35:26 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:35:26 myusername: [domain]:ddns.xxxxyz
May 24 18:35:28 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:35:28 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:35:28 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:35:29 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:35:29 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:35:29 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:35:29 myusername: DDNS updadte pass
May 24 18:35:29 ddns: Completed custom ddns update
May 24 18:35:59 watchdog: start ddns.
May 24 18:35:59 ddns: update CUSTOM , wan_unit 0
May 24 18:35:59 ddns: Clear ddns cache.
May 24 18:35:59 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:35:59 myusername: [domain]:ddns.xxxxyz
May 24 18:35:59 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:35:59 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:35:59 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:36:00 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:36:00 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:36:00 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:36:00 myusername: DDNS updadte pass
May 24 18:36:00 ddns: Completed custom ddns update
May 24 18:36:30 watchdog: start ddns.
May 24 18:36:30 ddns: update CUSTOM , wan_unit 0
May 24 18:36:30 ddns: Clear ddns cache.
May 24 18:36:30 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:36:30 myusername: [domain]:ddns.xxxxyz
May 24 18:36:31 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:36:31 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:36:31 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:36:32 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:36:32 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:36:32 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:36:32 myusername: DDNS updadte pass
May 24 18:36:32 ddns: Completed custom ddns update
May 24 18:37:02 watchdog: start ddns.
May 24 18:37:02 ddns: update CUSTOM , wan_unit 0
May 24 18:37:02 ddns: Clear ddns cache.
May 24 18:37:02 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:37:02 myusername: [domain]:ddns.xxxxyz
May 24 18:37:02 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:37:02 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:37:02 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:37:03 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:37:03 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:37:03 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:37:03 myusername: DDNS updadte pass
May 24 18:37:03 ddns: Completed custom ddns update
May 24 18:37:33 watchdog: start ddns.
May 24 18:37:33 ddns: update CUSTOM , wan_unit 0
May 24 18:37:33 ddns: Clear ddns cache.
May 24 18:37:33 custom_script: Running /jffs/scripts/ddns-start (args: 221.xxx.xxx.128)
May 24 18:37:33 myusername: [domain]:ddns.xxxxyz
May 24 18:37:34 myusername: [URL IPv4]:221.xxx.xxx.128
May 24 18:37:34 myusername: [DNS IPv4]:221.xxx.xxx.128
May 24 18:37:34 myusername: current IPV4 is the same as DNS IPV4 record, SKIP update
May 24 18:37:35 myusername: [URL IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:37:35 myusername: [DNS IPv6]:2408:xxxx:xx:xxx:xxx:xxx:xxx:4c4e
May 24 18:37:35 myusername: current IPV6 is the same as DNS IPV6 record, SKIP update
May 24 18:37:35 myusername: DDNS updadte pass
May 24 18:37:35 ddns: Completed custom ddns update

also found some ddns args from nvram show |grep ddns :

Code:
ddns_check_retry=10
ddns_enable_x=1
ddns_hostname_old=ddns.xxxx.xyz
ddns_hostname_x=ddns.xxxx.xyz
ddns_hostname_x_old=
ddns_ipv6_update=1
ddns_last_wan_unit=0
ddns_passwd_x=
ddns_realip_x=0
ddns_refresh_x=5
ddns_regular_check=0
ddns_regular_period=60
ddns_replace_status=0
ddns_return_code=200
ddns_return_code_chk=200
ddns_server_x=CUSTOM
size: 85477 bytes (45595 left)
ddns_server_x_old=CUSTOM
ddns_status=1
ddns_transfer=
ddns_update_by_wdog=
ddns_updated=1


the issue seems error in:

Code:
May 24 18:33:21 watchdog: start ddns.
May 24 18:33:21 ddns: update CUSTOM , wan_unit 0
May 24 18:33:21 ddns: Clear ddns cache.


how to fix it and use the webui setting value to force update ddns?


Thanks
 
Last edited:
after many retry, seems i have fixed it and found the root cause:
It caused by IPv6 update, just set IPv6 update to No, and it works well, my ddns-start script will auto update ipv6 ddns record.

maybe we need a /sbin/ddns_custom_updated ipv6 update option.
or just disable this option when we use custom_script to update ddns

now, I have add an notes in wiki :

Code:
Note: if you use custom scripts to update ddns with both IPv4 and IPv6, you may need to set WAN -> DDNS --> IPv6 Update--> No and use ddns-start script to update both IPv4 and IPv6 record.
 
*I'm unable to test this at the moment...
I believe the problem with the IPv6 update checkbox has been previously reported. I believe it comes about because the inbuilt script checks ppp0, but the IPv6 WAN address only appears in br0.
 
*I'm unable to test this at the moment...
I believe the problem with the IPv6 update checkbox has been previously reported. I believe it comes about because the inbuilt script checks ppp0, but the IPv6 WAN address only appears in br0.
yes, you are right, the script maybe checks ppp0, as I also found two many error log with: [no af_inet address found for ppp0] after I disabled IPv6 update from the DDNS setting web GUI.
so I rebooted the router, it works well now.
 
I've been looking at this myself today. Since I have IPv6 and a CGNAT IPv4 I see it as essential to have access to my home network over IPv6. I'd noticed the error in the logs relating to ppp0 not having an IPv6. I don't know if I'm just lucky but I was able to change ppp0 to br0 in /etc/inadyn.conf and it works. What gets me though is this edit is surviving reboots. I was thinking this was one of the files that get rewritten on boot, but it appears not so (at least in my case).
 
I have flashed Merlin 3004.388.7 firmeware to my AX86U and enabled custom ddns in /jffs/scripts/ddns-start with my custom domain like ddns.****.xyz
~~~
~~~
I believe the problem with the IPv6 update checkbox has been previously reported. I believe it comes about because the inbuilt script checks ppp0, but the IPv6 WAN address only appears in br0.
yes, you are right, the script maybe checks ppp0, as I also found two many error log with: [no af_inet address found for ppp0] after I disabled IPv6 update from the DDNS setting web GUI.
so I rebooted the router, it works well now.
Great that you've solved the issue @wuwentao but FWIW / other thread readers, it would appear that this ^ issue might only be a factor, when you've created a inadyn.conf config file and a ddns-start script that's pointed at that custom config. That's what you have done here I believe? (as per Merlin DDNS Services GitHub guidance page).

Example: I use a IPv4 / IPv6 stack via FTTH from my ISP, which is bridged through to my AX86U. I use the default WEBUI DDNS services for asuscomm.com DDNS, but I've also created a inadyn.conf.add file and I use this to update no-ip.com DDNS services at the same time. The IPv6 update option is set to YES and everything works perfectly, every time. i.e. The IPv4 and IPv6 (via ppp) DDNS services from both providers, updates regularly, without any issues, every time, even after a re-boot and / or a Merlin firmware upgrade.

Prior to ASUS (finally!) fully supporting IPv6, DDNS Services were a little bit hit and miss, but once they did (and fixed the initial bugs), it's been 100% reliable since (for me)
 
Last edited:
Great that you've solved the issue @wuwentao but FWIW / other thread readers, it would appear that this ^ issue might only be a factor, when you've created a inadyn.conf config file and a ddns-start script that's pointed at that custom config. That's what you have done here I believe? (as per Merlin DDNS Services GitHub guidance page).

Example: I use a IPv4 / IPv6 stack via FTTH from my ISP, which is bridged through to my AX86U. I use the default WEBUI DDNS services for asuscomm.com DDNS, but I've also created a inadyn.conf.add file and I use this to update no-ip.com DDNS services at the same time. The IPv6 update option is set to YES and everything works perfectly, every time. i.e. The IPv4 and IPv6 (via ppp0) DDNS services from both providers, updates regularly, without any issues, every time, even after a re-boot and / or a Merlin firmware upgrade.

Prior to ASUS (finally!) fully supporting IPv6, DDNS Services were a little bit hit and miss, but once they did (and fixed the initial bugs), it's been 100% reliable since (for me)
Thank very much for youre reply, I'm using custom ddns, NO inadyn.conf exist, only ddns-start script is enough, follow with [https://github.com/RMerl/asuswrt-merlin.ng/wiki/Custom-DDNS], I just write script to update both IPv4 and IPv6 dns record.
as I'm using my domain name, it's cheap with .xyz domain suffix
 
I've been looking at this myself today. Since I have IPv6 and a CGNAT IPv4 I see it as essential to have access to my home network over IPv6. I'd noticed the error in the logs relating to ppp0 not having an IPv6. I don't know if I'm just lucky but I was able to change ppp0 to br0 in /etc/inadyn.conf and it works. What gets me though is this edit is surviving reboots. I was thinking this was one of the files that get rewritten on boot, but it appears not so (at least in my case).
thank you, as I'm using custom domain name with .xyz domain suffix, not inadyn.conf, so I just use ddns-start script to do all the jobs follow with [https://github.com/RMerl/asuswrt-merlin.ng/wiki/Custom-DDNS]
I have update the ipv6 update note to current wiki document
 
Thank very much for youre reply, I'm using custom ddns, NO inadyn.conf exist, only ddns-start script is enough, follow with [https://github.com/RMerl/asuswrt-merlin.ng/wiki/Custom-DDNS], I just write script to update both IPv4 and IPv6 dns record.
as I'm using my domain name, it's cheap with .xyz domain suffix
Understood. My error, sorry. I should have mentioned, that both options are available (for those who wish to create a a ddns-start script) as you can see from our respective Links.
Your choice of using a ddns-start script only (as per the link you've posted), does now feature your Wiki note too, which is good for any users making the same choice as yourself.
 
Do you mind sharing this script?
Sure, no problem. It's posted below (with personal data redacted). It's as per the guidelines on THIS section of the Merlin DDNS Services GitHub page.
It's extremely simple, updates both IPv4 & IPv6 addresses on no-ip.com, whilst the router WEBUI DDNS page, updates both IPv4 & IPv6 addresses on asuscomm.com
You need to create a DDNS Key and password etc on no-ip.com first, as they form part of this inadyn.conf.add file

#Inadyn No-IP DDNS configuration file

provider no-ip.com {
hostname = all.ddnskey.com
username = '*************'
password = '*******************'
}
iterations = 1
iface = ppp0
 
Sure, no problem. It's posted below (with personal data redacted). It's as per the guidelines on THIS section of the Merlin DDNS Services GitHub page.
It's extremely simple, updates both IPv4 & IPv6 addresses on no-ip.com, whilst the router WEBUI DDNS page, updates both IPv4 & IPv6 addresses on asuscomm.com
You need to create a DDNS Key and password etc on no-ip.com first, as they form part of this inadyn.conf.add file
Brilliant. Seems to be working fine with ppp0, thank you. Didn't need to create a key as my normal password is accepted. Will look at using a key later though 😁
 
I have a RT-AX55 that has no Merlin version so I cannot use my own DDNS scripts therefore I cannot fix it that way.
I see in the log file that it checks the Local IPv6 address on the LAN side instead of the external IPv6 address and therefore forces an update every minute again and again.

Aug 6 10:28:53 watchdog: start ddns.
Aug 6 10:28:53 ddns: update WWW.DYNDNS.ORG default@dyndns.org, wan_unit 0
Aug 6 10:28:53 ddns: Clear ddns cache.
Aug 6 10:28:53 ddns: Start Inadyn(9).
Aug 6 10:28:53 inadyn[24174]: In-a-dyn version 2.8.1 -- Dynamic DNS update client.
Aug 6 10:28:53 inadyn[24174]: IPv6 address fe80::ca7f:54ff:fe1c:b580 is not a valid Internet address.
Aug 6 10:28:53 inadyn[24174]: Update forced for alias xxxxx.xxxxx.com, new IP# 2001:1c04:1300:0:24bf:d170:a4c1:f729
Aug 6 10:28:54 inadyn[24174]: Updating cache for xxxxx.xxxxx.com
Aug 6 10:28:54 ddns: ddns update ok

Is there already a fix for this where the proper IPv6 address is used for the DDNS check?

By the way: the Zen Wifi routers do not seem to have this problem.
 
Last edited:
If there were a "sensible" fix for this I'd probably be using the AsusWRT firmware. So you can fix it, but it's not persistent and won't survive a reboot!
 
If there were a "sensible" fix for this I'd probably be using the AsusWRT firmware. So you can fix it, but it's not persistent and won't survive a reboot!
That would be a very unpractical solution if I would have to do that again after every reboot. For now I turned off the "update IPv6" option in the DDNS settings.
 
I have a RT-AX55 that has no Merlin version so I cannot use my own DDNS scripts therefore I cannot fix it that way.
I see in the log file that it checks the Local IPv6 address on the LAN side instead of the external IPv6 address and therefore forces an update every minute again and again.

Aug 6 10:28:53 watchdog: start ddns.
Aug 6 10:28:53 ddns: update WWW.DYNDNS.ORG default@dyndns.org, wan_unit 0
Aug 6 10:28:53 ddns: Clear ddns cache.
Aug 6 10:28:53 ddns: Start Inadyn(9).
Aug 6 10:28:53 inadyn[24174]: In-a-dyn version 2.8.1 -- Dynamic DNS update client.
Aug 6 10:28:53 inadyn[24174]: IPv6 address fe80::ca7f:54ff:fe1c:b580 is not a valid Internet address.
Aug 6 10:28:53 inadyn[24174]: Update forced for alias xxxxx.xxxxx.com, new IP# 2001:1c04:1300:0:24bf:d170:a4c1:f729
Aug 6 10:28:54 inadyn[24174]: Updating cache for xxxxx.xxxxx.com
Aug 6 10:28:54 ddns: ddns update ok

Is there already a fix for this where the proper IPv6 address is used for the DDNS check?

By the way: the Zen Wifi routers do not seem to have this problem.
my solution is :
WAN --> DDNS --> IPv6 update --> No

after disable this option, it works well, and I will process all the info in my custom scripts.
 
my solution is :
WAN --> DDNS --> IPv6 update --> No

after disable this option, it works well, and I will process all the info in my custom scripts.
I used the same solution, but I needed to update IPv6 as well for my noip ddns. So I installed the duc on a server at home that updates the IPv6, leaving IPv4 for the router to deal with.
 
I used the same solution, but I needed to update IPv6 as well for my noip ddns. So I installed the duc on a server at home that updates the IPv6, leaving IPv4 for the router to deal with.
if you are using custom script, you can do anything for you , also include ipv6, and no need to enable this option.
I'm using a custom script to do it , just follow the wiki, and disable this ipv6 update is enough.
my script will auto update the ipv6 AAAA record to my ddns domain.
 
I believe the discussion is still looking at means to do this and make it persistent while using regular Asus firmware.
 
I actually run a quick test with current Asuswrt for RT-AX86U and No-IP DDNS with IPv6 Native. The same result with IPv6 DDNS update enabled - update messages every minute in System Log. Surprised no one noticed and reported it in Asuswrt firmware release thread. 🧐
 

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top