Opened 5 years ago

Last modified 4 years ago

#12964 new defect

DDNS updater with DNS-O-Matic

Reported by: zandhaas Owned by: developers
Priority: normal Milestone: Chaos Calmer 15.05
Component: packages Version: Trunk
Keywords: DDNS Cc: Peter.Strijbosch@…


The DDNS updater keeps updating the WAN-ip with the DDNS providers added to DNS-O-Matic.

The problem is the "domain" that has to be used with DNS-O-Matic which is "".
The updater script uses this domain to find out the current IP of your WAN connection. But the ip of "" is not the ip of your wan connection so the ddnsupdater thinks the WAN ip has changed and starts the update proces.

I solved it by changing the "/usr/lib/ddns/" script

I changed the following line:

registered_ip=$(echo $(nslookup "$domain" 2>/dev/null) | grep -o "Name:.*" | grep -o "$ip_regex")


registered_ip=$(echo $(nslookup "" 2>/dev/null) | grep -o "Name:.*" | grep -o "$ip_regex")

Where "" is one of the 4 ddns domain names I update with dns-o-matic.

It's a workaround.

I use the following config in the Luci app:

Event interface: WAN
Username <username>
Password <password>
Source of IP address: Network
Network: WAN
Check for changed IP every: 10
Check-time unit: m
Force update every 72
Force-time unit h

Attachments (0)

Change History (3)

comment:1 Changed 5 years ago by sami+openwrt@…

You put your domain to the domain/hostname section, you don't need their updatelookup as in your very config you have set up source of IP to network, and interface to WAN, which means openwrt will check IP from the WAN directly, no need for external check... if you do really need to check your IP from their server in question, you change the Source of IP address to URL, and then define the update-URL to next field...

So DDNS-Script works just as should and what you want is already supported, this ticket should be closed :)

comment:2 Changed 5 years ago by zandhaas

I just party do agree with you. And the DDNS updater script works as it should until you are using the "DNS-O-MATIC" option.

To check if my WAN IP has changed the DDNS update package needs two sources.

  1. My current WAN IP addres which it directly takes from my WAN interface as you state in your comment. And there is indeed no need for an external check.
  2. Check the IP-Adress which is known by my ddns provider ex To check this IP-adres the DDNSupdater script does a NS-lookup with ex DDNS name (hostname / Domain).

Then the updater script compares these two IP-adressen and only if these two addresses are different an update request is send to the DDNS provider.

And yes if you use ex as your only DDNS provider this will work perfectly.

But I have different DDNS providers and I use OpenDNS as my DNS (not DDNS) provider.

To handle more DDNS domains names at once OpenDNS provides a service called DNS-O-Matic.
There you can define all your DDNS domains and according providers.

To update all thes DDNS names you have to configure "" as a hostname in your DDNS config. And this is where is going wrong. Because the IP-Adres of has nothing to do with my WAN-ip. ANd so every check (every 10 min by default) all my DDNS providers will get an update request for my DDNS names because the DDNS updater script thinks the ip-adress has changed.

comment:3 Changed 4 years ago by anonymous

I agree there's a problem. It looks up, not my real domain, therefore it of course is different from my domain every time, and update at every check which is unnecessary.

Add Comment

Modify Ticket

as new .

E-mail address and user name can be saved in the Preferences.

Note: See TracTickets for help on using tickets.