Episode ini membedah konsep zone versus domain, format SOA lengkap dengan serial dan parameter timing, jenis-jenis resource record dari A hingga SVCB/HTTPS, serta perbedaan zone files gaya BIND dengan penyimpanan database di PowerDNS.

Setelah paham arsitektur, saatnya memahami unit kerja DNS: zone dan bahan bakunya, resource records. Di episode ini kalian akan belajar perbedaan zone dan domain, membaca SOA seperti orang membaca jam, dan mengenali record-record yang akan kalian tulis di PowerDNS hampir setiap hari.
Kemampuan paling penting di episode ini adalah membaca output dig dengan cepat. Ketika jawaban muncul di terminal, kalian harus tahu record mana yang aneh dan bagian SOA mana yang menjelaskan perilaku caching. Mari bangun kemampuan itu.
Domain adalah bagian dari pohon namespace (example.com). Zone adalah bagian pohon yang menjadi otoritas satu set server DNS. Bedanya soal delegation: example.com bisa menjadi satu zone, atau kalian bisa memecahnya menjadi zone example.com dan zone sub.example.com yang didelegasikan ke server lain.
Batas antar zone ditandai oleh record NS pada titik delegation. Ketika PowerDNS menjawab untuk sebuah zona, jawabannya memakai flag aa (authoritative answer) — tandanya data itu memang dimiliki, bukan hasil cache.
dig @127.0.0.1 example.com SOA +noall +authority +commentsOutput di atas juga memperlihatkan bagian Authority yang memuat SOA dan NS — penanda bahwa server ini authoritative untuk zone tersebut.
Record SOA (Start of Authority) adalah kepala sebuah zone. Dia menandai awal zone, memuat kontak admin, dan yang paling penting: serial, angka versi yang dipakai untuk membandingkan zone di mekanisme transfer.
dig +short example.com SOA
dig +noall +answer +multiline example.com SOAPerhatikan: dig +short example.com SOA menampilkan nilai SOA dalam satu baris tanpa nama record, sementara dig +noall +answer +multiline menampilkan SOA lengkap dengan setiap parameter pada baris terpisah — jauh lebih mudah dibaca manusia. Mode +multiline sangat berguna saat menganalisis SOA zone orang lain.
SOA berbentuk: primary NS, email admin, serial, refresh, retry, expire, negative TTL. Contoh nyatanya:
ns1.example.com hostmaster.example.com 2026081001 10800 3600 604800 3600Arti tiap angka: serial = 2026081001, refresh = 10800 detik (secondary mengecek primary), retry = 3600 detik (coba lagi jika gagal), expire = 604800 detik (secondary menyerah jika primary tidak bisa dihubungi), dan negative TTL = 3600 detik (berapa lama jawaban "tidak ada" boleh di-cache).
Serial naik setiap kali zone berubah. Di PowerDNS dengan backend database, serial bisa dihitung otomatis dari SOA-EDIT (INCREASE, EPOCH, dll.), atau kalian atur manual. Di episode 9 kita akan lihat bagaimana serial ini menjadi penentu terjadinya zone transfer.
Katalog lengkap sudah diperkenalkan di episode 2. Sekarang lihat bentuk konkretnya dalam satu zone sederhana:
example.com. 3600 IN SOA ns1.example.com. hostmaster.example.com. ...
example.com. 3600 IN NS ns1.example.com.
example.com. 3600 IN MX 10 mail.example.com.
example.com. 3600 IN TXT "v=spf1 mx -all"
ns1.example.com. 3600 IN A 192.0.2.10
www.example.com. 3600 IN A 192.0.2.11
mail.example.com. 3600 IN A 192.0.2.12www.example.com bisa menunjuk ke example.com.SVCB dan HTTPS adalah record generasi baru untuk membantu klien menemukan layanan: endpoint DoH, dukungan HTTP/3, dan parameter koneksi lain. HTTPS adalah varian SVCB khusus untuk layanan HTTPS. Keduanya juga dipakai protokol DDR (Discovery of Designated Resolvers) yang akan kita singgung di episode 22.
dig @127.0.0.1 example.com HTTPSServer klasik seperti BIND menyimpan zone dalam file berformat $ORIGIN dan $TTL. PowerDNS Authoritative tetap bisa membaca format ini lewat backend bind, berguna untuk migrasi dari BIND.
$ORIGIN example.com.
$TTL 3600
@ IN SOA ns1.example.com. hostmaster.example.com. (
2026081001 10800 3600 604800 3600 )
@ IN NS ns1.example.com.
@ IN MX 10 mail.example.com.
www IN A 192.0.2.11Berbeda dengan itu, PowerDNS menyimpan record di database. Keunggulannya: serial otomatis, akses via SQL atau API, dan tidak ada parsing file. Konversi antara keduanya dilakukan pdnsutil import-zone dan pdnsutil export-zone-dnssec. Kita bedah backend database secara penuh di episode 11.
pdnsutil create-zone example.com ns1.example.com ns2.example.com
pdnsutil list-zone example.comEpisode 4 memberi kalian kemampuan membaca dan menulis bahan baku DNS: membedakan zone dan domain, membaca SOA sebagai penanda versi dan timing, memakai record-record dari A sampai HTTPS, serta memahami perbedaan zone files dengan database backend.
Inti yang harus dibawa pulang:
Di episode 5 selanjutnya kita akan membahas PowerDNS Authoritative Server dasar — memilih backend antara bind, gsqlite3, gmysql, dan lmdb, lalu praktik langsung membuat zone, menambah record, memeriksa, dan mengedit dengan pdnsutil.