Panduan singkat untuk konfigurasi DNS resolver di PowerDNS dengan PDNS Recursor. DNS resolver ini memungkinkan server DNS Anda dapat memforward query DNS ke tujuan public DNS google (8.8.8.8) atau public DNS lain sehingga menjadikan PC/Device dapat terhubung ke internet dan dapat dimanfaatkan untuk membuat private DNS pada lingkungan development.
Install #
Install PDNS Recursor
yum -y install pdns-recursor
Scenario 1: Authoritative Server as Recursor with private zones #

Edit /etc/pdns/pdns.conf
sesuaikan seperti berikut.
local-address=127.0.0.1
local-port=5300
loglevel=10
log-dns-queries=yes
Edit /etc/pdns-recursor/recursor.conf
sesuaikan seperti berikut.
local-address=0.0.0.0
local-port=53
trace=on
forward-zones=example.com=127.0.0.1:5300
Ganti domain pada forward-zones
dengan private zone Anda
Apabila ingin menambahkan beberapa domain, uncomment forward-zones-file
pada recursor.conf
forward-zones-file=/etc/pdns-recursor/list.txt
Buat dan edit file /etc/pdns-recursor/list.txt seperti berikut
puteran.local=127.0.0.1:5300
muterin.local=127.0.0.1:5300
Restart service pdns dan pdns recursor
systemctl restart pdns pdns-recursor
Test dengan perintah dig.
dig +short example.com @IP-pdns
Scenario 2: Authoritative Server as Recursor for clients and serving public domains #

Edit /etc/pdns/pdns.conf
sesuaikan seperti berikut.
local-address=127.0.0.1
local-port=5300
loglevel=10
log-dns-queries=yes
Edit /etc/pdns-recursor/recursor.conf
sesuaikan seperti berikut.
local-address=127.0.0.1
local-port=5301
trace=on
Install dnsdist.
dnf install epel-release &&
curl -o /etc/yum.repos.d/powerdns-dnsdist-18.repo https://repo.powerdns.com/repo-files/el-dnsdist-18.repo &&
dnf install dnsdist
Selanjutnya tambahkan server DNS dan buat rule dengan NetmaskGroupRule.
cp -p /etc/dnsdist/dnsdist.conf /etc/dnsdist/dnsdist.conf.ori
setLocal('0.0.0.0:53')
addLocal('0::0:64')
setACL({'0.0.0.0/0', '::/0'}) -- Allow all IPs access
newServer({address='127.0.0.1:5300', pool='auth'})
newServer({address='127.0.0.1:5300', pool='reverse'})
newServer({address='127.0.0.1:5301', pool='recursor'})
newServer({address='127.0.0.1:5302', pool='blackhole'})
recursive_ips = newNMG()
recursive_ips:addMask('192.168.11.23')
recursive_ips:addMask('<my IPv6 network>')
addAction({"typeform.com."}, PoolAction("blackhole"))
addAction(NetmaskGroupRule(recursive_ips), PoolAction('recursor'))
addAction(AllRule(), PoolAction('auth'))
Konfigurasi tersebut akan membuat IP 192.168.11.23
akan diarahkan ke Recursor sedangkan IP lain akan diarahkan ke Authoritative Server. Untuk typeform.com.
merupakan contoh
abuse domain yang dapat Anda ubah.
Jalankan dnsdist.
dnsdist -C /etc/dnsdist/dnsdist.conf
Terakhir test dengan perintah dig.
dig +short example.com @IP-pdns