Skip to end of metadata
Go to start of metadata

The M&M Suite is a solution to manage DNS servers. Natively ISCs BIND DNS and Windows DNS is supported. We've seen an increase in other DNS servers showing up in production environments as well as DNS as a service of Cloud providers. With version 6.7 of the M&M Suite new functions has been added to the DNS Server Controller, which makes the Controller much more flexible and enables the M&M Suite to communicate with such new DNS server types.

How to install and configure the Generic DNS Server Controller

  1. On Windows run the Controller installer (x32 or x64 - depending on the OS version). There is no special Generic Controller installer - just use the normal Controller installer.
  2. Install a script interpreter. We recommend to use Python as we provide example connector scripts for Python (2.7.x).
  3. Add the GenericDNSScript XML tag to the preferences.cfg file. If the preferences.cfg file is not present please create it.
    On Windows 2008/2012 R2 the preferences.cfg file is located under the hidden directory

    C:\ProgramData\Men and Mice\DNS Server Controller

    Following an example config for the python interpreter and a connector script located on the C drive in the scripts sub-directory:

    The script implements the generic API and interfaces with the DNS server itself.

  4. Login to the M&M Management Console and add the new generic DNS server. Select as Server Type "Generic". The name and optional IP address must point to the machine that runs the Generic DNS Server Controller.




Reading, modifying zone/server options, reading logs, clearing cache, controlling the server itself is not possible by the API yet. Depending on the connector script, only master zones are currently supported. That means no slave zones or special zones like forward or stub zones are supported for Amazon Route53, but slave zones are though supported on PowerDNS.

Of course the connector script could interface with a slave zone and return an error when Central tries to update the zone. However, the zone will show up as zone of type "Master" in the M&M Suite. In other word everything else than reading/writing/updating master zones and their zone data is currently not supported.

Available Connector Scripts

Amazon Route53

The connector script allows the M&M Suite to communicate/manage zones/records in Amazons Route53 cloud based DNS.

All DNS RFC compatible record types are supported:

Amazons extended record types are not supported:

The connector script is written in Python (2.7.x) and uses the "boto" library to communicate with the Amazon AWS Route53 web service:
1. Install boto on the computer running DNS remote, i.e.
        $ pip install boto
        $ easy_install boto

2. Add your Route53 credentials to boto configuration file
(see You need to set
your aws_access_key_id and aws_secret_access_key. If you want you can also hardcode those values in this script. Just change the call to the following function to use your credentials

in the doConnect() function, i.e,

3. Add reference to the script in preferences.cfg for DNS remote. Example:
<GenericDNSScript value="python /var/mmsuite/dns_server_controller/scripts/" />

4. Start DNS remote, use MMMC to log in to central and add a generic DNS server referring to the new Route53 server. 


The M&M Professional Services team is happy to assist with the installation/configuration.

PowerDNS with MySQL database backend

The PowerDNS connector script connects directly to the MySQL backend and allows management of zones in PowerDNS. Native mode and Master/Slave mode
in the authoritative PowerDNS are currently supported.

The installation works as described above. On Linux use the --generic parameter when executing the installer.

It will then install the base Generic DNS Server Controller, but there are two things you want to tweak:

  1. Create working directory and connector script config:

    create a directory:


    and set the correct ownership.

    Create a file preferences.cfg in the mmsuite directory and configure the connector script with a XML-tag as described in Generic DNS Server Controller

    E.g. on Linux

    <GenericDNSScript value="python /your/script/directory/" />

  2. Edit the systemd/init script of the controller

    Open with an editor, e.g. vi the mmremote init script, which should be /etc/init.d/mmremote Search for the line PARAMS="...."

    add to the begin of the parameter list your created controller working directory with the -d parameter, .i.e.

    PARAMS="-d /var/mmsuite/dns_server_controller of the params"

Please make sure that there is no dummy/example /etc/named.conf file from BIND as the controller would expect then a BIND installation and bails out.
If there is a file, please rename it or delete it. Later installer versions will print out a warning when it finds the BIND conf file.