Pada kotak tanpa kepala tiada pelayar untuk dibuka dan tiada mangga untuk dilihat, jadi pemeriksaan mesti berupa permintaan yang jawapannya boleh anda baca. Ia kedengaran remeh sehingga anda perasan bahawa satu hasil alamat keluar digunakan untuk mensijilkan peranti yang menjalankan selusin perkhidmatan, dua keluarga alamat dan proksi. Penjelasan di bawah membina satu bukti terbatas pada satu masa, dalam konteks yang sama dengan tempat beban kerja benar-benar berjalan.

Tentukan apa yang mesti dibuktikan oleh ujian

Sebelum menjalankan apa-apa, tulis jangkaan dalam satu baris: aliran mana, melalui antara muka mana, ke destinasi mana, dan apa yang sepatutnya dilihat di hujung sana. Ujian tanpa jangkaan yang dinyatakan menghasilkan nombor yang tiada siapa dapat mentafsir.

Versi paling berguna menamakan titik akhir yang diluluskan yang melaporkan alamat sumber yang dilihatnya.

Titik akhir itu satu-satunya bahagian yang perlu anda sediakan. Semua yang lain ialah pemerhatian sebelah klien, dan pemerhatian sebelah klien gagal dengan cara yang menarik.

Jalankan pemerhatian dalam konteks yang betul

Shell pentadbir bukan persekitaran beban kerja. Ia boleh membawa pemboleh ubah proksi yang berbeza, jadual penghalaan yang berbeza dalam ruang nama lain, atau fail persekitaran pengguna lain. Jalankan ujian dalam konteks hos, kontena, ruang nama atau perkhidmatan yang sama dengan perkara yang anda periksa. Jika tidak, anda mengukur shell anda sendiri.

Pada hos biasa itu bermakna pengguna yang sama dan unit yang sama. Dalam persekitaran kontena itu bermakna memasuki ruang nama rangkaian kontena dan bukannya menguji dari hos. Pada perkhidmatan systemd ia boleh bermakna unit sementara dengan tetapan yang sama.

Permintaan berikutnya hanya bermakna setelah anda berada dalam konteks yang betul.

Periksa keluarga alamat secara berasingan

Minta setiap keluarga secara eksplisit, kerana permintaan IPv4 yang berjaya tidak menggunakan laluan IPv6 sama sekali. Pemilih --ipv4 dan --ipv6 memaksa pilihan, dan perbezaan antara kedua-dua hasil itu sendiri adalah maklumat.

curl --ipv4 https://probe.example/observed-source
curl --ipv6 https://probe.example/observed-source

Permintaan IPv6 yang gagal bukan bukti sekatan yang berkesan. Ia boleh bermakna titik akhir tiada alamat IPv6, DNS tidak memulangkan apa-apa yang berguna, atau peranti tiada laluan IPv6 sama sekali. Baca kegagalan itu sebelum membuat kesimpulan. Permintaan IPv6 yang berjaya melalui terowong ialah satu-satunya hasil yang membuktikan laluan IPv6 diliputi.

Catat kedua-dua jawapan bersebelahan. Salah satu daripadanya sahaja ialah separuh fakta.

Tambah empat perkara yang terlepas pandang oleh pemeriksaan keluar

Alamat keluar menjawab satu soalan. Empat lagi menentukan sama ada terowong berkelakuan seperti direka.

CheckWhat it provesWhat it does not
Included and excluded destinationsThe split behaves as designed for those flowsCoverage of any other destination
Resolver pathWhere a fresh lookup actually travelledWhere a cached answer came from
Tunnel-down behaviourThe failure policy for a new requestWhat an already open connection does
Reconnect and restartThe requirement survives the lifecycle eventBehaviour under load or partial failure

Dasar destinasi didahulukan: uji aliran yang sepatutnya disertakan dan aliran yang sepatutnya dikecualikan, apabila reka bentuk mempunyai pemisahan. Kemudian DNS, tempat anda memeriksa laluan penyelesai sebenar dan bukannya nilai yang dikonfigurasikan, kerana jawapan cache atau tetapan tercetak tidak mengatakan apa-apa tentang ke mana pertanyaan baharu pergi.

Tingkah laku kegagalan memerlukan pelan dan laluan pemulihan yang dipelihara. Perhatikan permintaan baharu semasa terowong tidak tersedia, dan ingat bahawa sambungan terbuka lama bukan bukti tentang dasar kegagalan. Kitaran hayat datang terakhir: ulangi pemerhatian selepas sambungan semula atau permulaan semula perkhidmatan jika peristiwa itu mempengaruhi keperluan.

Catat bukti, bukan keputusan

Bagi setiap hasil simpan konteks proses, destinasi, keluarga alamat, masa dan sumber yang diperhatikan. Set itu ialah bukti terbatas tentang aliran yang anda jalankan, dan ia boleh dipertahankan kerana ia menyatakan apa yang diliputinya.

Ini bukan audit rekod pengendali VPN, dan bukan sijil untuk setiap aplikasi masa depan pada peranti.

Tulis had di sebelah hasil. Ujian yang menyatakan apa yang tidak diliputinya bertahan dalam semakan, manakala yang mendakwa peranti disahkan tidak. Simpan panduan curl di sebelah pemilih keluarga yang anda gunakan, dan simpan jadual empat baris bersama hasilnya.

Artikel berkaitan