Anda menghubungkan terowongan, membuka dasbor privat, dan nama itu mengarah ke alamat yang belum pernah Anda lihat. Atau kebalikannya terjadi: peramban tetap berfungsi sementara alat baris perintah tiba-tiba tidak mengarahkan apa pun. Kedua hasil berasal dari perubahan yang sama, dan orang biasanya menjelaskannya dengan satu kalimat tentang VPN yang "memakai DNS sendiri", yang tidak cukup tepat untuk menelusuri masalah atau memverifikasi. Ada dua pertanyaan tersembunyi dalam kalimat itu: pencarian mana yang seharusnya diambil alih profil ini, dan apakah mesin Anda benar-benar mengirimnya ke resolver yang diberikan kepadanya? Menjaga keduanya terpisah adalah seluruh metodenya, karena uji yang mencampurnya menghasilkan jawaban salah yang percaya diri di kedua arah.

Mengapa sebuah profil menyediakan resolver

Di dalam terowongan, nama di balik ujung jauh biasanya mengarah ke alamat yang hanya ada di jaringan itu. Zona privat seperti corp.internal tidak punya delegasi publik, jadi resolver yang menjawabnya harus dapat dijangkau dari dalam terowongan. Mekanisme yang sama melayani tujuan kedua: ketika pencarian sebaliknya akan keluar lewat penyedia Anda, resolver di sisi jauh menjaga kueri di dalam jalur terenkripsi. Itulah sebabnya alamat server DNS datang sebagai bagian dari kebijakan koneksi, bukan sebagai pengaturan global yang Anda pilih sekali untuk mesin.

Alamat itu sendiri tidak memutuskan apa pun. Resolver hanya bisa menjawab jika ada rute ke sana, dan kegagalan paling umum adalah resolver yang hanya dapat dijangkau selama terowongan aktif. Ketika terowongan putus dan kebijakan tetap ada, pencarian menuju alamat tanpa jalur, dan gejalanya adalah batas waktu habis, bukan galat yang bersih. Perbedaan itu penting ketika Anda membaca hasil uji berikutnya, karena batas waktu habis mengirim orang ke pengaturan transportasi yang tidak pernah terlibat.

Bandingkan kedua rancangan sebelum membandingkan jawaban

Terowongan penuh dan DNS terpisah menghasilkan harapan yang berlawanan, dan keduanya bukan kerusakan. Di bawah terowongan penuh setiap pencarian dapat berpindah ke penyedia atau ke resolver korporat, jadi nama publik yang menjawab berbeda setelah terhubung memang wajar. Di bawah DNS terpisah hanya domain yang terdaftar menuju resolver privat sementara semua yang lain tetap lokal; di Windows daftar domain berada di Name Resolution Policy Table, di macOS di domain pencocok pada pengaturan DNS, dan pada host systemd-resolved di domain perutean per-tautan.

Itulah perbandingan yang harus dilakukan lebih dulu, karena itulah yang menentukan apa yang dianggap cacat. Dengan DNS terpisah, nama publik yang menjawab dari resolver baru adalah hal yang layak diselidiki, sedangkan nama internal yang menjawab dengan benar adalah sistem yang menjalankan tugasnya. Dengan terowongan penuh, anomali adalah nama publik yang masih menjawab dari resolver penyedia Anda. Dokumentasi Microsoft tentang resolusi nama VPN menjelaskan urutan Windows untuk aturan ini, termasuk bagaimana entri kebijakan yang cocok diperiksa sebelum server milik adaptor sendiri.

Ada resolver ketiga di ruangan yang mudah dilupakan. DNS aman peramban mengarahkan nama sendiri dan dapat terus menjawab setelah terowongan mengubah kebijakan sistem operasi, jadi halaman yang termuat membuktikan resolver peramban bekerja, bukan bahwa profil diterapkan. Jika Anda hanya membandingkan apa yang ditampilkan peramban, separuh waktu Anda menguji lapisan yang salah.

Catat garis dasar dengan hanya satu variabel

Ubah terowongannya. Jangan sekaligus mengubah nama, alat, atau sufiks pencarian pada langkah yang sama. Pilih nama yang boleh Anda kueri, catat aplikasi yang Anda gunakan, dan tuliskan alamat yang kembali atau galat yang tepat. Di Windows, Get-DnsClientServerAddress -AddressFamily IPv4 mencetak server per adaptor dan Get-DnsClientNrptPolicy mencetak entri kebijakan; di Linux dengan systemd-resolved, resolvectl status menampilkan server DNS dan domain perutean per tautan; di macOS, scutil --dns mencetak urutan resolver yang benar-benar akan diikuti sistem.

