Working like crazy Bind Dlz Sync
07
Nov
So i have been working on a Bind Dlz sync software solution. It has been going very well, and i have learned allot. I plan on having the documentation done this week in beta form. I am going to post it here and a link on the Bind Dlz mailing list.
For those of you who don't know what Bind Dlz(Bind Dynamic Loaded Zone). Bind Dlz is simply Bind with a database to hold it's zone files. So when you update the database your DNS server has the changes right away. So there is now no need to edit zone config files and restart bind.
Granted the setup with Bind and Postgresql was easy. Since we have a custom front-end that handles making the experience more user friendly we needed to create a view that bind could select from that would give it all the data it needed. This was fine for our first go at it, but the performance of using Postgresql or MySql as the backed database was not terrible but also not the best. And knowing i like a good challenge i opted to build a tool that would sync from our Postgresql database and the Berkeley Database that i wanted to use with bind.
So now what we have is a very alpha stage version of BindDlzSync. It's a java app that runs on a port that you specify waiting for a connection. You can connect to it send it some formated XML it will parse the xml and update the database as needed. But it gets better. Since i have a public view and a private view i needed to be able to update these two different views, but do it in a way that was easy and expandable.
So what you can do with BindDlzSync is in the config file for the app you can specify different view databases to load. So right now i have public and private. In the Web Managment UI when you add a host you can pick which view that host belongs to. Also the editor allows you to add many hosts before a commit. That way if you have a host that needs to be in both private and public, but you need to change the ip address you can add it once, change the ip and view then add it again before having to click save. Or you can just add and clear and add in a different host. I will post a video of how the whole thing works. It's very nice, but needs some refinement.
Some things left to do is ip checking for a view. What this will do is insure that someone does not try to add a ip address to a view that should not have it.
There are some other features that i want to add, i will list them later.
For those of you who don't know what Bind Dlz(Bind Dynamic Loaded Zone). Bind Dlz is simply Bind with a database to hold it's zone files. So when you update the database your DNS server has the changes right away. So there is now no need to edit zone config files and restart bind.
Granted the setup with Bind and Postgresql was easy. Since we have a custom front-end that handles making the experience more user friendly we needed to create a view that bind could select from that would give it all the data it needed. This was fine for our first go at it, but the performance of using Postgresql or MySql as the backed database was not terrible but also not the best. And knowing i like a good challenge i opted to build a tool that would sync from our Postgresql database and the Berkeley Database that i wanted to use with bind.
So now what we have is a very alpha stage version of BindDlzSync. It's a java app that runs on a port that you specify waiting for a connection. You can connect to it send it some formated XML it will parse the xml and update the database as needed. But it gets better. Since i have a public view and a private view i needed to be able to update these two different views, but do it in a way that was easy and expandable.
So what you can do with BindDlzSync is in the config file for the app you can specify different view databases to load. So right now i have public and private. In the Web Managment UI when you add a host you can pick which view that host belongs to. Also the editor allows you to add many hosts before a commit. That way if you have a host that needs to be in both private and public, but you need to change the ip address you can add it once, change the ip and view then add it again before having to click save. Or you can just add and clear and add in a different host. I will post a video of how the whole thing works. It's very nice, but needs some refinement.
Some things left to do is ip checking for a view. What this will do is insure that someone does not try to add a ip address to a view that should not have it.
There are some other features that i want to add, i will list them later.