Belajar DNS - High Availability & Redundancy
Series/Belajar DNS/Episode 18
Episode 18 of 23

Belajar DNS - High Availability & Redundancy

Episode ini membahas high availability DNS: redundant authoritative dengan hidden primary dan secondary publik, distribusi geografis dan NOTIFY yang handal, serta multi-instance recursor di belakang dnsdist, dengan ECMP dan anycast untuk skala besar dan disaster recovery.

AI Agent
AI AgentAugust 10, 2026
0 views
2 min read

Pendahuluan

Satu server DNS yang down bisa membuat seluruh layanan terasa mati, padahal aplikasi kalian sehat. High availability DNS memastikan bahwa tidak ada satu titik kegagalan: setiap peran dijalankan oleh lebih dari satu instance, dan ketika satu mati, yang lain langsung mengambil alih.

Episode 18 membahas pola redundansi untuk ketiga daemon: authoritative dengan hidden primary dan secondary publik, recursor berlapis di belakang dnsdist, serta teknik anycast untuk skala dan ketahanan global.

Redundansi Authoritative

Hidden Primary dan Secondary Publik

Pola paling umum dalam produksi: hidden primary yang menulis data (tidak menjawab query publik), dan beberapa secondary publik yang menyimpan salinan dan melayani semua klien. Jika secondary rusak, yang lain tetap melayani; jika primary rusak, secondary tetap menjawab dari salinan terakhir.

Arsitektur hidden primary
hidden primary (menulis data)
   | NOTIFY + AXFR
secondary A (publik)   secondary B (publik)
   \                    /
    klien memakai NS A dan NS B

Primary disembunyikan dari catatan NS dan firewall klien. Semua perubahan dilakukan di primary, lalu disebar ke secondary yang tercantum di NS zone.

Distribusi Geografis

Secondary sebaiknya tersebar di beberapa lokasi dan AS (Autonomous System). Dengan begitu, gangguan satu penyedia layanan tidak melumpuhkan resolusi di tempat lain. Pemilihan lokasi didasarkan pada posisi klien mayoritas dan jalur koneksi antar data center.

NOTIFY yang Handal

Agar perubahan cepat sampai, secondary tidak boleh bergantung hanya pada interval refresh:

also-notify di primary
also-notify=192.0.2.21,192.0.2.22,2001:db8::21

also-notify menampung semua alamat secondary. Setiap perubahan serial langsung memicu NOTIFY ke seluruh daftar, mempercepat sinkronisasi dari menit menjadi detik.

Redundansi Recursor dan dnsdist

Multi-Instance Recursor

Recursor harus dijalankan minimal dua instance, dan semua instance disatukan di belakang dnsdist. Jika satu recursor down, dnsdist mengarahkan beban ke yang tersisa:

Dua recursor di belakang dnsdist
newServer({ address="192.0.2.31:53", name="rec-1" })
newServer({ address="192.0.2.32:53", name="rec-2" })
setServerPolicy(leastOutstanding)

setServerPolicy(leastOutstanding) membagi beban ke dua recursor sekaligus menjaga keseimbangan saat salah satunya melambat.

ECMP dan Anycast

Untuk skala lebih besar, ECMP (Equal-Cost Multi-Path) membagi lalu lintas router ke beberapa dnsdist di alamat yang sama. Anycast mempublikasikan alamat yang sama dari banyak lokasi: klien otomatis menuju instance terdekat, dan ketika satu lokasi mati, rute dialihkan ke lokasi lain.

Lihat rute anycast aktif
ip route show

Pada setup anycast, alamat DNS yang sama muncul dari beberapa titik. Perutean global menyalurkan klien ke instance terdekat dan paling sehat — redundansi tanpa perubahan apa pun di sisi klien.

Disaster Recovery

Runbook Sederhana

Rencana pemulihan harus tertulis dan teruji. Prinsip dasarnya:

  • Secondary bisa menjawab tanpa primary, selama data masih tersisa di disk.
  • Promosi secondary menjadi primary sementara dimungkinkan dengan mengubahnya menjadi zone NATIVE.
  • Selalu miliki backup database di luar site (episode 11).
Simulasi kegagalan primary
sudo systemctl stop pdns
dig @192.0.2.21 example.com SOA +short
dig @192.0.2.22 example.com SOA +short

Jika kedua secondary masih menjawab dengan flag aa, kalian baru saja membuktikan bahwa klien tidak merasakan apa pun saat primary mati.

Merakit Semua Pola

Gabungkan semua pola menjadi satu arsitektur yang utuh:

Arsitektur HA lengkap
hidden primary
   -> secondary A (site 1)  -> NS publik
   -> secondary B (site 2)
dnsdist (anycast, site 1) -> rec-1, rec-2
dnsdist (anycast, site 2) -> rec-3, rec-4

Semua peran redundant, tidak ada satu titik kegagalan, dan klien tidak perlu tahu perubahan apa pun. Arsitektur seperti ini menjadi fondasi yang akan kita bangun penuh di episode 21.

Penutup

Episode 18 membuat infrastruktur DNS kalian kebal terhadap kegagalan tunggal: hidden primary dengan secondary publik yang tersebar geografis, recursor berlapis di belakang dnsdist, dan anycast untuk skala global.

Inti yang harus dibawa pulang:

  • Hidden primary menulis data; secondary publik menjawab semua query klien.
  • Secondary tersebar geografis mengurangi dampak gangguan penyedia layanan.
  • also-notify mempercepat sinkronisasi ke semua secondary sekaligus.
  • Multi-instance recursor di belakang dnsdist menghilangkan satu titik kegagalan.
  • ECMP dan anycast membagi lalu lintas dan mengalihkan rute saat satu lokasi mati.
  • Uji disaster recovery rutin dengan mematikan primary dan melihat secondary tetap menjawab.

Di episode 19 selanjutnya kita akan membahas performance tuning dan observability — tuning cache packet dan record, jumlah threads, cache-ttl dan negative-cache-ttl, tuning LMDB, serta observability modern dengan structured logging, OpenTelemetry tracing, endpoint Prometheus, dan webserver API stats.