Lalu hubungkan melalui kontrol normal klien dan ulangi perintah yang sama persis. Simpan keluaran pertama alih-alih mengingatnya, karena perbandingan adalah inti semuanya dan pembacaan kedua setelah pengosongan tembolok sudah menjadi pengukuran lain. Jika garis dasar diambil dengan peramban di depan dan jalannya setelah terhubung terjadi di terminal, Anda membandingkan dua resolver, bukan dua keadaan dari satu resolver.

Kueri eksplisit dan pencarian aplikasi adalah uji yang berbeda

Menanyakan satu server tertentu, dengan nslookup name 10.20.0.1 atau dig @10.20.0.1 name, membuktikan satu hal: server yang Anda sebut menjawab ketika Anda dapat menjangkaunya. Ini sepenuhnya melewati logika pemilihan, jadi tidak dapat memberi tahu apakah sistem akan memilih server itu untuk nama ini. Gunakan untuk menguji apakah resolver yang ditetapkan dapat dijangkau, dan jangan gunakan untuk menguji kebijakan.

Pencarian melalui resolver lokal memang menjalankan pemilihan. resolvectl query name menelusuri aturan domain perutean yang sama dan melaporkan protokol mana yang menjawab, Resolve-DnsName di Windows melewati tabel kebijakan dan tembolok klien, dan scutil --dns menunjukkan urutan yang akan diikuti pencarian. Jalankan kedua jenis, dan simpan keduanya di kolom terpisah pada catatan Anda. Kueri eksplisit yang berhasil di samping pencarian aplikasi yang gagal adalah masalah perutean atau pemilihan, bukan resolver yang menolak bekerja.

Tembolok berdiri di antara Anda dan jawaban. Sistem operasi, resolver stub lokal, peramban, dan tembolok negatif semuanya menyimpan hasil, jadi pencarian bisa berhasil tanpa satu paket pun meninggalkan mesin. Catat hasilnya sebelum mengosongkan apa pun: ipconfig /flushdns, resolvectl flush-caches, atau sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder di macOS. Lewati penyetelan ulang jaringan yang luas pada tahap ini, karena itu menghancurkan bukti yang masih Anda kumpulkan.

Apa arti perbedaannya

Bandingkan dua baris yang Anda catat dan klasifikasikan perubahannya sebelum menyentuh satu pengaturan pun.

Observation after connectMost likely causeNext step
Answer moves to a private address rangeExpected under split DNS or a private zoneConfirm the suffix is in the effective policy, then test the service
Lookup times out while connected, works after disconnectThe assigned resolver has no route from this machineProbe it with an explicit query, then re-read the policy
Internal name fails, public names workWrong namespace or a suffix missing from the policyQuery the fully qualified name and check the domain list per platform
Internal name returns a public addressSplit DNS not applied; a public resolver answeredCheck browser secure DNS first, then the per-link domain list

Satu baris layak ditekankan. Nama yang mengarah bukanlah layanan yang berfungsi, dan keberhasilan DNS hanya mengatakan bahwa sebuah alamat ditemukan. Itu tidak mengatakan apa pun tentang penerusan, aturan tembok api, atau apakah akun Anda boleh memakai layanan itu sama sekali, jadi akhiri dengan menguji aplikasi sebenarnya alih-alih menganggap kegagalan itu pergi sendiri.

Pulihkan garis dasar dan verifikasi

Putuskan melalui kontrol milik klien alih-alih mematikan proses, lalu baca lagi ketiga perintah yang sama. Server per tautan, entri kebijakan, dan jawaban untuk nama uji Anda seharusnya kembali ke garis dasar yang Anda tulis sebelumnya. Entri kebijakan yang tersisa setelah pemutusan bersih adalah cacat nyata yang layak dicatat, dan itulah sebabnya suntingan tangan pada berkas resolver yang dihasilkan adalah kebiasaan buruk: berkasnya ditulis ulang dan suntingan hilang, atau suntingan bertahan dan memaku resolver yang tidak lagi punya rute.

Telusuri daftar ini sekali, secara berurutan. Putuskan rancangan mana yang diterapkan profil sebelum menilai hasil apa pun. Jaga nama, alat, dan sufiks tetap selama dua jalannya. Pisahkan kueri eksplisit dari pencarian aplikasi. Baca kebijakan yang berlaku, bukan hanya jawabannya. Kosongkan tembolok terakhir, setelah perbandingan ditulis. Verifikasi dengan aplikasi sebenarnya, lalu mulai ulang sekali dan pastikan keadaan terputus masih bersih.

Artikel terkait