Anda mengecualikan satu aplikasi dari VPN dan unduhan yang dibutuhkannya tetap gagal atau, lebih buruk, mulai berfungsi dan sesuatu yang tidak terkait berhenti. Jendela yang terlihat belum tentu merupakan proses yang membuka setiap koneksi: aplikasi dapat menyerahkan pekerjaan kepada pembantu, layanan transfer latar belakang, atau paket yang sama sekali berbeda. Karena itu, aturan per aplikasi memerlukan model identitas platform yang sebenarnya, bukan nama berkas peluncur yang familier. Pemeriksaan di bawah mulai dari pengamatan dan kembali kepada siapa yang benar-benar membuat permintaan.

Dalam tiket ini biasanya dua hal salah bersamaan: komponen yang salah dikecualikan, dan pengecualiannya tidak pernah dipersempit setelahnya.

Temukan prosesnya, bukan jendelanya

Reproduksi operasi yang gagal dan identifikasi proses atau paket yang memiliki koneksi saat itu terjadi. Di Windows ini pertanyaan yang berbeda dari jendela mana yang memiliki fokus, karena transfer latar belakang dapat dimediasi oleh layanan yang berjalan dengan identitasnya sendiri. Di Linux dan macOS pemisahan yang sama muncul sebagai proses pembantu dan daemon sistem.

Catat tiga detail: identitas berkas eksekusi atau paket, tujuan yang dihubunginya, dan momen dalam alur kerja saat itu terjadi. Unduhan yang gagal di awal sering kali merupakan pengambilan metadata oleh komponen yang berbeda daripada unduhan yang gagal di tengah. Perbedaan itu saja biasanya cukup untuk memilih identitas yang benar sebelum Anda menyentuh aturan. Jika identitasnya ternyata layanan dan bukan aplikasi, fakta tunggal itu mengubah seluruh aturan, jadi pastikan dulu.

Jika Anda tidak dapat mengamati proses karena operasinya terlalu singkat, ulangi dengan muatan lebih besar atau tujuan yang lebih lambat. Tujuannya satu pengamatan yang dapat diulang, bukan teori tentang pembantu mana yang terlibat.

Perlakukan DNS sebagai jalurnya sendiri

Resolusi nama sistem mungkin sama sekali tidak mengikuti aplikasi yang dikecualikan, itulah sebabnya peramban yang dikecualikan masih bisa gagal pada nama host privat sementara lalu lintasnya sudah benar di luar terowongan. Peramban dikecualikan; resolver tidak.

Periksa apa yang dilakukan platform dengan DNS saat aturan per aplikasi berlaku, dan periksa secara terpisah dari permintaan HTTP. Jika resolver adalah layanan bersama, ia melayani setiap aplikasi di perangkat, sehingga pengecualian yang Anda pertimbangkan memiliki audiens jauh lebih luas daripada yang Anda uji.

Catat resolver mana yang menjawab dan melalui antarmuka apa. Satu pengamatan itu menyelesaikan sebagian besar laporan «aplikasi dikecualikan tetapi namanya tidak terurai», jadi simpan bersama tiket.

Jangan perluas pembantu bersama

Layanan bersama melakukan pekerjaan untuk beberapa aplikasi, sehingga mengecualikannya untuk memperbaiki satu alur kerja juga mengubah lalu lintas yang tidak terkait. Background Intelligent Transfer Service di Windows adalah contoh baik bentuk ini: ia infrastruktur yang dapat digunakan banyak aplikasi, dan identitasnya bukan identitas aplikasi yang meminta transfer.

Periksa model aturan yang didukung klien dan persyaratan organisasi sebelum menambahkan pengecualian itu. Tanyakan apa lagi yang menggunakan komponen itu, dan apakah aturan yang akan Anda tulis dapat dinyatakan terhadap tujuan alih-alih terhadap proses bersama.

Jika persyaratan sama sekali tidak dapat dinyatakan sebagai batas aplikasi, kebijakan berbasis tujuan atau rancangan lain yang disetujui mungkin lebih mudah dipahami dan lebih aman daripada daftar pengecualian pembantu yang terus bertambah.

Uji seluruh alur kerja, bukan langkah yang gagal

Setelah perubahan yang didukung, jalankan tugas yang dimaksud dengan permintaan baru dari awal sampai akhir. Lalu jalankan satu alur kerja lain yang menggunakan komponen bersama, karena di situlah pengabaian yang luas mengumumkan dirinya. Perbaikan yang membetulkan yang pertama dan diam-diam merusak yang kedua bukan perbaikan. Simpan kedua hasil di tiket dan sebutkan alur kerja kedua secara eksplisit, agar peninjau dapat mengulanginya.

Jaga pengujian tetap kecil dan dapat diulang: tujuan sama, akun sama, kondisi sama. Jika alur kerja kedua tidak terdokumentasi, tanyakan kepada pemiliknya apa yang menjadi dependensinya sebelum Anda memutuskan perubahan itu aman.

Tinggalkan alasan, bukan daftar nama

Dokumentasikan komponen, alur kerja yang dilayaninya, dan alasan komponen itu dikecualikan. Daftar nama pembantu tanpa tujuan yang melekat menjadi tidak terpelihara dalam dua siklus rilis, dan insinyur berikutnya menghapus entri yang salah saat membersihkannya.

Satu baris per pengecualian sudah cukup: apa yang rusak tanpanya, siapa yang memiliki alur kerja itu, dan kapan terakhir diverifikasi. Ketiga bidang itu mengubah daftar misterius menjadi kebijakan yang dapat dipertahankan seseorang.

Artikel terkait