There is no way it's DNS

Preambule
Beberapa waktu lalu di kantor sedikit ramai terkait kebijakan baru di Pemerintah Provinsi DKI Jakarta terkait penonaktifan KTP Jakarta yang sudah tidak berdomisili di Jakarta, beberapa rekan kantor terkena hal tersebut, sontak rekan kerja yang lain dan masih ber-KTP Jakarta segera melakukan pemeriksaan terhadap NIK mereka masing-masing,
Namun seperti yang kita tau tidak sedikit kita dari masyarakat yang mendapatkan pengalaman buruk terkait akses digital pada Pemerintahan entah keluhan lola (loading lama alias lemot) hingga tidak bisa diakses sama sekali dan tentu saja rekan kerjaku juga merasakan hal tersebut serta terdapat keanehan ketika web yang dimaksud akan diakses kadang bisa kadang tampil maintenance, entah tidak ada angin ataupun badai terbesit dipikiranku adalah “ini pasti DNS-nya”
Tanpa pikir panjang langsung cek nameserver yang terdaftar pada domain jakarta.go.id dengan menggunakan command whois jakarta.go.id
dan mendapatkan bahwa terdapat 3 nameserver yang ada pada domain tersebut yaitu ns4, ns5 dan ns10 (disingkat tanpa domain)
Dari ketiga domain tersbut kita coba cek untuk IP dari nameserver tersebut masih terdaftar atau tidak menggunakan dig dan mendapati bahwa 3 nameserver tersebut berada di segmen ip yang sama yaitu 103.209.7.1/24
Lanjut kita coba cek untuk koneksi pada port 53 dengan protokol UDP dan ketiga-tiganya mendapatkan status open port semua, sepertinya ini pertanda bagus.
Akan tetapi ketika dilakukan test check record terhadap domain jakarta.go.id pada ketiga nameserver tersebut terdapat beberapa anomali,
- Pada ns10 (IP 69) dia akan merespon dengan IP 103.209.7.64 terhadap query A untuk record jakarta.go.id
- Pada ns5 (IP 223) dia tidak merespon apa-apa kemungkinan record A tersebut kosong / tidak isi
- Sedangkan pada ns4 (IP 251) dia akan muncul connection timed out hal ini umumnya terjadi karena service unreachable / service mati
Dengan informasi tersebut kita bisa berasumsi bahwa ns10 sehat wal afiat, ns5 servicenya nyala namun records tidak ada / tidak sync dan ns4 service DNS-nya tidak aktif meskipun pada test port dia open namun dig tidak dapat mengambil respon dari service DNS
Pada anomali nomor 2 karena ada nameserver yang hanya merespon data kosong (bukan timed-out), kita coba cek apakah data dari ketiga nameserver tersebut sync dengan baik atau tidak, di DNS terdapat SOA Serial Number atau catatan nomor seri yang akan dirubah setiap kali ada perubahan pada Records DNS, umumnya format Serial Number ini adalah YYYYMMDDNN (Year, Month, Day, Number Revision) SOA juga membantu sistem master-slave DNS tetap sync.
Di ns10 SOA Serialnya adalah 2020076226, ns5 dengan 2024052701 dan ns4 yang tidak merespon karena nameservernya meninggal, dengan ini bisa kita asumsikan bahwa ns5 adalah nameserver yang paling up-to-date sedangkan ns10 sudah tidak sync sejak tahun 2020 kemarin / 4 tahun yang lalu, dengan ini menjawab anomali pada nomor 2 di poin sebelumnya.
Setelah melakukan dengan whois dan dig, baru teringat bahwa ada service intodns.com yang menyediakan informasi detail terkait per-DNS-an ini, pada intodns sendiri dia juga memberi tahu bahwa SOA yang tidak sync ini dapat berdampak serius dan perlu diperbaiki secepat mungkin
Selain SOA tadi dia juga mengkonfirmasi bahwa ns4 juga tidak merespon terhadap query DNS yang dikirimkan, serta ada informasi bahwa parent nameserver ns4 tidak terdaftar sebagai nameserver di nameserver yang lain.
Impact
Lalu apa yang akan terjadi jika ada domain dengan konfigurasi DNS seperti itu ?
- Jika terdapat out-of-sync maka data records masih mengarah ke records yang lama sehingga halaman web yang ditampilkan pada client bisa saja data sudah usang, namun dalam case ini hanya records kosong kemungkinan besar berpengaruh terhadap kestabilan ketika mengakses ke records tersebut.
- Jika nameserver mati dapat berdampak delay time pada saat domain diakses / dikueri karena browser atau recursive DNS yang digunakan oleh client membutuhkan waktu untuk melakukan kueri ulang pada nameserver yang lain.
- Bisa saja terjadi penurunan performa dikarenakan performa dan reliability pada konfigurasi DNS tersebut kurang bagus dan tepat, serta pada nameserver yang sehat bisa saja terlalu lelah untuk menghandle banyak request kueri sehingga mengarah pada respon time yang naik
Lesson Learned
Lalu apa yang harus dan dapat kita lakukan ?
Sebagai sysadmin kita dapat menghapus ns4 pada parent nameserver di dashboard console domain jika sudah tidak digunakan kembali, jika masih ingin digunakan kita harus memastikan ulang bahwa service DNS pada server tersebut sehat dan datanya juga sync
Melakukan sync ulang terhadap ns10 dengan ns5 agar data Records yang disimpan pada nameserver yang terdaftar tetap sinkron sehingga data yang ditampilkan ketika browser / recursive DNS melakukan kueri tidak terjadi anomali / menampilkan data yang sudah usang
Sebagai user kita bisa mencoba melakukan pointing manual terhadap domain yang akan diakses agar browser tidak perlu melakukan query DNS keluar / ke recursive DNS / ke internet namun hal ini bukanlah hal yang best practice
Perlu diketahui bahwa terkait performa dan lola sepertinya tidak hanya mengacu tulisan ini saja yang mempengaruhi, masih banyak intervensi / faktor lain yang menyebabkan sebuah sistem digital ketika diakses dirasa lamban, perlu dilakukan tarik benang merah dan cek and recheck satu-persatu
Jadi, gimana konfigurasi DNS-mu ? sudah tepat atau belum ? atau jangan-jangan mempunyai problem seperti spbe.go.id juga? jangan lupa cek secara berkala atau bisa menggunakan service dari lha malah promosi wkwkwkwk