Sebelum menyentuh PowerDNS, kalian perlu menguasai dasar networking, operasi Linux, dan kebiasaan command line seperti dig serta nslookup. Episode ini juga memandu menyiapkan lab VM atau Docker, menambahkan repositori resmi PowerDNS, menginstall pdns, pdns-recursor, dan dnsdist, lalu memverifikasi koneksi pertama ke server.

Selamat datang di series Belajar DNS! Series ini akan membawa kalian menguasai DNS bersama stack PowerDNS: PowerDNS Authoritative Server untuk menjawab query pada zone milik kalian, PowerDNS Recursor untuk mencari jawaban bagi klien, dan dnsdist sebagai load balancer serta pintu masuk berbasis DoT, DoH, dan DoQ. Total ada 23 episode yang tersusun dari enam fase.
Sebelum menyentuh PowerDNS, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. DNS bukan sekadar "mencari nama domain". Dia adalah protokol jaringan berumur puluhan tahun yang berjalan di port 53, memakai UDP dan TCP sekaligus, dan di dalamnya ada ratusan jenis record serta mekanisme keamanan yang rumit. Tanpa fondasi networking dan Linux yang kuat, konfigurasi PowerDNS akan terasa seperti kotak hitam.
Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan lab VM atau Docker, menambahkan repositori resmi PowerDNS, menginstall trio daemon-nya, dan melakukan verifikasi pertama dengan dig. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.
DNS hidup di atas jaringan, jadi kalian wajib paham IP addressing dan subnetting. Kalian harus bisa membaca notasi CIDR seperti 192.0.2.0/24, memahami alamat loopback 127.0.0.1, dan tahu cara memeriksa alamat IP sebuah interface.
Yang tidak kalah penting: perbedaan TCP vs UDP. Query DNS normal berjalan di atas UDP port 53 karena cepat dan murah. Namun transfer zone (AXFR/IXFR) dan jawaban besar memakai TCP port 53. Kalian juga harus paham port layanan, karena PowerDNS Authoritative, Recursor, dan dnsdist masing-masing bisa mendengar di port 53 dengan peran berbeda.
ip addr show
ip route showPowerDNS adalah daemon yang dikelola oleh systemd. Kalian wajib terbiasa menjalankan systemctl, memeriksa status service, mengaktifkan service saat boot, dan membaca log dengan journalctl. Jika lab memakai firewall seperti ufw atau firewalld, pastikan kalian bisa membuka port 53 dan 853.
journalctl -u pdns -f
systemctl status pdnsSepanjang series kalian akan hidup bersama dig, nslookup, ping, dan tcpdump. dig adalah Swiss army knife-nya DNS: kalian bisa menentukan server query, tipe record, dan flag debug. nslookup lebih sederhana dan masih dipakai banyak tim. Di episode 8 kita akan membahas keduanya secara mendalam.
resolvectl status
resolvectl query google.comKalian membutuhkan dua sampai tiga instance Linux. Contoh kombinasi yang ideal: satu instance sebagai primary authoritative, satu sebagai secondary, dan satu sebagai recursor yang melayani klien. Distribusi bebas, misalnya Ubuntu 24.04, Debian 12, atau Rocky Linux 9. Jika resource terbatas, Docker bisa menggantikan VM, tetapi menjalankan tiga container di satu host akan sedikit mengurangi kebenaran simulasi jaringan.
docker --version
uname -aPaket yang kita install diambil dari repositori resmi repo.powerdns.com, bukan dari repositori distribusi, agar versinya terkini dan konsisten. Target versi saat series ini ditulis: PowerDNS Authoritative 5.1.3, PowerDNS Recursor 5.4.4, dan dnsdist 2.1.0. Ketiga daemon ini bisa dipasang di satu mesin untuk belajar, tetapi di production sebaiknya dipisah.
Langkah pertama adalah menambahkan GPG key PowerDNS dan menulis source list. Distribusi pada contoh ini noble (Ubuntu 24.04), dan kita mendaftarkan tiga repository: auth-51, rec-54, dan dnsdist-21.
sudo apt install curl gnupg ca-certificates
sudo curl -fsSL -o /usr/share/keyrings/pdns-repo-key.gpg \
https://repo.powerdns.com/FD380FBB-pub.asc
echo "deb [signed-by=/usr/share/keyrings/pdns-repo-key.gpg] \
http://repo.powerdns.com/ubuntu noble-auth-51 main" \
| sudo tee /etc/apt/sources.list.d/pdns.list
sudo apt updateUntuk recursor dan dnsdist, tambahkan baris noble-rec-54 dan noble-dnsdist-21 di file yang sama. Untuk Rocky Linux, gunakan repository repo.powerdns.com/rocky dengan alur dnf install yang serupa dan gpgcheck aktif.
Setelah apt update, install ketiga daemon sekaligus dengan backend SQLite untuk Authoritative:
sudo apt install pdns-server pdns-backend-sqlite3 pdns-recursor dnsdistPastikan ketiga daemon sudah terinstall dengan versi yang kita harapkan:
pdns_server --version
pdns_recursor --version
dnsdist --versionMulai Recursor dan query melalui loopback. dig @127.0.0.1 memaksa dig menanyakan server yang kalian tunjuk, bukan resolver sistem.
sudo systemctl enable --now pdns-recursor
dig @127.0.0.1 google.com A +shortJika muncul alamat IP seperti 142.250.4.14, instalasi kalian sukses. Catat juga bahwa pada beberapa distribusi, pdns-server dan pdns-recursor bertabrakan merebut port 53 — jika salah satu gagal start, matikan yang lain dulu atau ubah local-address pada salah satu daemon. Detail konfigurasi ini akan kita bedah mulai episode 3.
Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami skill networking dan Linux yang dibutuhkan, menyiapkan lab VM atau Docker, menambahkan repositori resmi PowerDNS, menginstall pdns-server, pdns-recursor, dan dnsdist, serta memverifikasi query pertama dengan dig @127.0.0.1.
Inti yang harus dibawa pulang:
dig, systemctl, dan journalctl sebelum lanjut ke konfigurasi.repo.powerdns.com, bukan dari repo distribusi.dig @127.0.0.1 google.com A +short yang harus mengembalikan alamat IP.Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan DNS — dari file HOSTS.TXT era ARPANET yang tidak scalable, kelahiran DNS lewat RFC 882/883 oleh Paul Mockapetris, hingga bagaimana PowerDNS lahir pada 1999 dan berkembang menjadi trio Authoritative, Recursor, dan dnsdist. Pastikan lab kalian sudah hidup, karena perjalanan Belajar DNS baru saja dimulai!