Dua VPN di satu ponsel: pilih susunannya, bukan jumlah aplikasinya
Perpindahan, pemisahan profil, dan rantai bersarang adalah tiga rancangan berbeda. Pilih berdasarkan apa yang aplikasi butuhkan pada saat yang sama, lalu periksa MTU dan jalurnya.
Memakai dua VPN bukan satu permintaan. Itu bisa berarti menjangkau dua organisasi satu demi satu, memisahkan aplikasi kerja dan pribadi, atau menjalankan satu terowongan di dalam yang lain. Android menangani ketiga kasus itu dengan cara yang sangat berbeda, dan jumlah aplikasi VPN yang terpasang di ponsel bukanlah arsitekturnya. Pertanyaan yang memisahkan ketiganya sederhana: haruskah dua jalur ada pada saat yang sama untuk aplikasi yang sama?
Tiga susunan, satu pertanyaan
Jika jawabannya tidak, karena kedua jaringan dipakai pada waktu berbeda, Anda menginginkan perpindahan yang disengaja. Jika jawabannya tidak karena aplikasinya sendiri terpisah, Anda menginginkan pemisahan profil, di mana setiap aplikasi berada dalam konteks yang memiliki terowongannya. Jika jawabannya ya, dan satu jalur harus secara fisik membawa jalur lain, Anda menginginkan rantai, dan itulah satu-satunya dari ketiganya yang urutannya menjadi bagian dari rancangan.
Segala hal lainnya mengikuti pilihan itu. Perpindahan memiliki jendela transisi, pemisahan memiliki batas kebijakan, dan rantai memiliki biaya tambahan serta biaya ketergantungan. Memilih yang salah tidak gagal dengan bersih; hasilnya ponsel yang tampak tersambung dan aplikasi yang tidak bisa menjangkau apa pun.
Berpindah di dalam satu konteks pengguna
Android mengizinkan satu layanan VPN aktif per pengguna. Menjalankan aplikasi VPN kedua dalam konteks yang sama menggantikan yang pertama atau ditolak mentah-mentah; ia tidak pernah menyusun kedua kumpulan rute itu, dan jelas tidak menumpuk enkripsinya. Dalam satu pengguna, dua terowongan adalah urutan, bukan jumlah.
Itu bisa dilakukan bila aksesnya memang berurutan. Beri nama profil sehingga yang aktif jelas, selesaikan semua yang sensitif sebelum berpindah, dan perkirakan jendela singkat saat tidak ada jalur yang sepenuhnya terbentuk. Menutup tab peramban tidak sama dengan mengakhiri sesi: tab itu bisa menyimpan status akunnya dan sekadar mengirim permintaan berikutnya lewat jaringan yang baru dipilih, dan itulah tepatnya kebocoran yang orang sadari setelahnya.
Apa yang tidak bisa diberikan perpindahan adalah mesin yang berada di kedua jaringan sekaligus. Jika sebuah aplikasi membutuhkan alamat privat dari masing-masing sisi, tidak ada kedisiplinan klien yang bisa menghasilkannya.
Memisahkan menurut profil
Profil kerja terkelola adalah pengguna terpisah dengan aplikasinya sendiri, penyimpanan kuncinya, dan kebijakan jaringannya. Klien surel kerja bisa memakai terowongan organisasi sementara peramban pribadi memakai yang pribadi, dan keduanya bisa tersambung pada waktu yang sama karena tidak berada di konteks yang sama dan bersaing untuk slot itu.
Pemisahan juga merupakan batasnya. Peramban pribadi tidak meminjam terowongan kerja, tidak melihat akhiran DNS kerja, dan tidak mencapai jaringan kerja hanya karena kedua layanan tampak tersambung. Ketika seseorang melaporkan bahwa sebuah tautan tidak terbuka, periksa salinan aplikasi mana yang menanganinya dan profil mana yang memiliki akun itu sebelum menyentuh salah satu dari dua VPN tersebut.
Perlakukan batas itu sebagai tetap. Membuat profil kedua atau menghapus profil kerja untuk menghindari keputusan perutean pemberi kerja merusak justru pemisahan yang membuat susunan itu berhasil, dan pada perangkat terkelola hal itu biasanya pelanggaran kebijakan, bukan penyesuaian konfigurasi.
Rantai, tempat urutan adalah rancangannya
Rantai adalah susunan yang biasanya dimaksud orang ketika mereka mengatakan keduanya sekaligus: terowongan ponsel berjalan di dalam terowongan router. Itu bisa berhasil, dan kendalanya spesifik. Penyedia luar harus mengizinkan jalur yang berfungsi ke titik akhir VPN ponsel, yang bagi protokol berbasis UDP berarti layanan luar tidak boleh memblokir atau membatasi lalu lintas itu.
Pahami siapa melihat apa. Penyedia luar melihat koneksi menuju titik akhir dalam. Penyedia dalam menerima lalu lintas ponsel dari pintu keluar luar dan meneruskannya. Tujuan akhir biasanya melihat pintu keluar layanan dalam, dan tidak ada penyedia di sepanjang rantai yang buta; akun aplikasi tetap mengidentifikasi pengguna terlepas dari jalurnya.
Perkirakan biaya praktis. Setiap lapisan menambah enkapsulasi, sehingga MTU efektif turun dan nilai yang tadinya baik untuk satu terowongan kini terfragmentasi atau macet sampai MTU terowongan dalam diatur secara konservatif. Dua lapisan juga berarti dua ketergantungan kegagalan dan dua kumpulan pesan penjaga hidup, dan terowongan dalam berbasis TCP di atas tautan luar yang lossy bisa macet dengan cara yang tampak seperti server mati.
Yang paling penting, rantai tidak menggabungkan dua jaringan privat. Rute, prefiks yang tumpang tindih, resolusi DNS, dan aturan akses tetap menjadi keputusan terpisah, dan router yang membawa satu VPN sementara ponsel membawa yang lain tidak memberi ponsel kedua ruang alamat itu.
Periksa rancangannya sebelum menelusuri kesalahannya
Tuliskan susunannya dalam satu kalimat dan ujilah terhadap aplikasi yang gagal. Akses berurutan seharusnya menunjukkan satu terowongan pada satu waktu; pemisahan profil seharusnya menunjukkan setiap aplikasi di penggunanya sendiri; rantai seharusnya menunjukkan terowongan dalam terbentuk di atas antarmuka luar, bukan antarmuka fisik.
adb shell ip -br addr
adb shell ip route get 10.20.0.8
adb shell dumpsys connectivity | grep -i vpnJika pencarian rute menyebut antarmuka fisik sementara sebuah aplikasi mengharapkan terowongan, rancangan dan konteks aplikasi tidak sepakat, dan tidak ada aplikasi VPN tambahan yang akan mendamaikannya. Dokumentasi profil terkelola mencakup aturan pemisahan jika Anda memerlukan detail kebijakan, bukan detail perutean.