High available DNS with PowerDNS and MySQL

PowerDNS is an advanced high performance authoritative nameserver and can work with several backends. We will setup PowerDNS on two servers both will read the DNS records from a MySQL database replicated backend. As MySQL will do the replication, PowerDNS doesn't need zone transfers. To setup MySQL replication please read this article published in the MySQL section of this website. Make sure MySQL is setup to use the InnoDB storage engine. To install PowerDNS from the EPEL repository. If you haven't setup the EPEL repository follow the instructions explained on their website.

Failover Dynamic DNS (BIND and DHCP)


If a machine uses a dynamic ip-address retrieved from a DHCP server the ip-address will not resolve to it's domainname. Usually we setup DNS with static ip-addresses. However we can setup a dynamic DNS server with DHCP so every machine which retrieves its ip-address from the DHCP server will be registered or updated in the DNS. In this tutorial I will setup a failover. We need to install some packages if they are not already installed:


Migrate from BIND to PowerDNS


To migrate from Bind to PowerDNS you have to convert and import the Bind zone files into the PowerDNS database. Together with the PowerDNS package the program zone2sql is installed. zone2sql parses the Bind config and zone files in to a SQL format which can be imported into your database.

In this example I will convert the Bind zones to a MySQL dump, but zone2sql can also be used to convert the zones to an Oracle or PostgreSQL sql file. I assume you already setup PowerDNS with the MySQL backend as published here.



You are here: Home Howtos and FAQs DNS