Is there a way to programatically update DNS records?

Is there a standard way to programatically update DNS records? Services like Route 53 do offer programmatic access, but is that possible in a generic way using some standard protocol? Or it depends on the registrar (e.g. I read that GoDaddy don't allow programmatic access)


Solution 1:

There is a standardized interface. RFC 2136 describes it. The nsupdate program that comes with BIND implements it. As far as I know most DNS servers support it. You'll have to shop around carefully though unless you're running your own DNS servers, as a lot of providers don't enable it.

http://en.wikipedia.org/wiki/Dynamic_DNS#Standards-based_dynamic_DNS_update http://www.zytrax.com/books/dns/ch7/xfer.html#allow-update

Solution 2:

You could easily run your own DNS system. Bind9's text file databases can be easy manipulated.

Solution 3:

jeffsnider's answer is correct. However, be aware you can also do the 'hidden master' trick. Here your primaries slave (i.e. AXFR) from a 'hidden master'. That hidden master need only support AXFR. An easy way to achieve this is to run the nameserver of your choice and generate text files for it in perl or whatever. You need not worry about performance or reloading it as it won't be receiving any real queries. It can be behind a firewall if necessary.