Cara Troubleshoot DNS Resolution di Debian 12
Server Anda gagal terhubung ke internet karena domain tidak dapat diubah menjadi alamat IP yang valid. Layanan yang sangat bergantung pada API eksternal atau proses pembaruan sistem operasi akan terhenti total ketika masalah DNS resolution ini terjadi.
Prasyaratโ
Sebelum melanjutkan dengan panduan ini, pastikan Anda memenuhi kriteria berikut:
- Sistem operasi berjalan dengan rilis terbaru yang stabil dan kompatibel.
- Akses administratif penuh ke terminal dengan hak istimewa
rootatau sebagai pengguna di grupsudo. - Repositori perangkat lunak sistem beroperasi normal tanpa kesalahan indeks paket.
- Koneksi jaringan eksternal dasar di mana setidaknya paket ICMP dapat merutekan dengan benar.
Lingkungan Pengujianโ
Dokumentasi serta pengujian pada panduan ini telah divalidasi dengan lingkungan sistem operasi berikut:
- OS: Debian 12 (Bookworm)
- Lingkungan eksekusi: Standar Container Image
debian:12 - Versi kernel: Bawaan sistem operasi pengujian.
- Paket utilitas DNS:
bind9-dnsutilsdengan versi 1:9.18.49-1~deb12u1 - Lingkungan jaringan mendukung koneksi IPv4 standar. (Koneksi IPv6 tidak diwajibkan untuk langkah-langkah IPv4 spesifik).
Gejala Umum Kegagalan DNS Resolutionโ
Kegagalan resolusi DNS sering muncul sebagai berikut:
- Aplikasi internal server yang melakukan koneksi eksternal menampilkan teks error seperti
Name or service not known. - Perintah dasar interaksi jaringan seperti
ping,wget, ataucurlmengembalikan peringatan berupaTemporary failure in name resolution. - Pada sisi logging server, entri harian atau journal sistem untuk layanan web (seperti Nginx) atau mail (Postfix) dibanjiri dengan keluhan pencarian rute DNS gagal.
- Permintaan API menuju domain host pihak ketiga terpaksa ditahan (mengalami status timeout panjang) sebelum pada akhirnya diakhiri secara otomatis oleh batas eksekusi aplikasi Anda.
Kemungkinan Penyebab Masalah DNSโ
Beberapa skenario dapat memicu masalah pada tingkat resolusi nama di lingkungan server berbasis Debian:
- Kesalahan pengaturan di file konfigurasi
/etc/resolv.conf, seperti penyebutan alamat IPv4/IPv6 nameserver yang tidak aktif atau salah ketik. - Port 53, baik yang digunakan untuk protokol UDP maupun transmisi TCP, diblokir oleh firewall lokal
ufwatau perlindungan jaringan penyedia cloud. - Node nameserver utama yang ditunjuk sistem sedang menderita interupsi teknis, terputus koneksinya (downtime), atau menerapkan rate-limiting dari subnet IP server Anda.
- Rute (routing table) antarmuka jaringan rusak, di mana paket UDP gagal keluar melalui gateway server menuju internet.
Diagnostik DNS Resolutionโ
Untuk memulai pengujian DNS, pastikan tools diagnostik terpasang. Panduan ini menggunakan paket standar bind9-dnsutils dan bind9-host yang krusial di sistem Linux modern.
Install bind9-dnsutils dan bind9-host:
sudo apt-get update && sudo apt-get install -y bind9-host bind9-dnsutils
Verifikasi versi host yang terinstal:
host -V
Output:
host 9.18.49-1~deb12u1-Debian
Memeriksa Address Record (A) Standarโ
Tes DNS resolution dengan domain publik untuk memverifikasi fungsi nameserver:
host google.com
Output:
google.com has address 142.251.12.139
google.com has address 142.251.12.113
google.com has IPv6 address 2404:6800:4003:c11::64
google.com mail is handled by 10 smtp.google.com.
Untuk memaksa query menggunakan IPv4 saja, gunakan opsi -4:
host -4 google.com
Output:
google.com has address 142.251.12.101
google.com has IPv6 address 2404:6800:4003:c11::64
google.com mail is handled by 10 smtp.google.com.
Catatan Untuk IPv6: Ketika menguji konektivitas dual-stack dengan menjalankan perintah
host -6 google.com, jaringan mungkin tidak mengembalikan record jika IPv6 dinonaktifkan di node Anda. Sebagian besar simulasi sistem standar (seperti container Docker) tidak mencakup konektivitas protokol versi 6 murni secara default.
Memeriksa Kategori Record Spesifikโ
Untuk memeriksa nameserver otoritatif, gunakan opsi -t ns:
host -t ns google.com
Output:
google.com name server ns2.google.com.
google.com name server ns1.google.com.
google.com name server ns4.google.com.
google.com name server ns3.google.com.
Untuk memeriksa CNAME record:
host -t cname mail.google.com
Output jika domain tidak memiliki CNAME:
mail.google.com has no CNAME record
Untuk memeriksa MX record (Mail Exchange):
host -n -t mx google.com
Output:
google.com mail is handled by 10 smtp.google.com.
Untuk memeriksa TXT record (seperti SPF):
host -t txt google.com
Output:
google.com descriptive text "v=spf1 include:_spf.google.com ~all"
Untuk memeriksa SOA record beserta autoritatif nameserver-nya:
host -C google.com
Output:
Nameserver 216.239.32.10:
google.com has SOA record ns1.google.com. dns-admin.google.com. 937222855 900 900 1800 60
Nameserver 216.239.38.10:
google.com has SOA record ns1.google.com. dns-admin.google.com. 937222855 900 900 1800 60
Menguji Spesifik Nameserverโ
Jika mencurigai masalah cache DNS lokal, Anda dapat membypass resolver lokal dan melakukan query langsung ke nameserver publik spesifik (misal ns4.google.com):
host google.com ns4.google.com
Output:
Using domain server:
Name: ns4.google.com
Address: 216.239.38.10#53
Aliases:
google.com has address 142.250.4.101
Untuk menonaktifkan rekursi query, gunakan opsi -rR 5 (beserta pembatasan retry):
host -rR 5 google.com ns1.google.com
Output:
Using domain server:
Name: ns1.google.com
Address: 216.239.32.10#53
Aliases:
google.com has address 142.250.4.139
google.com mail is handled by 10 smtp.google.com.
Untuk membatasi jumlah retry query:
host -R 5 google.com
Output:
google.com has address 142.251.12.138
google.com mail is handled by 10 smtp.google.com.
Melakukan query ANYโ
Untuk meminta semua record DNS yang tersedia, gunakan tipe ANY. Harap diingat untuk menggunakan nama domain di mana provider layanan tidak menolak kategori ANY, misalnya terhadap lingkungan sistem bebas proteksi ketat:
host -a nusa.id
Output:
Trying "nusa.id"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48217
;; flags: qr rd ra; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;nusa.id. IN ANY
;; ANSWER SECTION:
nusa.id. 223 IN MX 10 alt3.aspmx.l.google.com.
nusa.id. 223 IN MX 5 alt2.aspmx.l.google.com.
nusa.id. 223 IN MX 10 alt4.aspmx.l.google.com.
nusa.id. 223 IN MX 5 alt1.aspmx.l.google.com.
nusa.id. 223 IN MX 1 aspmx.l.google.com.
nusa.id. 133 IN A 43.229.254.217
nusa.id. 133 IN AAAA 2401:2900:104::100
Untuk memaksa query DNS melewati koneksi TCP (sebagai pengganti UDP) dengan batas timeout 10 detik:
host -T -W 10 google.com
Output:
google.com has address 142.251.12.113
google.com mail is handled by 10 smtp.google.com.
Perbaikan DNS Resolutionโ
Untuk memperbaiki masalah resolusi, update file konfigurasi resolver sistem /etc/resolv.conf menggunakan text editor pilihan Anda:
# Menggunakan nano:
nano /etc/resolv.conf
# Menggunakan vim:
vim /etc/resolv.conf
Tambahkan alamat IP public DNS resolver yang kredibel (seperti Google atau Cloudflare):
nameserver 8.8.8.8
nameserver 1.1.1.1
Jika query DNS diblokir, pastikan port 53 (UDP/TCP) diizinkan di firewall lokal atau di dashboard keamanan penyedia server. Panduan ini menggunakan Nusa Cloud VPS sebagai lingkungan pengujian, namun langkah-langkahnya berlaku untuk server Linux mana pun.
Troubleshootingโ
-
Error Name or service not known:
- Penyebab: Typo pada nama domain, atau
/etc/resolv.conftidak berisi konfigurasi nameserver yang valid. - Fix: Periksa kembali ejaan domain. Jika sudah benar, tambahkan public DNS resolver seperti
nameserver 1.1.1.1ke dalam/etc/resolv.conf.
- Penyebab: Typo pada nama domain, atau
-
Error REFUSED pada query non-rekursif:
- Penyebab: Resolver publik membatasi akses query tanpa rekursi atau memblokir IP server Anda karena rate-limiting akibat query yang terlalu agresif.
- Fix: Arahkan query diagnostik langsung ke nameserver otoritatif domain tersebut, misalnya:
host google.com ns1.google.com. Hindari query iteratif intensif ke open resolver publik.
-
Temporary failure in name resolution:
- Penyebab: query DNS tidak dapat mencapai jaringan eksternal karena masalah routing dasar atau port 53 UDP diblokir oleh firewall.
- Fix: Uji konektivitas dasar dengan
ping 8.8.8.8. Jika berhasil, periksa dan izinkan akses keluar untuk port 53 UDP/TCP di firewall lokal (ufw) atau security group di platform cloud Anda.
Pengujian Fungsionalโ
Validasi fungsional perlu menguji kelangsungan DNS di level OS (melalui system call getaddrinfo()). Lakukan pengujian resolusi fungsional via instruksi ping standar:
ping -c 3 google.com
Pastikan domain langsung diubah menjadi alamat IP dan balasan echo ICMP diterima tanpa jeda lookup nama DNS yang panjang.
Verifikasiโ
Setelah perbaikan selesai dilakukan, konfirmasi kembali operasional DNS menggunakan alat diagnostik:
- Jalankan ulang instruksi
host google.comuntuk melihat respon resolusi dasar sistem. - Uji query DNS berbasis TCP:
host -T -W 10 google.comuntuk membenarkan bahwa respon lewat soket TCP tidak bermasalah atau mengalami timeout jaringan. - Jalankan analisis verbosity tinggi:
host -v -t a google.comuntuk mencetak langkah teknis dari setiap rute DNS.
Tampilan yang menjabarkan siklus verifikasi ini seharusnya mencetak:
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57604
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;google.com. IN A
;; ANSWER SECTION:
google.com. 205 IN A 142.251.12.139
Ini memastikan DNS sistem Anda telah berfungsi sebagaimana mestinya dalam menerjemahkan domain internet.
