DDNS update reports success ("nochg"/"good") but the DNS record for the bare domain is not updated on the authoritative server.
Nobody has claimed this yet.
- Dominant language
- Makefile
- Stars
- 4.6k
- Forks
- 4k
- Avg merge
- 3d 12h
- Merged PRs (30d)
- 134
Description
Package Name
ddns-scripts
Maintainer
@feckert
OpenWrt Version
OpenWrt 19.07-SNAPSHOT
OpenWrt Target/Subtarget
OpenWrt 19.07-SNAPSHOT
Steps to Reproduce
To reproduce
- Configure DDNS on OpenWrt with:
service: no-ip.com
domain: pr60xddnsnoip.net (bare domain) - Trigger update via:
/usr/lib/ddns/dynamic_dns_updater.sh - Observe DDNS log:
Response: nochg <current_ip>
Actual behaviour
Even after successful DDNS update, querying authoritative DNS:
dig @ns1.no-ip.com pr60xddnsnoip.net Returns old IP (8.8.8.8)
Expected behaviour
After successful DDNS update, authoritative DNS should return updated public IP.
Additional info
- DDNS update URL used: https://dynupdate.no-ip.com/nic/update
- Manual curl test: curl "https://user:pass@dynupdate.noip.com/nic/update?hostname=pr60xddnsnoip.net&myip=127.0.0.1"Response: nochg 127.0.0.1
- Network: WAN dynamic IP
Question
- Does OpenWrt DDNS support updating bare domains (@) with No-IP and we have similar issue with the easyDNS also?
- Or is this a provider limitation where only subdomains are supported?
Logs
123822 : ************ ************** ************** ************** 123822 note : PID '6188' started at 2026-03-12 12:38 123822 : ddns version : 2.8.2-2026.03.02.1772459543-56ffef36 123822 : uci configuration: ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.check_interval='10' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.check_unit='minutes' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.ddns_status='2' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.domain='pr60xddnsnoip.net' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.enabled='1' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.interface='wan' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.ip_source='web' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.ip_url='https://ipv4.wtfismyip.com/text' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.lookup_host='pr60xddnsnoip.net' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.password='11yBupEeiypu' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.profile_name='Test1' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.service_name='http://no-ip.com ' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.use_https='1' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.use_syslog='1' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa.username='he2jkzt@ddnskey.com' ddns.df4cc69e_9bd2_49b3_a2a3_b219274647fa=service 123822 : verbose mode : 2 - run once, NO retry on error 123822 : check interval: 600 seconds 123822 : force interval: 259200 seconds 123822 : retry interval: 60 seconds 123822 : retry max count : 0 times 123822 : 'SIGTERM' was send to old process 123822 : last update: 2026-03-12 12:38 123822 : Detect registered/public IP 123822 : #> /usr/bin/nslookup pr60xddnsnoip.net >/var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat 2>/var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err 123822 : Registered IP '8.8.8.8' detected 123822 info : Starting main loop at 2026-03-12 12:38 123822 : Detect current IP on 'web' 123822 : #> /usr/sbin/mwan3 use wan /usr/bin/curl -RsS -o /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat --stderr /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err 'https://ipv4.wtfismyip.com/text' Running '/usr/bin/curl -RsS -o /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat --stderr /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err https://ipv4.wtfismyip.com/text' with DEVICE=eth0 SRCIP=192.168.1.157 FWMARK=0x3f00 FAMILY=ipv4 123823 : Current IP '122.184.118.114' detected on web at 'https://ipv4.wtfismyip.com/text' 123823 : Update needed - L: '122.184.118.114' <> R: '8.8.8.8' 123823 : parsing script '/usr/lib/ddns/update_no-ip_com.sh' 123823 : sending dummy IP to 'http://no-ip.com ' 123823 : #> /usr/sbin/mwan3 use wan /usr/bin/curl -RsS -o /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat --stderr /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err 'https://he2jkzt%40ddnskey.com:11yBupEeiypu@dynupdate.noip.com/nic/update?hostname=pr60xddnsnoip.net&myip=127.0.0.1' Running '/usr/bin/curl -RsS -o /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat --stderr /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err https://he2jkzt%40ddnskey.com:11yBupEeiypu@dynupdate.noip.com/nic/update?hostname=pr60xddnsnoip.net&myip=127.0.0.1' with DEVICE=eth0 SRCIP=192.168.1.157 FWMARK=0x3f00 FAMILY=ipv4 123824 : 'http://no-ip.com ' answered: nochg 127.0.0.1 123825 : sending real IP to 'http://no-ip.com ' 123825 : #> /usr/sbin/mwan3 use wan /usr/bin/curl -RsS -o /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat --stderr /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err 'https://he2jkzt%40ddnskey.com:11yBupEeiypu@dynupdate.noip.com/nic/update?hostname=pr60xddnsnoip.net&myip=122.184.118.114' Running '/usr/bin/curl -RsS -o /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.dat --stderr /var/run/ddns/df4cc69e_9bd2_49b3_a2a3_b219274647fa.err https://he2jkzt%40ddnskey.com:11yBupEeiypu@dynupdate.noip.com/nic/update?hostname=pr60xddnsnoip.net&myip=122.184.118.114' with DEVICE=eth0 SRCIP=192.168.1.157 FWMARK=0x3f00 FAMILY=ipv4 123826 : 'http://no-ip.com ' answered: nochg 122.184.118.114 123826 info : Update successful - IP '122.184.118.114' send 123826 : Waiting 600 seconds (Check Interval)
Actual Behaviour
Even after successful DDNS update, querying authoritative DNS:
dig @ns1.no-ip.com pr60xddnsnoip.net
Returns old IP (8.8.8.8)
Confirmation Checklist
- The package is maintained in this repository.
- I understand that issues related to the base OpenWrt repository or LuCI repository will be closed.
- I am reporting an issue for OpenWrt, not an unsupported fork.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with /usr/lib/ddns/dynamic_dns_updater.sh and /usr/lib/ddns/update_no-ip_com.sh, then reproduce the request with curl and verify the result using dig against the authoritative server. Compare the provider's handling of the bare domain, the dummy-IP response, and the real-IP response. Done means establishing whether the update script or No-IP's bare-domain support is responsible and documenting or correcting the behavior accordingly.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- shell
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100