Petunjuk dan konteks
Pertanyaan teknis umum ini menguji semantik protokol DNS, caching, dan diagnosis insiden. Jawaban yang kuat memisahkan antara "nama tidak ada", "nama ada tetapi tidak memiliki tipe yang diminta", dan "resolusi gagal", kemudian menjelaskan mengapa memperbaiki data otoritatif tidak secara instan menghapus jawaban negatif lama dari resolver rekursif.
Apa yang dievaluasi pewawancara
- Membedakan NXDOMAIN dari NODATA alih-alih menyebut setiap jawaban kosong sebagai "DNS hilang".
- Menjelaskan bagaimana data SOA menyediakan pengaturan waktu cache negatif dan bagaimana caching kegagalan dibatasi.
- Menelusuri jalur stub, resolver rekursif, dan server otoritatif dengan bukti serta sisa TTL.
- Merancang prosedur pembuatan data, rollback, dan pemantauan tanpa pembersihan cache secara membabi buta atau badai percobaan ulang (retry storms).
Pertanyaan klarifikasi yang perlu diajukan
Konfirmasikan nama yang ditanyakan, tipe data, stempel waktu, kode respons, status publikasi zona otoritatif, validasi DNSSEC, apakah semua resolver atau hanya satu jaringan yang terpengaruh, dan apakah cache DNS lokal, service-mesh, atau aplikasi terlibat.
Kerangka kerja jawaban 30 detik
Saya akan menanyakan server otoritatif terlebih dahulu, lalu beberapa resolver rekursif sambil mencatat NXDOMAIN, NODATA, atau SERVFAIL, SOA di bagian Authority, dan TTL. NXDOMAIN menyatakan nama tidak ada; NODATA menyatakan nama ada tanpa tipe yang diminta, dan keduanya dapat di-cache secara negatif menggunakan parameter SOA. Jika otoritas sudah benar tetapi rekursi masih mengembalikan jawaban lama, tunggu TTL negatif atau gunakan pembatalan resolver yang terkontrol; menyegarkan satu klien tidak dapat membersihkan cache upstream.
Jawaban mendalam langkah demi langkah
1. Pisahkan hasil negatif
NXDOMAIN berarti rantai otoritatif menyatakan nama yang ditanyakan tidak ada. NODATA biasanya memiliki respons sukses dengan bagian jawaban yang kosong, yang berarti nama tersebut ada tetapi tidak memiliki tipe RR yang diminta. SERVFAIL berarti proses resolusi gagal, misalnya karena otoritas tidak dapat dijangkau atau validasi DNSSEC gagal; ini bukan bukti bahwa nama tersebut tidak ada.
2. Jelaskan dari mana masa berlaku negatif berasal
RFC 2308 mengizinkan respons NXDOMAIN dan NODATA membawa SOA. Resolver rekursif menggunakan TTL negatif, yang umumnya dibatasi oleh nilai yang lebih kecil antara SOA MINIMUM dan SOA TTL dalam implementasi saat ini, untuk memutuskan berapa lama jawaban harus disimpan. Operator harus memperlakukan nilai tersebut sebagai jendela propagasi untuk membuat atau menarik data DNS. RFC 9520 juga mewajibkan caching negatif yang dibatasi untuk kegagalan resolusi sehingga pemadaman sementara tidak memblokir pemulihan selamanya.
3. Bangun diagnosis yang dapat diulang
Jalankan dig @authoritative-server api.example.com A +norecurse untuk memverifikasi jawaban otoritatif, SOA, dan serial, lalu jalankan kueri yang sama terhadap beberapa resolver rekursif. Catat status, bagian Authority, TTL SOA, dan stempel waktu. Otoritas positif ditambah NXDOMAIN rekursif mengarah ke cache negatif atau jalur delegasi; NXDOMAIN pada otoritas mengarah ke publikasi zona atau penamaan; SERVFAIL mengarah ke keterjangkauan, delegasi, atau DNSSEC.
4. Mencegah amplifikasi cache dan badai percobaan ulang
Aplikasi tidak boleh melakukan busy-loop pada jawaban negatif. Gunakan backoff terbatas untuk penemuan layanan dan catat kode respons beserta usia cache. Publikasikan nama baru sebelum lalu lintas produksi tiba sehingga kueri pertama tidak menaburkan NXDOMAIN ke banyak cache rekursif. Setelah perubahan, pantau rasio jawaban negatif berdasarkan resolver dan wilayah untuk membedakan cache yang belum kedaluwarsa dari kegagalan otoritatif yang berlanjut.
5. Rencanakan pemulihan dan rollback
Anda tidak dapat memaksa setiap resolver rekursif publik untuk segera menghapus entri negatif. Tunggu TTL negatif, bersihkan resolver yang Anda kendalikan, perbaiki otoritas atau DNSSEC, dan pertahankan endpoint lama atau jalur penemuan alternatif selama jendela tersebut. Verifikasi perilaku otoritatif, rekursif, dan permintaan nyata secara terus-menerus; hapus fallback hanya setelah tingkat NXDOMAIN dan SERVFAIL kembali ke batas dasar (baseline).
Contoh jawaban berkualitas tinggi
Pertama-tama saya memisahkan NXDOMAIN, NODATA, dan SERVFAIL. NXDOMAIN berarti nama tidak ada, NODATA berarti nama ada tanpa tipe yang diminta, dan SERVFAIL berarti rantai resolusi gagal. Saya menanyakan otoritas untuk zona dan serial, lalu membandingkan beberapa resolver rekursif, kode responsnya, SOA bagian Authority, dan sisa TTL. Jawaban negatif dapat tetap di-cache sesuai dengan TTL negatif SOA, sehingga data yang baru dibuat mungkin masih terlihat seperti NXDOMAIN; resolver juga dapat mempertahankan hasil kegagalan yang dibatasi. Saya menghindari badai percobaan ulang aplikasi, memublikasikan nama sebelum cutover, menggunakan jendela TTL negatif yang terencana, dan memantau beberapa wilayah serta lalu lintas nyata sambil mempertahankan endpoint fallback.
Kesalahan umum
- Memperlakukan NXDOMAIN, NODATA, dan SERVFAIL sebagai satu hasil kosong yang sama.
- Membersihkan cache laptop sambil mengabaikan status resolver rekursif.
- Menganggap bahwa mengedit SOA secara instan memperpendek entri negatif yang sudah tersimpan.
- Mencoba ulang terus-menerus saat layanan otoritatif masih rusak.
- Hanya memeriksa A dan melupakan AAAA, delegasi, DNSSEC, atau kesalahan penulisan.
Pertanyaan lanjutan dan tanggapan
Mengapa data A baru masih mengembalikan NXDOMAIN?
Konfirmasikan bahwa otoritas telah memuat zona dan delegasi sudah benar. Jika otoritas mengembalikan A, NXDOMAIN rekursif biasanya merupakan entri negatif sebelumnya; tunggu hingga TTL negatif SOA-nya kedaluwarsa.
Bisakah NODATA menunda data AAAA berikutnya?
Ya. Resolver dapat menyimpan cache bahwa nama tersebut ada tanpa AAAA, sehingga klien dapat terus melihat jawaban kosong hingga TTL negatif khusus tipe tersebut kedaluwarsa.
Bisakah SERVFAIL juga di-cache?
Ya, panduan modern mewajibkan caching terbatas untuk kegagalan resolusi, dengan batasan implementasi. Setelah memperbaiki otoritas atau DNSSEC, lakukan validasi dengan beberapa resolver sementara jendela kegagalan tersebut habis.
Bisakah subdomain acak melewati caching negatif?
Itu bukan solusi umum. Nama acak menambah kueri otoritatif dan tekanan cache serta tidak memperbaiki kesalahan delegasi, zona, atau DNSSEC. Perbaiki fakta otoritatif dan biarkan entri yang ada kedaluwarsa.