Lewati ke konten utama
๐Ÿš€ nusa.id cloud server linux indonesialihat paket

Cara Troubleshoot DNS Resolution di Debian 12

ยท 7 menit membaca
Aidil Putra
Maintainer

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 root atau sebagai pengguna di grup sudo.
  • 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-dnsutils dengan 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, atau curl mengembalikan peringatan berupa Temporary 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:

  1. Kesalahan pengaturan di file konfigurasi /etc/resolv.conf, seperti penyebutan alamat IPv4/IPv6 nameserver yang tidak aktif atau salah ketik.
  2. Port 53, baik yang digunakan untuk protokol UDP maupun transmisi TCP, diblokir oleh firewall lokal ufw atau perlindungan jaringan penyedia cloud.
  3. Node nameserver utama yang ditunjuk sistem sedang menderita interupsi teknis, terputus koneksinya (downtime), atau menerapkan rate-limiting dari subnet IP server Anda.
  4. 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โ€‹

  1. Error Name or service not known:

    • Penyebab: Typo pada nama domain, atau /etc/resolv.conf tidak berisi konfigurasi nameserver yang valid.
    • Fix: Periksa kembali ejaan domain. Jika sudah benar, tambahkan public DNS resolver seperti nameserver 1.1.1.1 ke dalam /etc/resolv.conf.
  2. 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.
  3. 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.com untuk melihat respon resolusi dasar sistem.
  • Uji query DNS berbasis TCP: host -T -W 10 google.com untuk membenarkan bahwa respon lewat soket TCP tidak bermasalah atau mengalami timeout jaringan.
  • Jalankan analisis verbosity tinggi: host -v -t a google.com untuk 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.