Pada kotak tanpa antarmuka tidak ada peramban untuk dibuka dan tidak ada gembok untuk dilihat, jadi pemeriksaan harus berupa permintaan yang jawabannya dapat Anda baca. Itu terdengar sepele sampai Anda menyadari bahwa satu hasil alamat keluar dipakai untuk mensertifikasi perangkat yang menjalankan selusin layanan, dua keluarga alamat, dan proksi. Uraian berikut membangun satu bukti terbatas setiap kali, dalam konteks yang sama dengan tempat beban kerja benar-benar berjalan.

Putuskan apa yang harus dibuktikan pengujian

Sebelum menjalankan apa pun, tulis ekspektasi dalam satu baris: alur mana, melalui antarmuka mana, ke tujuan mana, dan apa yang seharusnya terlihat di ujung sana. Pengujian tanpa ekspektasi yang dinyatakan menghasilkan angka yang tidak dapat ditafsirkan siapa pun.

Versi paling berguna menyebut titik akhir yang disetujui yang melaporkan alamat sumber yang dilihatnya.

Titik akhir itu satu-satunya bagian yang harus Anda siapkan. Semua sisanya adalah pengamatan sisi klien, dan pengamatan sisi klien gagal dengan cara yang menarik.

Jalankan pengamatan dalam konteks yang tepat

Shell administrator bukanlah lingkungan beban kerja. Shell itu dapat membawa variabel proksi lain, tabel perutean lain di ruang nama lain, atau berkas lingkungan pengguna lain. Jalankan pengujian di konteks hos, kontainer, ruang nama, atau layanan yang sama dengan yang Anda periksa. Jika tidak, Anda mengukur shell Anda sendiri.

Pada hos biasa itu berarti pengguna yang sama dan unit yang sama. Di lingkungan kontainer itu berarti masuk ke ruang nama jaringan kontainer alih-alih menguji dari hos. Pada layanan systemd itu bisa berarti unit sementara dengan pengaturan yang sama.

Permintaan berikutnya hanya bermakna setelah Anda berada di konteks yang tepat.

Periksa keluarga alamat secara terpisah

Minta setiap keluarga secara eksplisit, karena permintaan IPv4 yang berhasil sama sekali tidak melatih jalur IPv6. Pemilih --ipv4 dan --ipv6 memaksa pilihan, dan perbedaan antara kedua hasil itu sendiri adalah informasi.

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

Permintaan IPv6 yang gagal bukan bukti pemblokiran yang efektif. Itu bisa berarti titik akhir tidak memiliki alamat IPv6, DNS tidak mengembalikan apa pun yang berguna, atau perangkat tidak memiliki rute IPv6 sama sekali. Baca kegagalan itu sebelum menarik kesimpulan. Permintaan IPv6 yang berhasil melalui terowongan adalah satu-satunya hasil yang membuktikan jalur IPv6 tercakup.

Catat kedua jawaban berdampingan. Salah satunya saja adalah separuh fakta.

Tambahkan empat hal yang dilewatkan pemeriksaan keluar

Alamat keluar menjawab satu pertanyaan. Empat lagi menentukan apakah terowongan berperilaku sesuai desain.

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

Kebijakan tujuan didahulukan: uji alur yang seharusnya disertakan dan alur yang seharusnya dikecualikan, bila desain memiliki pemisahan. Lalu DNS, tempat Anda memeriksa jalur penyelesai yang sebenarnya alih-alih nilai yang dikonfigurasi, karena jawaban yang di-cache atau pengaturan yang tercetak tidak mengatakan apa pun tentang ke mana kueri baru pergi.

Perilaku kegagalan memerlukan rencana dan jalur pemulihan yang dipertahankan. Amati permintaan baru saat terowongan tidak tersedia, dan ingat bahwa koneksi terbuka lama bukan bukti tentang kebijakan kegagalan. Siklus hidup datang terakhir: ulangi pengamatan setelah penyambungan ulang atau mulai ulang layanan jika peristiwa itu memengaruhi persyaratan.

Catat bukti, bukan putusan

Untuk setiap hasil simpan konteks proses, tujuan, keluarga alamat, waktu, dan sumber yang diamati. Himpunan itu adalah bukti terbatas tentang alur yang Anda jalankan, dan dapat dipertahankan justru karena menyatakan apa yang dicakupnya.

Ini bukan audit catatan operator VPN, dan bukan sertifikat untuk setiap aplikasi mendatang di perangkat.

Tulis batasannya di samping hasil. Pengujian yang menyatakan apa yang tidak dicakupnya bertahan dalam peninjauan, sedangkan yang mengklaim perangkat terverifikasi tidak. Simpan panduan curl di samping pemilih keluarga yang Anda gunakan, dan simpan tabel empat baris bersama hasilnya.

Artikel terkait