Updating DNS Zones using SOAP API

We have been using dyndns for dealing with the dynamic IP’s of our customers that we do some remote services for so we can access their networks, dyn has added some limitations on even their paid accounts so we are looking to create our own dyndns solution.

To that effect we have written some simple php scripts to access our nodeworx server and update A records in a zone and that is working nicely, we set the ttl on the A record so that dns servers will only cache it for 5 minutes

What we are running into is that it seems that using the SOAPAPI (or the web management pages) to edit a DNS zone it isnt reflected in the live DNS server immediately, it appears to take about 15 minutes or so to actually push any changes live to the dns server

We are looking to either get the server to force an update when an update is needed (ie clients IP address changes) or to schedule the refresh at a smaller interval that wont greatly impact the performance of the server.

Is there a way using the API to cause the server to update itself??

If not how would we go about making the dns server refresh its copy of the database to reflect the changes made by the api in a smaller interval??

If we change the refresh to a smaller interval, say every 5 minutes, what impact does this have on performance of the server (dns currently has about 900 records across multiple zones)??

For the record, we answered this one in a support ticket, but here’s what’s going on here:

When your DNS changes go into the database, a script is run at the next fively that exports those changes. The command, ‘~iworx/cron/dns.pex --sync --export --cdb’, is not exposed in the API. For now, you can have it run from your update script if that’s possible.

That’s a bug and I’ve filed a bug report - One of our software engineers says it’ll be trivial to add that function to the API and we’ll get to it ASAP.

This is very good post.


abdul rehman