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
- 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.
- Install a script interpreter. We recommend to use Python as we provide example connector scripts for Python (2.7.x).
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 genericDNS.py script implements the generic API and interfaces with the DNS server itself.
- 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.
Available Connector Scripts
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 http://boto.readthedocs.org/en/latest/boto_config_tut.html). 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/genericRoute53.py" />
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:
- 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/genericDNS.py" />
- 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/mmremoteSearch 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...rest 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.