Episode ini membahas RFC 2136 dynamic update: mengaktifkan DNS update dengan pdnsutil enable-dnsupdate dan forward-dnsupdate, melakukan update otomatis lewat nsupdate, serta integrasi dari DHCP, Docker, dan skrip provisioning dengan kombinasi API.

Di dunia yang berubah cepat, mengedit zone secara manual adalah kutukan: lambat, rawan salah ketik, dan tidak bisa mengejar kecepatan container atau VM yang berganti IP setiap menit. Dynamic update (RFC 2136) memecahkan masalah ini dengan mengizinkan klien menambah, mengubah, dan menghapus record lewat protokol.
Episode 12 membahas pengaktifan dynamic update di PowerDNS, praktik nsupdate, dan integrasi dengan DHCP, Docker, serta skrip provisioning. Setelah episode ini, perubahan DNS bisa dilakukan oleh mesin, bukan oleh manusia.
Dynamic update tidak aktif secara default. Aktifkan per zone:
pdnsutil enable-dnsupdate example.com
pdnsutil show-zone example.com | grep -i dnsupdatepdnsutil enable-dnsupdate example.com menandai zone example.com menerima update dinamis. Untuk mengaktifkan secara global, atur dnsupdate=yes di pdns.conf — tetapi mengaktifkan per zone lebih aman karena kontrolnya lebih halus.
Karena dynamic update mengubah data secara langsung, kalian wajib membatasi siapa yang boleh melakukannya. Cara paling tepat adalah TSIG: buat key per klien atau per kelompok, lalu beri hak update hanya pada zone yang bersangkutan.
pdnsutil generate-tsig-key dhcp-key hmac-sha256
pdnsutil add-tsig-key dhcp-key hmac-sha256 <key-hash>Dengan TSIG, permintaan update tanpa tanda tangan yang valid akan ditolak. Ini jauh lebih baik daripada membuka dynamic update tanpa otentikasi.
nsupdate adalah klien standar untuk RFC 2136. Buat file instruksi lalu jalankan:
cat > /tmp/update.txt << 'EOF'
server 127.0.0.1
zone example.com
update add laptop.example.com 300 A 192.0.2.100
send
EOF
nsupdate -v /tmp/update.txtInstruksi di atas menambah laptop.example.com dengan TTL 300 detik dan alamat 192.0.2.100. Dengan TSIG, tambahkan flag -k:
nsupdate -k /etc/bind/Kdhcp-key.+165+00000.key -v /tmp/update.txtUpdate dinamis juga menghapus record, berguna saat VM mati:
cat > /tmp/delete.txt << 'EOF'
server 127.0.0.1
zone example.com
update delete laptop.example.com A
send
EOF
nsupdate -v /tmp/delete.txtKombinasi tambah, hapus, dan ganti lewat script membuat DNS menjadi database yang hidup mengikuti keadaan infrastruktur.
Kasus paling umum adalah DHCP yang mendaftarkan host: setiap kali klien mendapat alamat IP, DHCP server menjalankan script yang memanggil nsupdate. Pola yang sama dipakai untuk container: saat container naik dan mendapat IP, skrip provisioning mendaftarkan namanya di DNS.
HOST=app-01
IP=192.0.2.101
{
echo "server 127.0.0.1"
echo "zone example.com"
echo "update delete $HOST.example.com A"
echo "update add $HOST.example.com 300 A $IP"
echo "send"
} | nsupdate -k /etc/bind/Kapp.key -vSkrip di atas bersifat idempotent: menghapus record lama dulu lalu menambahkan yang baru, sehingga aman dijalankan berulang kali tanpa error duplikat.
Untuk otomatisasi skala besar, padukan dynamic update dengan API PowerDNS (episode 20): API untuk operasi zona dan record terstruktur, nsupdate untuk update cepat dari klien seperti DHCP. Keduanya saling melengkapi — API menangani perubahan administratif, nsupdate menangani perubahan operasional berkecepatan tinggi.
dig @127.0.0.1 laptop.example.com A +shortDynamic update adalah pintu yang bisa disalahgunakan. Aturan yang wajib kalian terapkan:
allow-update-from di pdns.conf.allow-update-from=192.0.2.0/24allow-update-from membatasi alamat yang boleh mengirim dynamic update. Gabungkan dengan TSIG, dan kalian memiliki dua lapis pertahanan sekaligus.
Episode 12 membuat DNS kalian menjadi dinamis: mengaktifkan update per zone, melakukan perubahan otomatis lewat nsupdate, mengintegrasikannya dengan DHCP dan Docker, dan mengamankannya dengan TSIG serta restriksi sumber.
Inti yang harus dibawa pulang:
pdnsutil enable-dnsupdate mengaktifkan update dinamis per zone.nsupdate menambah, mengubah, dan menghapus record lewat RFC 2136.allow-update-from.Di episode 13 selanjutnya kita akan membahas DNSSEC: signing zone di sisi Authoritative — konsep KSK dan ZSK, algoritma RSA dan ECDSA P-256, record RRSIG, DNSKEY, DS, NSEC, dan NSEC3, serta praktik pdnsutil secure-zone, rotasi key, dan publikasi DS ke registrar.