Status VPN di Mac: periksa profil, sumber atau aliran
Satu nilai boolean tidak boleh menjawab tiga soalan berbeza. Pilih subjek dahulu, kemudian gunakan antara muka yang benar-benar melaporkannya, dan simpan sebab kegagalan.
Seseorang bertanya sama ada VPN aktif, dan tiga orang berbeza memaksudkan tiga perkara berbeza. Operator memaksudkan profil Office telah selesai pengesahan. Penjadual memaksudkan API peribadi akan menjawab. Semakan keselamatan memaksudkan permintaan khusus ini keluar melalui laluan terlindung. Skrip yang grep jadual laluan untuk nama antara muka tidak menjawab mana-mana daripadanya dengan boleh dipercayai.
Jadi senarai semak bermula sebelum sebarang arahan dijalankan: namakan subjek semakan. Segala-galanya selepas itu ialah memilih antara muka yang benar-benar boleh melaporkannya.
Namakan subjek sebelum arahan
Tulis soalan sebagai predikat dengan subjek. «Profil Office bersambung» boleh diuji dan mempunyai pemilik yang boleh menjawabnya. «Bolehkah kerja ini mencapai API dalaman» ialah predikat kedua dengan mod kegagalan berbeza. «Adakah permintaan ini menggunakan laluan terlindung» ialah yang ketiga, dan ia satu-satunya yang bercakap tentang satu aliran dan bukan seluruh mesin.
Mencampurkannya menghasilkan automasi yang berbohong dengan yakin. Kerja yang memeriksa status profil dan kemudian menganggap API sudah sedia akan memanggil seseorang pada lapisan yang salah, dan kerja yang ping API lalu menyebutnya bukti terowong tidak dapat membezakan VPN yang berfungsi daripada komputer riba yang kebetulan berada di rangkaian pejabat.
Satu profil: tanya perkara yang memilikinya
Untuk perkhidmatan Mac asli, kawalan sambungan rangkaian dalam scutil melaporkan perkara ini dengan tepat. Ia membaca status konfigurasi bernama dan bukannya membuat kesimpulan daripada antara muka.
scutil --nc list
scutil --nc status "Office VPN"
Nama profil dalam arahan itu mesti yang sebenar daripada output senarai, bukan tekaan. Ini laluan baca sahaja untuk perkhidmatan asli, dan ia bukan jaminan bahawa klien pihak ketiga akan muncul di sana sama sekali; penyedia yang mengurus terowongnya sendiri memerlukan antara muka statusnya sendiri yang disokong. Periksa senarai sebelum menulis panggilan status, supaya nama yang tiada gagal secara kelihatan dan bukannya senyap tidak sepadan dengan apa-apa.
Di dalam aplikasi Network Extension, baca status daripada objek pengurus dan sambungan dan bukan daripada sistem. Berhati-hati dengan skop di sini: memuatkan konfigurasi tersimpan hanya mengembalikan yang dicipta oleh aplikasi pemanggil, jadi hasil kosong bermaksud «tiada satu pun milik saya», bukan «tiada VPN pada Mac ini». Bezakan pertanyaan yang gagal daripada status terputus yang disahkan, dan layan status peralihan sebagai hasil tersendiri dan bukannya mencuba semula sambungan yang sudah pun naik.
Satu kerja: kesediaan ialah predikat berasingan
Jika soalannya sama ada kerja boleh diteruskan, uji kebergantungan sebenar kerja itu selepas pemilik sambungan melaporkan status yang dimaksudkan. Semakan kesediaan terbatas terhadap sumber peribadi ialah bentuk yang betul: ia membuktikan apa yang diperlukan oleh kerja itu dan tidak lebih.
Ia masih tidak boleh membuktikan bahawa setiap permintaan pada mesin menggunakan terowong, dan ia tidak sepatutnya dilaporkan seolah-olah boleh. Begitu juga, sumber yang menjawab melalui rangkaian biasa bukan bukti VPN, sebab itulah kedua-dua semakan kekal berasingan walaupun kedua-duanya berjaya.
Apabila kerja benar-benar memerlukan laluan terlindung, keperluan itu memerlukan reka bentuk penguatkuasaan penggunaan itu sendiri: penghalaan, pengecualian terowong berpecah, peraturan tembok api atau keperluan pada peringkat aplikasi. Ketersediaan titik akhir ialah fakta tentang pelayan. Penguatkuasaan ialah fakta tentang konfigurasi klien, dan satu tidak membuktikan yang lain.
Satu aliran: periksa laluan yang dipilih
Untuk satu aliran, lihat destinasi, keluarga alamat dan konteks sumber dengan diagnostik penghalaan yang melaporkan laluan yang dipilih untuk destinasi khusus itu. Output itu menamakan antara muka dan alamat sumber yang sebenarnya digunakan, yang merupakan dakwaan jauh lebih kukuh daripada entri laluan lalai.
Semakan pelayar yang luas menjawab soalan yang sama sekali berbeza. Hasil IP awam menerangkan bagaimana satu permintaan kelihatan dari sudut pandangan satu pelayan, dan ia tidak mengatakan apa-apa tentang DNS peribadi, aplikasi yang dikecualikan atau konteks rangkaian kedua yang digunakan oleh proses lain.
Kembalikan hasil yang boleh digunakan oleh pemanggil
Pilih bentuk pemulangan yang sepadan dengan predikat: status profil bernama, keputusan kesediaan sumber atau tidak diketahui secara eksplisit dengan bukti yang menghasilkannya. Simpan identiti konfigurasi dan sebab kegagalan di samping keputusan itu.
Tabiat terakhir itulah yang membezakan automasi yang membantu daripada automasi yang menyembunyikan masalah. «Office VPN: terputus, percubaan terakhir gagal semasa pengesahan» memberitahu operator ke mana perlu dilihat. «VPN mati» mengajak pemasangan semula, dan «antara muka ditemui» mengajak rasa selamat yang palsu.
Rujukan Network Extension tentang memuatkan konfigurasi terowong tersimpan ialah tempat untuk mengesahkan skop aplikasi pemanggil sebelum membina apa-apa di atasnya.