IP Manager

IP Manager LogoThe IP Manager is a tool we created in order to manage our DNS zone files.

Working on those manually is time consuming and many of the parameters (most, actually!) are repeated between all the different files. Not only that, you are much more likely to have (many) mistakes.

Instead, the ipmgr command line tool reads configuration files and transforms them in Bind9 compatible zone files. It also takes care of restarting bind9 when something changed.

Ultimately, we would like to use the rndc and nsupdate tools to dynamically create zones and add sub-domains to them. However, our attempts at using those tools at the time we created ipmgr did not succeed. Setting up the permissions properly seems to require quite a bit of work. Note that although we do not use those tools, the ipmgr configuration files can be setup for dynamically updateable zones. This is important in various situations such as automatically setting up an SSL (TLS really now) certificate with letsencrypt.


The project is setup to automatically detect when another package installs ipmgr configuration files and run the ipmgr tool to make sure the file is automatically installed.

The only requirement is for your project to install ipmgr configuration files under:


Then the ipmgr.postinst script kicks in and re-run the ipmgr command with the new setup in place.

DNS Options

The project comes with a command line tool one can use to edit the DNS settings of bind9. Unfortunately, the format used for those settings is rather complicated and our tool is not 100% compatible. It can still update most of the options that you would want to automatically update in an installation script.

The project includes a script called dns-setup which tweaks the settings to be closer to being PCI DSS compliant than the defaults offered in bind9.

Side Note: to edit the ipmgr configuration files, you instead want to use the edit-config tool found in our Advanced getopt library, or just a simple editor if you are writing those yourself.


The two tools have manual pages that get installed. You can read them with:

man ipmgr
man dns-options


You got a problem with the ipmgr tool? An idea to improve it? Please post a ticket in the Support area of Github or even better offer a PR.

Coverage Test Results

Access full page here.

The library has a test suite that covers 100% of the code, making it a little more certain that it does not include too many bugs. We try to run the tests each time we create a new version to ensure that it works as expected.


Snap! Websites
An Open Source CMS System in C++

Contact Us Directly