ddns force update is ineffective in some cases.
Those of Internet service providers who give you the same IP if you keep turn on the modem and router all the time, is what I am talking about.
If your WAN IP is stays same throughout a week, Gargoyle will use that same IP to perform a force update on whatever DDNS service you have registered by default. (well, force update is always done with same IP as already registered on DDNS service server by definition)
And fail.
Because all major DDNS service providers never allow a forced update as long as the provided IP is same IP as on their DB. They just reply with "No need to update" message. And this attempt does not count as an activity. After certain period of time, they remove the host name from their DB, with email stating that to prevent removal due to inactivity, a paid account is necessary. (on Gargoyle, the forced update attempt is recorded as a successful, which is not totally true.)
That effectively negates any forced update attempt by Gargoyle. (and ddns-scripts, and ddclients) What I am saying is that so-called 'force update' does not, in fact, exist, if you use a free account with dyndns.com, no-ip.com, etc., probably most of us do.
I see this as a critical matter. I actually had reported this to openwrt forum very long time ago and got no response. Am I doing something wrong here? Having the same WAN IP for very long time, if you never turn off your modem and router is not that common? Or is this some kind of taboo to talk about this?
I just had to manually update my host entry on no-ip, and have been doing this every month, I receive a warning from no-ip every month, because force update never works.
ddns force update is ineffective in some/all cases
Moderator: Moderators
- DoesItMatter
- Moderator
- Posts: 1373
- Joined: Thu May 21, 2009 3:56 pm
Re: ddns force update is ineffective in some/all cases
I am not sure this is an OpenWRT issue or Gargoyle issue
I have a couple of no-ip hosts that I use as freebies.
Even though I use them all the time, I get the reminder from
No-IP saying they were inactive and I have to renew them every
30 days via web and enter in the "captcha" information
I'm pretty sure this is all marketing and they do this in the hope that
you get tired of having to do this and use their paid service.
I have a couple of no-ip hosts that I use as freebies.
Even though I use them all the time, I get the reminder from
No-IP saying they were inactive and I have to renew them every
30 days via web and enter in the "captcha" information
I'm pretty sure this is all marketing and they do this in the hope that
you get tired of having to do this and use their paid service.


2x Asus RT-N16 = Asus 3.0.0.4.374.43 Merlin
2x Buffalo WZR-HP-G300NH V1 A0D0 = Gargoyle 1.9.x / LEDE 17.01.x
2x Engenius - ESR900 Stock 1.4.0 / OpenWRT Trunk 49400
Re: ddns force update is ineffective in some/all cases
It is a gargoyle problem.
Gargoyle-router uses C compiled binary called 'ddns-gargoyle'.
Unlike its counter-part, openwrt's ddns-scripts, which is a set scripts, gargoyle version is a binary, cannot be rearranged easily.
Anyway, in any version of updater, "Forced IP update" does not function as it should in most caes, but people does not care to see that.
Yes, the current situation is created by changes in DDNS companies' free service policy, I don't blame them though, but I guess it's devs' turn to do something about it, at lesat let people know the situation that this makes ddns client almost pointless, if you stick with most DDNS companies' free service. (probably most users fall into this catergory)
Well, the best solution so far is to replace 'ddns-gargoyle' with more editable 'ddns-scripts' and do whatever needed. The said problem can be very easily overcome by adding a bogus IP update 'curl' call just before the actual IP update call, making it an actual IP change. I do that with Openwrt's script, not sure it's OK to bypass things like that.
FYI, popular DDCLIENT has the same problem.
Gargoyle-router uses C compiled binary called 'ddns-gargoyle'.
Unlike its counter-part, openwrt's ddns-scripts, which is a set scripts, gargoyle version is a binary, cannot be rearranged easily.
Anyway, in any version of updater, "Forced IP update" does not function as it should in most caes, but people does not care to see that.

Yes, the current situation is created by changes in DDNS companies' free service policy, I don't blame them though, but I guess it's devs' turn to do something about it, at lesat let people know the situation that this makes ddns client almost pointless, if you stick with most DDNS companies' free service. (probably most users fall into this catergory)
Well, the best solution so far is to replace 'ddns-gargoyle' with more editable 'ddns-scripts' and do whatever needed. The said problem can be very easily overcome by adding a bogus IP update 'curl' call just before the actual IP update call, making it an actual IP change. I do that with Openwrt's script, not sure it's OK to bypass things like that.
FYI, popular DDCLIENT has the same problem.
Re: ddns force update is ineffective in some/all cases
It's true that the ddns updater is a binary, but the rules for doing an update are in a plain-text configuration file, /etc/ddns_providers.conf
Incidentally, I wrote the initial version of ddns_scripts that OpenWrt uses as well. I switched to using the binary version in Gargoyle because it can link to an SSL library and do updates via https, and thus is more secure. Busybox wget (which ddns_scripts uses), doesn't link to an SSL library.
Anyway... regarding your problem, look in /etc/ddns_providers.conf and look for the no-ip.com entry. The url_template variable specifies the URL that gets called whenever an update is forced or needed:
Here [[USERNAME]], [[PASSWORD]], [[DOMAIN]], [[IP]] are replaced, respectively, with your username, password, domain and IP.
Can you determine an alternate URL that will do an update such that you don't need to do a manual update to keep the service going? If so, let me know and I'll change it. Since /etc/ddns_providers.conf is just a text file, you can change it yourself, but if there's a better solution I'd be happy to include it in the firmware.
Incidentally, I wrote the initial version of ddns_scripts that OpenWrt uses as well. I switched to using the binary version in Gargoyle because it can link to an SSL library and do updates via https, and thus is more secure. Busybox wget (which ddns_scripts uses), doesn't link to an SSL library.
Anyway... regarding your problem, look in /etc/ddns_providers.conf and look for the no-ip.com entry. The url_template variable specifies the URL that gets called whenever an update is forced or needed:
Code: Select all
https://dynupdate.no-ip.com/ducupdate.php?username=[[USERNAME]]&pass=[[PASSWORD]]&h[]=[[DOMAIN]]&ip=[[IP]]
Can you determine an alternate URL that will do an update such that you don't need to do a manual update to keep the service going? If so, let me know and I'll change it. Since /etc/ddns_providers.conf is just a text file, you can change it yourself, but if there's a better solution I'd be happy to include it in the firmware.