Episode ini membedah zone transfer: perbedaan AXFR transfer penuh dan IXFR transfer inkremental, kapan masing-masing dipakai, pengamanan transfer dengan TSIG, serta fitur lanjutan ixfrdist dan mode autosecondary di PowerDNS.

Transfer zone adalah jalan yang dilalui data dari primary menuju secondary. Episode 9 sudah membuatnya berfungsi; episode 10 membuatnya cepat, aman, dan terukur. Kita akan membedah dua mekanisme transfer — AXFR dan IXFR — lalu mengamankannya dengan TSIG, dan menutup dengan fitur lanjutan ixfrdist serta mode autosecondary.
Pahami episode ini sebagai pendalaman teknik: alih-alih hanya "mengalirkan data", kalian sekarang mengendalikan bagaimana, seberapa sering, dan dengan otentikasi apa data itu mengalir.
AXFR (Authoritative Transfer) mengirim seluruh isi zone. Sederhana dan kuat, tetapi boros: untuk zone besar atau perubahan kecil, hampir semua data dikirim ulang. IXFR (Incremental Transfer) hanya mengirim perbedaan sejak serial terakhir. Untuk zone yang sering berubah dengan ukuran besar, IXFR jauh lebih efisien.
Bayangkan perbedaannya dengan mengedit dokumen: AXFR mengirim seluruh dokumen setiap kali ada satu kalimat berubah, sedangkan IXFR hanya mengirim kalimat yang berubah itu. Untuk dokumen besar yang sering diedit, IXFR jelas lebih hemat bandwidth dan CPU.
IXFR memanfaatkan riwayat perubahan zone. Setiap kali zone diubah, PowerDNS mencatat perbedaan dari serial sebelumnya. Ketika secondary meminta IXFR dengan membawa serial terakhir yang dimilikinya, primary cukup mengambil delta yang tersimpan dan mengirimkannya.
dig @192.0.2.10 example.com AXFRPerintah dig @192.0.2.10 example.com AXFR di atas menarik seluruh zone langsung dari primary — cara cepat memeriksa isi zone secara lengkap, sekaligus menguji apakah server mengizinkan transfer.
Di PowerDNS, IXFR didukung oleh backend yang menyimpan riwayat perubahan (seperti database). Backend bind berbasis file umumnya hanya menyediakan AXFR, kecuali ixfrdist (dibahas di bagian akhir) menyediakan IXFR dari luar.
Aturan pertama keamanan transfer: hanya server yang sah boleh menarik zone. Daftar IP pada allow-axfr-ips adalah batas minimal, tetapi IP bisa di-spoof. Solusi yang lebih kuat adalah otentikasi kriptografi.
TSIG (RFC 2845) menandatangani setiap pesan transfer dengan key rahasia bersama, sehingga penerima bisa membuktikan pengirimnya asli dan pesannya tidak diubah. Buat key di primary:
pdnsutil generate-tsig-key transfer-key hmac-sha256
pdnsutil add-tsig-key transfer-key hmac-sha256 <key-hash>
pdnsutil set-tsig-key example.com transfer-key primarypdnsutil generate-tsig-key transfer-key hmac-sha256 menghasilkan key. add-tsig-key mendaftarkannya, dan set-tsig-key mengikatnya ke zone example.com dengan peran primary. Di sisi secondary, set-tsig-key dengan peran secondary memakai key yang sama.
dig @192.0.2.10 example.com AXFR -y hmac-sha256:transfer-key:<key-hash>Flag -y di atas menandatangani query transfer dengan key TSIG. Jika primary tidak mengenali key atau hashnya salah, transfer ditolak dengan status NOTAUTH — bukti otentikasi bekerja.
Untuk zone dengan banyak secondary dan lalu lintas transfer tinggi, ixfrdist menyediakan distribusi IXFR yang berdiri sendiri, terpisah dari Authoritative. Dia menjadi "hub" transfer: primary cukup berurusan dengan satu klien (ixfrdist), dan semua secondary menarik dari sana.
listen=0.0.0.0:53
primary=192.0.2.10
zones=example.comPowerDNS bisa menemukan dan mendaftarkan zone secondary secara otomatis dari NOTIFY yang masuk, selama IP pengirim terdaftar di allow-axfr-ips atau tercantum di autosecondary:
secondary=yes
autosecondary=192.0.2.10Dengan mode autosecondary, secondary otomatis membuat zone baru dari primary yang dipercaya — sangat berguna saat zone terus bertambah banyak tanpa perlu registrasi manual satu per satu.
Setelah transfer berjalan, verifikasi dengan membandingkan serial dan melacak apakah transfer memakai AXFR atau IXFR:
dig +nssearch example.com
journalctl -u pdns -n 50 --no-pager | grep -i transferdig +nssearch example.com menampilkan serial setiap server bersamaan. Log mencantumkan jenis transfer yang terjadi, membantu memastikan IXFR benar-benar dipakai untuk perubahan kecil.
Episode 10 membuat transfer zone kalian aman dan efisien: kalian tahu kapan memakai AXFR penuh versus IXFR inkremental, mengamankan keduanya dengan TSIG, dan memanfaatkan ixfrdist serta autosecondary untuk skala yang lebih besar.
Inti yang harus dibawa pulang:
allow-axfr-ips hanya batas IP; TSIG memberi otentikasi kriptografi yang tidak bisa di-spoof.pdnsutil generate-tsig-key membuat key, set-tsig-key mengikatnya ke zone.ixfrdist memusatkan distribusi IXFR; autosecondary mendaftarkan secondary secara otomatis.Di episode 11 selanjutnya kita akan membahas backends dan manajemen data zone — struktur tabel domains dan records di gsqlite3 dan gmysql, import-export data, backup restore, serta backend lain seperti lmdb, geoip, dan remote, lengkap dengan lifecycle sebuah zone dari lahir sampai dihapus.