How to Install Power DNS Red Hat Free

There are two Power DNS Red Hat nameserver products: the Authoritative Server and the Recursor. While most other nameservers fully combine these functions, Power DNS offers them separately, but can mix both authoritative and recursive usage seamlessly.

How to Install Power DNS as Authoritative

The Authoritative Server will answer questions about domains it knows about, but will not go out on the net to resolve queries about other domains. When the Authoritative Server answers a question, it comes out of the database, and can be trusted as being authoritative. There is no way to pollute the cache or to confuse the daemon.

Power DNS Red Hat Recursor

The Recursor, conversely, by default has no knowledge of domains itself, but will always consult other authoritative servers to answer questions given to it.

Power DNS has been designed to serve both the needs of small installations by being easy to setup, as well as for serving very large query volumes on large numbers of domains. Additionally, through use of clever programming techniques, Power DNS server offers very high domain resolution performance.

Another prime goal is security. By the use of language features, the PowerDNS source code is reasonably small which makes auditing easy. In the same way, library features have been used to mitigate the risks of buffer overflows.

Finally, Power DNS server is able to give a lot of statistics on its operation which is both helpful in determining the scalability of an installation as well as for spotting problems.

Update Red Hat 7 System

First let’s update the system.

yum update

Add EPEL Repo to Red Hat 7

Now let’s add the EPEL Repo into RedHat Yum Repos and update again.

yum install

Install Power DNS from EPEL repository

After adding the EPEL repo we have access to Power DNS packages and install them with yum.

yum -y install pdns pdns-backend-mysql

Change Red Hat 7 Machine Hostname

hostnamectl set-hostname powerdns.local

Add Power DNS Repository

yum install epel-release yum-plugin-priorities
curl -o /etc/yum.repos.d/powerdns-rec-master.repo
yum install pdns-recursor
Install Power DNS

Install MariaDB with Power DNS on Red Hat

yum -y install mariadb-server mariadb

Manage MariaDB service on Red Hat

Enable MariaDB service on boot:

systemctl enable mariadb.service

Start MariaDB service with SystemD:

systemctl start mariadb.service

Secure MySQL installation using mysql script, delete all unnecessary data, anonymous access and setup a root password.


Login into MySQL with the root user and password defined on previous step.

mysql -u root -p

Create a database with name ‘powerdns’:

MariaDB [(none)]> CREATE DATABASE powerdns;

Define permissions on mysql user ‘poplab’ to the database ‘powerdns

MariaDB [(none)]> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'poplab';
MariaDB [(none)]> GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'poplab';
MariaDB [(none)]> USE powerdns;

Create a table to locate the power DNS domains

MariaDB [(none)]> CREATE TABLE domains (id INT auto_increment,name VARCHAR(255) NOT NULL,master VARCHAR(128) DEFAULT NULL,last_check INT DEFAULT NULL,type VARCHAR(6) NOT NULL,notified_serial INT DEFAULT NULL,account VARCHAR(40) DEFAULT NULL,primary key (id) );

Create a table to locate the power DNS records

MariaDB [(none)]> CREATE TABLE records (id INT auto_increment,domain_id INT DEFAULT NULL,name VARCHAR(255) DEFAULT NULL,type VARCHAR(6) DEFAULT NULL,content VARCHAR(255) DEFAULT NULL,ttl INT DEFAULT NULL,prio INT DEFAULT NULL,change_date INT DEFAULT NULL,primary key(id) );

Create database index’s needed:

MariaDB [(none)]> CREATE INDEX rec_name_index ON records(name);
MariaDB [(none)]> CREATE INDEX nametype_index ON records(name,type);
MariaDB [(none)]> CREATE INDEX domain_id ON records(domain_id);

Powerdns web interface

Download a Installation Script

Download Virtual Machine

Understanding Chroot Jails

Mr. SynMan

Recent Posts

Linux Device Management: Free Guide

Understand UDEV Folder /dev Understand D-BUS Device Commands List devices on PCI BUS lspci List devices on USB BUS lsusb…

6 months ago

Linux Pseudo File Systems: Free Guide

A pseudo file system does not exist on a physical hard disk,is created by the Kernel and only runs all…

6 months ago

Working with Kernel Modules

LPIC1 Category - 101.1 Determine and configure hardware settings uname command display information about the running Kernel. uname Display a…

6 months ago

Understand Linux ACLs

Linux ACLs can control the filesystem features and flags for each file or folder. Introducing ACLs in Linux ACLs Kernel…

10 months ago

BIOS Interrupt Vector Table

BIOS Processor Instructions INTAddressTypeFunction Description00h0000:0000hProcessorDivide Error01h0000:0004hProcessorSingle Step02h0000:0008hProcessorNon-maskable interrupt03h0000:000ChProcessorBreakpoint instruction04h0000:0010hProcessorOverflow instruction05h0000:0014hBIOS ProcessorPrint screen Bound range exceeded06h0000:0018hProcessorInvalid opcode07h0000:001ChProcessorCoprocessor not available08h0000:0020hHardware ProcessorIRQ 0…

1 year ago

Kernel Booting Parameters

Linux Kernel Booting Parameters are passed to the kernel when the machine is booting. We can pass parameters to control…

1 year ago