7

First off, I'm a bit of a bind n00b so if I say things that don't make sense just ignore them =)

Is there any software that would allow "API" like commands for creating, updating, deleting etc. zones and records on BIND?
I have two DNS servers running on EC2 and I want to be able to easily manage domains on them from another app. I know something like CPanel has a HTTP API and interfaces with BIND but that's probably overkill for what I need. I don't mind installing Apache/PHP/Mysql/Python/Rails/Whatever else needed to get it to work but all the servers will be doing is DNS

EDIT: Or get BIND to use MySQL for storing it's config, then I could just write a simple PHP script to do the 'API' bits

2
  • Any reason not to just Amazon's Route53 DNS service?
    – ceejayoz
    Jun 4, 2011 at 15:09
  • Cost =) From our data we think we'll need to host about 500 domains, but each domain might only get a few requests per day and we'll have a high TTL so I don't think we need the features of R53.
    – user80776
    Jun 4, 2011 at 15:28

4 Answers 4

3

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.

2
  • Thanks that's pretty much exactly what I was looking for. I don't have a problem building my own PHP frontends so I'll spin up a couple of new EC2 instances and play about a bit
    – user80776
    Jun 4, 2011 at 15:29
  • 1
    You may find the following references opens up many possibilities: blog.fupps.com/2010/10/29/…
    – dmourati
    Jun 4, 2011 at 17:12
3

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
3

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.

2

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/

You must log in to answer this question.