Episode ini membahas instalasi trio PowerDNS dan struktur konfigurasi awal masing-masing: pdns.conf untuk Authoritative, recursor.yml untuk Recursor, dan dnsdist.yml untuk dnsdist, plus manajemen service systemd serta verifikasi dengan dig @127.0.0.1.

Di episode 0 kalian sudah menambahkan repo resmi dan menginstall paket. Sekarang waktunya membuat ketiga daemon itu benar-benar bekerja: Authoritative, Recursor, dan dnsdist. Episode 3 membahas struktur konfigurasi masing-masing, cara mengelola service-nya, dan verifikasi bahwa semua mendengarkan di port yang benar.
Ada satu fakta penting yang menentukan gaya konfigurasi: Authoritative memakai pdns.conf bergaya key-value, sementara Recursor dan dnsdist versi terbaru memakai YAML. Dengan dnsdist 2.1, konfigurasi YAML (dnsdist.yml) menjadi gaya utama, meski dukungan Lua lama tetap ada. Ketiga file ini adalah pusat kendali seluruh series.
File utama Authoritative adalah /etc/powerdns/pdns.conf. Formatnya sederhana: satu key=value per baris, dengan komentar diawali #. Ini adalah contoh minimal yang siap dipakai di lab:
launch=gsqlite3
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
local-address=127.0.0.1
local-port=53
default-soa-content=ns1.example.com hostmaster.example.com 0 10800 3600 604800 3600Perhatikan launch=gsqlite3 — ini memilih backend. local-address dan local-port menentukan di mana daemon mendengar. default-soa-content menjadi kerangka SOA untuk zone yang dibuat nanti.
Jangan pernah menyalakan service sebelum memeriksa konfigurasi:
pdns_server --config-check
sudo systemctl enable --now pdns
sudo systemctl status pdnsJika pdns_server --config-check tidak mengeluarkan error, konfigurasi kalian valid.
Recursor 5.4 membaca /etc/powerdns/recursor.yml. Ini contoh dasar: mendengarkan di loopback dan mengizinkan query hanya dari jaringan lokal.
listen-addresses:
- 127.0.0.1
- 192.0.2.53
allow-from:
- 192.0.2.0/24
- 127.0.0.0/8
dnssec:
process: true
threads: 4Field dnssec.process: true mengaktifkan validasi DNSSEC — kita bahas mendalam di episode 14. Untuk sekarang, jalankan dan uji:
sudo systemctl enable --now pdns-recursor
dig @127.0.0.1 example.com A +shortRecursor memakai root hints bawaan, sehingga tanpa konfigurasi tambahan dia sudah bisa menyelesaikan nama dari internet.
dnsdist 2.1 mendukung dnsdist.yml untuk konfigurasi statis. Contoh berikut menempatkan dnsdist di port 53 dan meneruskan semua query ke Recursor di 127.0.0.1:5300.
setLocal:
- address: 0.0.0.0:53
newServer:
- address: 127.0.0.1:5300
acl:
- 192.0.2.0/24
- 127.0.0.0/8Sebelum menjalankan, pastikan Recursor mendengar di 127.0.0.1:5300 dengan menyesuaikan listen-addresses pada recursor.yml. Lalu mulai dnsdist:
sudo systemctl enable --now dnsdist
dig @127.0.0.1 example.com A +shortdnsdist juga punya konsol interaktif untuk debugging cepat. Jalankan dnsdist -c untuk terhubung ke instance yang berjalan dan lihat status backend:
dnsdist -c
showServers()
quit()Output showServers() menampilkan setiap backend beserta status up/down dan jumlah query yang dilayani — alat yang akan sangat berguna di episode 7 dan 17.
Ketiga daemon ini default mendengarkan di port 53, sehingga di lab satu mesin mereka akan bertengkar. Pola yang dipakai sepanjang series ini: Authoritative di 127.0.0.1:53, Recursor di 127.0.0.1:5300, dan dnsdist di 0.0.0.0:53. Penyesuaian dilakukan lewat local-address dan listen-addresses yang sudah kita lihat.
sudo ss -tulpn | grep ':53 'Saat ada yang tidak berjalan seperti harapan, log adalah sumber kebenaran pertama:
journalctl -u pdns -n 50 --no-pager
journalctl -u pdns-recursor -n 50 --no-pager
journalctl -u dnsdist -n 50 --no-pagerjournalctl -u pdns -n 50 menampilkan 50 baris log terakhir dari service Authoritative. Di episode 8 kita akan membahas cara membaca log ini untuk diagnosis yang lebih sistematis.
Episode 3 menutup gap antara instalasi dan operasi: kalian sekarang tahu letak dan bentuk konfigurasi ketiga daemon, cara memverifikasi sintaks, mengelola service systemd, memisahkan port agar tidak bertabrakan, dan membaca log saat terjadi masalah.
Inti yang harus dibawa pulang:
pdns.conf key-value; Recursor dan dnsdist memakai YAML.pdns_server --config-check wajib dijalankan sebelum mulai Authoritative.dig @127.0.0.1 example.com A adalah uji cepat paling andal untuk semua daemon.local-address dan listen-addresses.dnsdist -c) menampilkan status backend secara langsung.journalctl adalah sumber kebenaran pertama saat service tidak berjalan normal.Di episode 4 selanjutnya kita akan membahas zone dan resource record types — konsep zone versus domain, format SOA lengkap dengan serial dan parameter timing, jenis-jenis record dari A hingga SVCB/HTTPS, serta perbedaan zone files ala BIND dengan penyimpanan database di PowerDNS.