Easier ways to manage DNS.
Todays DNS management is mostly web based using 3rd parties like GoDaddy or Tucows to actually manage your domains and point either to a 3rd party hosting company like HostGator or Netfirms. So what, what does this mean to me, there are already solutions to do what I want right?
Well for the most part that statement might be correct, but what if you want some level of control over your DNS or the interface that manages the service. A couple of years ago, someone came up with the idea of DLZ or Dynamic Loadable Zones which is an easy way to add DBMS management support to ICS Bind.
Using Dynamic Loadable Zones
The ability to use dynamc loadable zoned means a few things, first, it is possible to update the zones using SQL which is somewhat easier syntax wise then the traditional file system method, and the service does not have to be restarted to make changes applicable. There is one small issue however, which is access speed and potential overhead to system resources to having to run another service, but the nice thing is depending on the setup, backups, can be a lot easier as would be the possibility of offloading the database portion to another server or server farm entirely. One final note about using an actuall database to manage dns is adding a layer of abstraction between the filesystem and the interface that manages DNS which could be an added security benefit, but could also be a security drawback depending on wether or not you have a shared system for database/web/dns services.
SQLite is an open source Database Management System that manipulates files only and has no network access by default which is one bonus for certain applications. SQLite has been ported to windows/linux and is widely implemented in many projects ( including Mozilla Firefox ) . Before I started out SQLite was not supported by the DLZ because there was no driver written. The driver however, was an easy port from a mysql driver that was already written and any other DBMS should be pretty easy to write as well. I chose to develop the solution on windows at first and ported the driver to Solaris afterwards of which there was only minor alterations with using sqlite library itself as there are subtle differences between unix/windows versions.
Php/Apache is a wonderful combination of open source software to complete the package and make a nice interface to manage everything. This, however, is the stage that I am working on at the moment. To check out a demo of this software along with sources, feel free to post a comment. The sources themselves without the sqlite driver can be downloaded directly from the ICS website.