Setelah migrasi server atau perubahan konfigurasi DNS, salah satu masalah paling membuat frustrasi adalah menunggu propagasi record ke seluruh dunia. Kadang DNS sudah resolve dengan benar di Jakarta, tapi masih mengarah ke IP lama di Singapura atau Amerika. Untungnya, ada tool ringan bernama DNSGlobe yang bisa membantu developer memantau propagasi DNS secara real-time dari terminal.
Dalam tutorial ini, kita akan membahas cara install, menjalankan, dan memanfaatkan DNSGlobe untuk debugging jaringan. Tool ini ditulis dalam Rust dan menawarkan antarmuka TUI yang responsif tanpa perlu membuka browser. Kita juga akan melihat bagaimana mengintegrasikannya ke dalam workflow DevOps modern.
DNSGlobe adalah aplikasi terminal berbasis Rust yang menampilkan status propagasi DNS di berbagai lokasi global secara simultan. Dibangun oleh tim 514 Labs, tool ini menggunakan resolver DNS publik dari berbagai benua untuk memberikan gambaran menyeluruh tentang bagaimana record DNS kamu tersebar di seluruh dunia.
Beberapa fitur utama yang ditawarkan:
Tampilan real-time dengan color coding: hijau untuk propagated, merah untuk belum
Dukungan untuk berbagai tipe record: A, AAAA, MX, TXT, CNAME, dan NS
Ringan dan tidak memerlukan runtime tambahan setelah dikompilasi
Open source dan bisa dikembangkan lebih lanjut sesuai kebutuhan
DNSGlobe bekerja dengan mengirimkan query DNS ke beberapa resolver publik yang tersebar di berbagai wilayah geografis. Resolver-resolver ini mencakup layanan seperti Google DNS, Cloudflare DNS, OpenDNS, serta resolver lokal di Asia, Eropa, Amerika, dan Australia. Hasil dari setiap query kemudian dikumpulkan dan ditampilkan dalam tabel yang mudah dibaca.
Perbedaan nilai antar resolver menunjukkan bahwa propagasi belum merata. Ini bisa terjadi karena TTL cache yang masih aktif di beberapa ISP atau karena adanya anycast routing yang belum sinkron. Memahami mekanisme ini membantu developer mengambil keputusan yang lebih tepat saat troubleshooting.
Sebelum mulai, pastikan sistem kamu sudah memiliki:
Rust toolchain (rustc dan cargo) versi stabil terbaru
Terminal dengan dukungan Unicode dan warna
Koneksi internet untuk mengakses resolver DNS global
Jika belum install Rust, kunjungi rustup.rs dan ikuti instruksi untuk platform kamu. Proses install Rust biasanya hanya memerlukan satu perintah dan berjalan dalam beberapa menit.
Cara termudah adalah menginstall dari source melalui cargo. Buka terminal dan jalankan perintah berikut:
cargo install dnsglobeAtau jika ingin build dari source untuk mendapatkan versi paling baru:
git clone https://github.com/514-labs/dnsglobe.git
cd dnsglobe
cargo build --releaseBinary hasil kompilasi akan berada di target/release/dnsglobe. Kamu bisa menambahkan ke PATH atau langsung menjalankannya dari direktori tersebut. Jika menggunakan sistem berbasis Debian, pastikan package build-essential sudah terinstall agar proses kompilasi berjalan lancar.
Setelah install, jalankan DNSGlobe dengan domain yang ingin kamu periksa. Contohnya:
dnsglobe example.com ADNSGlobe akan menampilkan tabel dengan kolom lokasi resolver dan status resolve. Setiap baris merepresentasikan resolver DNS di negara atau region tertentu. Jika semua resolver menunjukkan IP yang sama, artinya propagasi sudah selesai.
Untuk record MX:
dnsglobe example.com MXKamu juga bisa memeriksa record TXT yang biasa digunakan untuk konfigurasi SPF atau DKIM:
dnsglobe example.com TXTDNSGlobe menggunakan color coding untuk memudahkan interpretasi hasil:
Hijau: Record sudah terpropagasi dengan benar di resolver tersebut
Merah: Record belum terupdate atau mengarah ke nilai lama
Kuning: Terdapat perbedaan nilai yang mungkin perlu diperhatikan
Dengan visualisasi ini, kamu tidak perlu lagi mengecek satu per satu menggunakan dig atau nslookup ke server DNS spesifik. Tampilan yang responsif juga memudahkan monitoring saat sedang melakukan perubahan infrastruktur besar.
Untuk hasil yang lebih akurat, gunakan tipe record yang spesifik. Jika kamu baru saja mengubah nameserver, periksa record NS terlebih dahulu. Jika hanya mengubah A record untuk pointing ke server baru, fokus pada tipe A.
Beberapa tips praktis:
Gunakan TTL rendah (300-600 detik) sebelum melakukan perubahan besar untuk mempercepat propagasi
Periksa resolver utama di wilayah target audiens kamu. Jika mayoritas pengguna dari Asia Tenggara, pastikan resolver di Singapura dan Jakarta sudah update
Gabungkan DNSGlobe dengan script monitoring untuk mendapatkan notifikasi otomatis saat propagasi selesai
DNSGlobe bisa diintegrasikan ke pipeline deployment untuk memastikan DNS sudah siap sebelum aplikasi dianggap deploy sukses. Contoh sederhana dalam GitHub Actions:
steps:
- name: Verify DNS Propagation
run: |
cargo install dnsglobe
dnsglobe devmode.id A --expect 192.0.2.1Dengan integrasi ini, deployment tidak akan dilanjutkan ke tahap smoke test jika DNS belum siap, mengurangi risiko downtime yang tidak perlu. Pendekatan ini sangat berguna untuk tim yang menerapkan praktik blue-green deployment atau canary release.
Saat pertama kali menggunakan DNSGlobe, beberapa masalah mungkin muncul. Jika hasil menunjukkan banyak resolver merah padahal kamu yakin record sudah benar, coba periksa apakah ada firewall yang memblokir query DNS keluar. Beberapa resolver juga memerlukan waktu lebih lama karena load balancing internal mereka.
Jika DNSGlobe tidak bisa dikompilasi, pastikan versi Rust kamu sudah di atas 1.70. Jalankan rustc --version untuk memastikan. Update Rust dengan rustup update jika diperlukan.
DNSGlobe adalah tool praktis yang menghemat waktu developer saat menangani masalah propagasi DNS. Dengan antarmuka terminal yang bersih dan data real-time dari resolver global, kamu bisa dengan cepat menentukan apakah perubahan DNS sudah efektif atau masih perlu ditunggu.
Sebagai next step, coba eksplorasi repository DNSGlobe di GitHub untuk melihat fitur-fitur tambahan dan berkontribusi ke proyek open source ini.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu