Episode ini membahas PowerDNS Recursor: konfigurasi recursor.yml untuk listen address, local zones, dan forward zones, mekanisme caching mulai dari packet cache, record cache, negative caching, sampai pengaturan TTL, serta verifikasi resolution.

Jika Authoritative adalah "pemilik data", Recursor adalah "agen perjalanan" yang mencari data itu untuk kalian. PowerDNS Recursor menerima query dari klien, menyelesaikan pencarian lewat root hints atau forwarders, lalu menyimpan hasilnya di cache agar query berikutnya hampir gratis.
Episode 6 membahas konfigurasi recursor.yml: di mana mendengarkan, bagaimana menangani zone lokal dan forward zone, serta lapisan caching yang membuat recursor mampu melayani ribuan query per detik dengan sumber daya terbatas.
File /etc/powerdns/recursor.yml mengatur semua perilaku. Dua hal pertama yang harus kalian tetapkan: alamat yang didengar dan siapa yang boleh bertanya.
listen-addresses:
- 127.0.0.1
- 192.0.2.53
allow-from:
- 192.0.2.0/24
- 127.0.0.0/8
threads: 4allow-from adalah daftar subnet yang boleh memakai recursor ini. Jangan membuka recursor ke internet tanpa ACL — dia akan menjadi reflektor untuk serangan amplification. Setting ini adalah garis pertahanan pertama.
Setelah restart, uji dari sisi klien:
sudo systemctl restart pdns-recursor
dig @127.0.0.1 example.com A +shortRecursor punya root hints bawaan sehingga tanpa forwarder dia sudah bisa menyelesaikan nama dari internet. Untuk melihat statistiknya:
rec_control get uptime
rec_control get qpsRecursor bisa menjawab zone lokal sendiri, berguna untuk lingkungan internal. Zone lokal didefinisikan dengan file zona atau inline:
local-zones:
- name: internal.example.com
type: native
file: /etc/powerdns/local/internal.example.com.zone
- name: lan.example.com
type: master
file: /etc/powerdns/local/lan.example.com.zoneJika organisasi punya resolver internal atau Authoritative untuk domain tertentu, recursor bisa meneruskan query domain itu tanpa melakukan resolution penuh:
forward-zones:
- zone: example.org
addresses:
- 192.0.2.10
- zone: corp.local
addresses:
- 10.0.0.53
- 10.0.0.54Dengan forward-zones, semua query untuk example.org diteruskan langsung ke 192.0.2.10, bukan dicari dari root. Pola ini sering dipakai saat ada Active Directory, resolver internal, atau split-horizon DNS.
Recursor memakai dua cache utama:
rec_control get packetcache-size
rec_control get max-cache-entriesParameter ini bisa diatur di recursor.yml. Di episode 19 kita akan membahas tuning-nya untuk performa.
Ketika sebuah nama tidak ada, jawaban negatif (NXDOMAIN) juga di-cache sesuai negative TTL dari SOA. Ini mencegah klien dan upstream dibanjiri query untuk nama yang memang tidak ada.
max-negative-ttl: 3600
cache-ttl: 20max-negative-ttl membatasi berapa lama jawaban "tidak ada" disimpan. cache-ttl adalah nilai maksimal TTL yang dipakai untuk record dari zone tanpa TTL eksplisit. Memahami TTL adalah kunci: TTL panjang mempercepat dan meringankan server, tetapi memperlambat propagasi perubahan.
Untuk membuktikan cache bekerja, query dua kali lalu bandingkan waktu respons dan statistik:
dig @127.0.0.1 example.com A +noall +stats | grep 'Query time'
dig @127.0.0.1 example.com A +noall +stats | grep 'Query time'
rec_control get cache-hitsPada query kedua, waktu respons biasanya jauh lebih rendah karena jawaban diambil dari packet cache. Angka cache-hits pada rec_control get cache-hits menunjukkan seberapa sering cache berhasil menjawab tanpa harus menyentuh internet — target health metric yang penting di episode 19.
rec_control dump-cache /tmp/rec-cache.txtEpisode 6 membuat Recursor kalian menjadi resolver yang benar-benar berguna: mendengarkan dengan ACL yang aman, menjawab zone lokal, meneruskan domain tertentu, dan menyimpan jawaban di lapisan cache yang terukur.
Inti yang harus dibawa pulang:
allow-from wajib dibatasi; recursor terbuka tanpa ACL adalah senjata DDoS amplification.rec_control get cache-hits adalah barometer kesehatan recursor.Di episode 7 selanjutnya kita akan membahas dnsdist dasar — konsep load balancer DNS dengan frontend dan backend pools, konfigurasi awal newServer, kebijakan load balancing seperti leastOutstanding dan roundrobin, serta ACL dan web dashboard.