VPN Mac menyambung kembali sendiri tepat setelah Anda menekan Putuskan
Pemantau yang menganggap setiap status terputus sebagai gangguan akan bertengkar dengan tombol Putuskan. Pisahkan niat dan status yang diamati, lalu batasi percobaan ulang.
Menekan Putuskan memang berhasil, dan sepuluh detik kemudian terowongan kembali lagi. Lingkaran itu jarang merupakan kesalahan klien VPN; itu adalah skrip pemulihan yang selalu hanya menanyakan satu pertanyaan, «apakah sedang mati?», dan menjawabnya dengan menyambung. Begitu Anda memisahkan pertanyaan yang dijawab pengguna dari pertanyaan yang dilaporkan sistem, perbaikannya menjadi sedikit status alih-alih tidur yang lebih lama.
Dua pertanyaan, bukan satu
Haruskah profil ini tersambung sekarang, dan apa yang dilaporkan sistem saat ini? Itu pertanyaan berbeda dengan pemilik berbeda, dan kebijakan pemulihan memerlukan keduanya sebelum bertindak. Niat adalah sesuatu yang diputuskan dan diingat alat Anda. Status yang diamati adalah sesuatu yang diberitahukan platform kepada Anda.
| Intent | What you observe | What to do |
|---|---|---|
| Wanted | Dropped unexpectedly | Allow one supported recovery attempt |
| Paused by the user | Disconnected | Do nothing until intent changes |
| Wanted | Already connecting | Wait instead of starting a rival attempt |
| Wanted | Authentication needs a person | Prompt, then stop replaying credentials |
Bacalah baris-baris itu sebagai kebijakan, bukan daftar kasus. Baris kedua adalah yang paling sering dilewatkan skrip, dan itulah satu-satunya baris yang membedakan pemantau dari mesin yang bersikeras benar.
Status yang diamati bukan preferensi
Model status Network Extension Apple melaporkan status connecting, connected, disconnecting, disconnected, dan recovery. Kelimanya menggambarkan koneksi. Tidak satu pun mengatakan «pengguna meminta profil ini tetap dijeda», karena itu sama sekali bukan status koneksi. Klien yang tidak dibangun di atas kerangka itu mengekspos kontrol dan panggilan status mereka sendiri yang didukung, dan mereka menarik garis yang sama dalam kosakata mereka sendiri.
Konsekuensinya, status terputus tidak pernah dapat ditafsirkan sendiri. Itu berarti salah satu dari setidaknya tiga hal: terowongan jatuh, pengguna menghentikannya, atau sistem sedang di antara percobaan. Hanya catatan niat Anda sendiri yang dapat membedakannya. Tuliskan catatan itu, pertahankan di antara mulai ulang jika harus bertahan dari reboot, dan perbarui pada saat pengguna bertindak alih-alih menyimpulkannya nanti dari baris log.
scutil --nc list
scutil --nc status "Office VPN"
Siapa lagi yang boleh memulai profil ini
Jeda yang dijanjikan helper Anda hanya sekuat pemilik lain dari profil yang sama. Aturan On Demand, konfigurasi terkelola, atau klien kedua semuanya dapat meminta koneksi, dan helper Anda akan tampak rusak sementara ia berperilaku persis seperti yang tertulis.
Temukan setiap mekanisme yang dapat memulai profil sebelum Anda berjanji menghormati jeda, dan catat mana yang menang. Ketika layanan terkelola sengaja menahan opsi jeda pribadi, itu keputusan administrator tentang kebijakan, bukan celah yang harus diisi skrip dengan melawan manajemen.
Buat percobaan ulang membosankan
Batasi jumlah percobaan dan buat masing-masing menanggapi sesuatu yang berubah: jaringan kembali, gateway menjawab, prompt kredensial selesai. Gateway yang tidak tersedia, identitas kedaluwarsa, dan faktor kedua yang ditolak memerlukan tiga respons berbeda, dan loop ketat memberi ketiganya respons yang sama.
Perhatikan apa yang sebenarnya dihasilkan percobaan ulang cepat di layar. Dialog berulang yang ditutup pengguna lebih buruk daripada satu pesan kegagalan yang jelas, dan itu melatih orang mengklik prompt tanpa membacanya.
Jeda dan kebijakan lalu lintas adalah janji terpisah
Terowongan yang dijeda pengguna sering membiarkan lalu lintas diblokir dengan sengaja, dan itulah inti kebijakan bergaya kill switch. Artinya Jeda harus menjanjikan tepat satu hal: pemulihan berhenti. Jeda tidak boleh diam-diam mengubah apa yang diizinkan jaringan.
Putuskan perilaku lalu lintas secara terpisah, dokumentasikan di samping kontrol Jeda, dan jaga konsistensinya baik terowongan dijeda, gagal, maupun tidak ada. Jika tidak, pengguna belajar bahwa menekan Putuskan melakukan sesuatu yang tak terduga, dan tiket dukungan berikutnya tentang jaringan yang «kadang berhenti berfungsi» tanpa alasan yang terlihat.