NXDOMAIN melalui VPN bukan bermakna tunnel terputus
Jawapan negatif bermaksud penyelesai telah menjawab, bukan paket berhenti. Baca kod, penyelesai dan jawapan cache sebelum membina semula apa-apa.
Menggoda untuk membaca satu carian yang gagal sebagai bukti bahawa tunnel telah runtuh, terutamanya apabila nama itu berfungsi sepuluh minit lebih awal. Jawapannya berkata sebaliknya. NXDOMAIN ialah transaksi DNS yang selesai di mana penyelesai menyatakan bahawa nama yang ditanya tidak wujud; tunnel yang rosak biasanya menghasilkan kesenyapan, tamat masa atau cubaan penyelesaian terhadap pelayan yang salah. Versi hujah tanpa wireshark ialah satu pertanyaan, satu penjawab dan satu kod jawapan, dan tiga serangkai itu wajar direkodkan sebelum sebarang perubahan konfigurasi.
Apa yang sebenarnya dibuktikan oleh jawapan
DNS memisahkan hasil yang sering digabungkan oleh klien menjadi satu kegagalan. Nama yang tidak wujud menghasilkan jawapan negatif dengan kod NXDOMAIN, manakala nama yang wujud tetapi tiada rekod jenis yang diminta menghasilkan jawapan berjaya dengan bahagian jawapan kosong. Kedua-duanya kelihatan tidak berguna kepada aplikasi, dan hanya satu daripadanya bermaksud nama itu salah.
Perbezaan itu menentukan di mana pembaikan patut berlaku. Rekod AAAA yang hilang pada hos yang mempunyai rekod A bukanlah hos yang hilang, dan mengeluarkan semula sijil atau membina semula tunnel untuk mengejarnya membazirkan satu-satunya petunjuk yang ada. Perbezaan itu juga menetapkan bentuk susulan: masalah penamaan dibaiki dalam zon, dan masalah jenis dibaiki dengan meminta rekod yang betul atau dengan menerima bahawa keluarga alamat memang tiada.
Mitos: nama peribadi yang hilang bermakna tunnel gagal
Mitos itu bertahan kerana kedua-dua peristiwa begitu kerap datang bersama. Klien menyambung ke VPN, sistem pengendalian mengekalkan penyelesai yang sudah dipercayainya, dan nama dalaman yang kini diperlukan ditanya kepada pelayan yang tidak pernah mendengar tentang zon peribadi. Pelayan itu menjawab dengan jujur dan negatif. Tunnel sedang membawa paket; jawapannya hanya tentang ruang nama yang tidak dilayani oleh penjawab.
Susunan ufuk terbelah menjadikan ini rutin: nama zon yang sama wujud secara awam dan dalaman dengan kandungan berbeza, dan hanya penyelesai dalaman mengetahui rekod peribadi. Oleh itu, mendapat jawapan negatif yang kelihatan berwibawa adalah bukti tentang penyelesai mana yang menjawab, bukan bukti tentang keadaan antara muka.
Dua butiran konfigurasi menentukan hasilnya. Tunnel mesti menolak atau memilih penyelesai dalaman, dan klien mesti menggunakan pilihan itu pada nama yang dicari. Peraturan setiap domain yang menamakan akhiran sedikit berbeza daripada rekod yang anda taip akan menghantar pertanyaan ke laluan awam, dan jawapannya akan betul tetapi tidak berguna.
Tanya penyelesai yang betul dengan nama yang betul
Rekod penjawab sebelum merekod keputusan. Carian yang tidak menunjukkan pelayan mana yang menjawab tidak boleh membezakan masalah dasar daripada masalah ruang nama, dan kedua-duanya mempunyai pembaikan yang tidak berkaitan.
resolvectl query vpn.internal.example
resolvectl status | grep -A3 'DNS Servers'
dig +search app.intranet.example A
dig @10.8.0.1 app.intranet.example A
Dua baris pertama menunjukkan apa yang diputuskan oleh penyelesai tempatan dan siapa yang akan ditanya. Carian +search menghasilkan semula apa yang dilakukan oleh aplikasi apabila menambah akhiran carian, yang selalunya merupakan pertanyaan sebenar dan bukan yang ditaip ke dalam alat diagnostik. Baris terakhir bertanya kepada pelayan dalaman secara langsung, memintas dasar klien; jika itu berjaya sedangkan carian biasa gagal, zon itu betul dan penghalaan pertanyaan tidak.
Cache negatif menjelaskan kelewatan selepas pembaikan
Jawapan negatif dicache mengikut reka bentuk, dan RFC 2308 menerangkan bagaimana jangka hayat cache negatif diperoleh daripada rekod autoriti zon. Oleh itu, membetulkan rekod atau peraturan penyelesai tidak menjamin perubahan serta-merta pada klien, dan mencuba semula carian yang terus mengembalikan jawapan cache tidak membuktikan apa-apa yang baharu. Hanya penjawab berbeza, nama berbeza atau cache yang dikosongkan menghasilkan bukti segar.
Kosongkan cache tempatan, kemudian ulangi pertanyaan yang sama terhadap penjawab yang sama. Pada sistem yang menggunakan perkhidmatan penyelesai tempatan itu satu arahan; pada yang lain ia adalah permulaan semula perkhidmatan atau utiliti platform, dan alat khusus itu kurang penting daripada mengulangi ujian yang serupa selepas itu.
Pisahkan nama daripada laluan
Sebaik sahaja nama diselesaikan kepada alamat peribadi yang dijangka, DNS selesai sebagai topik dan laluan aplikasi menjadi soalan seterusnya. Hos yang menjawab carian tetapi menolak sambungan mempunyai masalah lain, dan terus melaraskan penyelesai selepas jawapan yang betul ialah cara sesuatu insiden memperoleh tiga perubahan yang tidak berkaitan. Bandingkan alamat yang diselesaikan dengan alamat yang sebenarnya didengari oleh perkhidmatan sebelum menganggap kedua-duanya sepadan.
Simpan transkrip: pertanyaan, penjawab, kod dan alamat yang diselesaikan. Rekod itu juga yang menjadikan laporan kemudian boleh disahkan, dan itulah perbezaan antara diagnosis dan cerita tentang tunnel yang kelihatan perlahan.