Membuka halaman beberapa detik setelah terowongan aktif bukan bukti bahwa DNS sekarang berfungsi, meskipun tiket biasanya mengatakan demikian. Tidak ada dalam pengamatan itu yang memerlukan pencarian: nama mungkin sudah diselesaikan sebelum perubahan dan dipakai ulang dari cache yang tidak pernah disentuh terowongan. Dua pengujian berbeda menghasilkan layar yang sama.

Bandingkan apa yang sebenarnya diuji setiap pengujian sebelum mengaitkan perbaikan dengan perubahan.

Memuat halaman bukan pencarian

Setiap lapisan antara aplikasi dan resolver boleh mengingat jawaban sepanjang masa hidupnya. Sistem operasi menyimpan satu, peramban menyimpan miliknya sendiri, dan aplikasi dengan koneksi berumur panjang mungkin tidak pernah menyelesaikan apa pun lagi selama sesi. Oleh karena itu, pemuatan yang berhasil setelah perubahan terowongan bisa menjadi demonstrasi memori, bukan perutean. Tidak adanya kegagalan bukan berarti adanya pencarian.

Perbedaan itu mengubah apa yang harus Anda uji berikutnya. Jika tujuannya adalah menunjukkan bahwa resolver baru menjawab, Anda memerlukan kueri yang tidak dapat dilayani dari cache yang belum Anda bersihkan.

Membaca keberhasilan yang di-cache sebagai bukti bahwa server yang sebelumnya tidak terjangkau telah pulih adalah versi kesalahan ini yang paling mahal, karena menutup insiden atas dasar premis yang salah.

Hitung cache sebelum menyimpulkan

Empat layak disebut: resolusi aplikasi itu sendiri, cache klien sistem operasi, keadaan internal peramban, dan resolver rekursif mana pun yang akhirnya dicapai kueri. Masing-masing memiliki masa hidup terpisah dan cara pembersihan terpisah. Membersihkan satu dan menguji yang lain adalah cara orang menyimpulkan bahwa pembersihan tidak melakukan apa pun. Satu perintah pembersihan tidak pernah menyelesaikan pertanyaannya.

Jawaban negatif juga di-cache. Nama yang dilaporkan hilang bisa tetap hilang setelah jaringan diperbaiki, yang terbaca sebagai terowongan rusak padahal itu TTL yang belum kedaluwarsa. Spesifikasi DNS menjelaskan bagaimana data ini seharusnya disimpan dan dipakai ulang.

Catat peristiwanya, bukan kesannya

Tuliskan mana dari tiga hal yang berubah: catatan, jalur ke resolver, atau pengaturan klien. Pengeditan catatan menyebar sesuai jadwalnya sendiri, perubahan rute berlaku saat menyambung ulang, dan pengaturan peramban hanya berlaku untuk peramban itu. Menggabungkannya menjadi satu sebelum-dan-sesudah menghasilkan garis waktu yang tidak dapat diaudit siapa pun.

Catat waktu, resolver yang digunakan, dan jawaban yang diterima, termasuk kasus ketika jawabannya negatif. Itu fakta yang dapat diperiksa orang lain.

Lakukan perbandingan dua kali dengan cara yang sama

Bersihkan cache yang hendak Anda uji, pertahankan pengamatan asli, lalu lakukan kueri dengan cara yang melewati sebanyak mungkin memori. Menyebut resolver secara eksplisit memberi tahu Anda apa yang diketahui resolver itu; itu tidak memberi tahu Anda resolver mana yang akan dipilih aplikasi.

resolvectl flush-caches
ipconfig /flushdns
dig +noall +answer internal.example @10.44.0.53
dig +short internal.example

Di Windows, pembersihan cache klien membersihkan cache klien DNS dan tidak yang lain. Itu tidak menjelaskan keadaan pribadi peramban dan tidak membersihkan server hulu, jadi pengujian yang dibangun di atasnya hanya dapat ditafsirkan secara sempit. Katakan cache mana yang Anda bersihkan setiap kali Anda melaporkan hasilnya.

Lalu uji ulang aplikasi sebenarnya dengan permintaan baru dan kebijakan resolver yang dimaksudkan aktif. Hasil yang dihasilkan di bawah kebijakan berbeda tidak ikut berpindah.

Artikel terkait