Home Configure Forwarders in PowerDNS
Post
Cancel

Configure Forwarders in PowerDNS

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

1
yum -y install pdns-recursor

Scenario 1: Authoritative Server as Recursor with private zones

Edit /etc/pdns/pdns.conf sesuaikan seperti berikut.

1
2
3
4
local-address=127.0.0.1
local-port=5300
loglevel=10
log-dns-queries=yes

Edit /etc/pdns-recursor/recursor.conf sesuaikan seperti berikut.

1
2
3
4
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

1
forward-zones-file=/etc/pdns-recursor/list.txt

Buat dan edit file /etc/pdns-recursor/list.txt seperti berikut

1
2
puteran.local=127.0.0.1:5300
muterin.local=127.0.0.1:5300

Restart service pdns dan pdns recursor

1
systemctl restart pdns pdns-recursor

Test dengan perintah dig.

1
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.

1
2
3
4
local-address=127.0.0.1
local-port=5300
loglevel=10
log-dns-queries=yes

Edit /etc/pdns-recursor/recursor.conf sesuaikan seperti berikut.

1
2
3
local-address=127.0.0.1
local-port=5301
trace=on

Install dnsdist.

1
2
3
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.

1
cp -p /etc/dnsdist/dnsdist.conf /etc/dnsdist/dnsdist.conf.ori
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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.

1
dnsdist -C /etc/dnsdist/dnsdist.conf

Terakhir test dengan perintah dig.

1
dig +short example.com @IP-pdns
This post is licensed under CC BY 4.0 by the author.