PowerDNS is a high-performance authoritative DNS server that outperforms BIND9 in most benchmarks. This guide covers installation and basic configuration on Ubuntu.
Step 1 — Install PowerDNS
sudo apt update
sudo apt install pdns-server pdns-backend-mysql -y
Step 2 — Create MySQL Database
sudo mysql -u root -p
CREATE DATABASE powerdns;
CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL ON powerdns.* TO 'pdns'@'localhost';
FLUSH PRIVILEGES;
Step 3 — Import PowerDNS Schema
sudo mysql -u pdns -p powerdns < /usr/share/doc/pdns-backend-mysql/schema.mysql.sql
Step 4 — Configure PowerDNS
sudo nano /etc/powerdns/pdns.conf
launch=gmysql
gmysql-host=localhost
gmysql-dbname=powerdns
gmysql-user=pdns
gmysql-password=StrongPassword
local-address=0.0.0.0
local-port=53
api=yes
api-key=your-secret-api-key
webserver=yes
webserver-port=8081
Step 5 — Start PowerDNS
sudo systemctl enable pdns --now
sudo systemctl status pdns
Step 6 — Add DNS Zone via API
curl -s -H 'X-API-Key: your-secret-api-key' -H 'Content-Type: application/json' -d '{"name":"yourdomain.com.","kind":"Native","nameservers":["ns1.yourdomain.com."]}' http://localhost:8081/api/v1/servers/localhost/zones
Step 7 — Test
dig @localhost yourdomain.com SOA
Conclusion
PowerDNS is the most scalable authoritative DNS server available. Our team configures DNS infrastructure for production environments.
Comments