BIND HTTP "API"

Solution 1:

This has been an ongoing request from BIND admins for many years. BIND 9 has the facility built-in to swap out the storage-handling to an alternative mechanism than the default. There have been various attempts at using this facility, and one that appears to still be maintained is the MySQL BIND SDB driver, which looks as if it meets the needs you edited your question to include - so you'll still need to write/find a PHP/HTTP front-end for the database.

A quick Google search for "database backend for bind" provides further reading, but keep in mind any such solution to include database support into BIND will require a system on which you can compile BIND + driver code, so you may want to have another host to do this on for security reasons.

As always, HTH and YMMV.

Solution 2:

You can configure a dynamic zone,

zone "example.com." {
    ...
    update-policy local;
};

and update using nsupdate -l:

$ nsupdate -l
> zone example.com
> update add foo.example.com 7200 A 1.2.3.4
> send

Solution 3:

BIND 9 comes with DLZ (http://bind-dlz.sourceforge.net/mysql_driver.html) included already: http://www.nlnet.nl/project/bind-dlz/

As a goodie for DLZ updates perhaps this will also be useful

http://www.ducksong.com/bind-dlz-xmlrpc-bridge.php

http://code.google.com/p/dnseditor/


Solution 4:

There's an ongoing "Name Server Control Protocol" effort at the IETF intended to design a common API for performing exactly those functions across different DNS server implementations.

See http://dnsccm.org/ for more details, including info about a forthcoming implementation of NSCP.