Satu mesin, dua tugas, satu firewall: pautan naik Wi-Fi, subnet Ethernet kecil di belakangnya, dan klien VPN desktop yang menganggap semua yang keluar dari mesin itu setempat. Aplikasi yang dilancarkan secara setempat keluar melalui laluan output setempat. Peranti di belakang stesen kerja tiba di port Ethernet dan memerlukan keputusan penghantaran. Pengecualian yang ditulis untuk laluan pertama tidak pernah melihat yang kedua, dan itulah sebabnya pelayar memintas terowong manakala peranti tidak.

Dua laluan paket, satu dasar

OriginPathDecision owner
Application on the workstationOUTPUT then egressThe VPN app's routing policy
Device behind the workstationPREROUTING then FORWARDThe workstation's own forwarding policy

Baris pertama ialah apa yang diterangkan oleh kebanyakan panduan split-tunneling. Yang kedua ialah konfigurasi penghala yang kebetulan berada pada mesin yang sama. Meleburkan keduanya dalam satu model mental ialah kesilapannya; mereka berkongsi kernel, bukan dasar. Lukis kedua-dua laluan sebelum menyunting mana-mana peraturan, dan reka bentuk selebihnya mengikut laluan mana yang hilang.

Jadual itu juga menerangkan mengapa satu mesin boleh lulus satu ujian dan gagal yang lain. Pelayar pada stesen kerja membuktikan laluan setempat; komputer riba yang dipasang pada port Ethernet membuktikan laluan penghantaran. Sahkan setiap perubahan dengan kedua-duanya, jika tidak yang kedua kekal tidak diuji walau berapa kali pelayar dimuat semula.

Apa yang sebenarnya dikelaskan oleh pengecualian aplikasi

Pengecualian setiap aplikasi biasanya berfungsi dengan menanda paket daripada proses atau pengguna, kemudian menghalakan trafik bertanda ke luar terowong. Itu struktur output setempat. Paket daripada peranti hiliran tidak mempunyai proses setempat, jadi ia tidak pernah sepadan dengan pemilih, apa pun pemilihnya.

Apa pun pemilihnya, kedua-dua senarai bukan senarai yang sama, dan itulah intinya. Panduan Mullvad untuk Linux menerangkan tanda yang digunakan oleh firewall dan dasar penghalaannya, dan contoh-contohnya menyasarkan output setempat; itu bukan penerangan penghala hiliran yang disokong. Menyalinnya menghasilkan mesin yang percaya ia mempunyai pengecualian sambil menghantar semuanya ke dalam terowong.

Tulis kontrak transit

Namakan awalan sumber hiliran dan antara muka masuk bersama-sama, kemudian hadkan awalan itu pada kemasukan. Tanpa had itu, mana-mana peranti yang mencapai port boleh menuntut alamat yang dikecualikan dan keluar melalui laluan pintas. Anggap ia sebagai dua soalan: bolehkah hos ini menggunakan pautan naik ini sama sekali, dan bolehkah mereka mencapai stesen kerja atau julat peribadi terowong? Itu kebenaran tambahan, bukan kesan sampingan pilihan pautan.

Benarkan penghantaran, kemudian tapiskannya. Get laluan Linux memerlukan penghantaran diaktifkan, peraturan yang membenarkan trafik yang dimaksudkan pada kedua-dua arah, dan sama ada laluan balik huluan atau terjemahan sumber yang sengaja dihadkan. NAT sahaja tidak memilih pautan naik dan tidak memberi laluan melalui penapis; ia hanya menulis semula alamat selepas keputusan itu.

Pengelasan untuk transit mesti berlaku sebelum keputusan laluan penghantaran, iaitu peringkat prerouting dan bukan output. Peraturan yang diletakkan selepas keputusan masih boleh mengubah paket, tetapi tidak boleh mengubah ke mana paket itu sudah dihantar.

Tanda milik aplikasi yang memilikinya

Nilai tanda, nombor jadual dan keutamaan rantai ialah sebahagian daripada dasar aplikasi VPN, bukan pemalar abadi. Rangkaian yang bergantung pada penyisipan peraturan ke dalam jadual yang dijana semula oleh program lain akan rosak pada kemas kini seterusnya, biasanya semasa penyambungan semula dan bukan pada masa yang sesuai.

Menambah rantai asas kedua dengan keputusan accept tidak semestinya mengatasi drop rantai kemudian. Rantai asas mempunyai cangkuk dan keutamaan, dan keputusan pertama dalam susunan menang; accept dalam satu rantai tidak membatalkan drop yang dicapai rantai lain lebih dahulu. Lihat keseluruhan set peraturan dan susunan dasar penghalaan, bukan satu pembilang yang bertambah. Pembilang membuktikan peraturan berjalan, tidak pernah membuktikan keputusannya yang digunakan.

Satukan, atau pindahkan subnet

Kedua-dua reka bentuk berbeza pada siapa yang memiliki laluan pintas. Reka bentuk bersepadu mengekalkan satu mesin dan satu dasar, dengan kos bergantung pada kitaran hayat jadual aplikasi VPN dan pada set tanda yang dokumentasinya mungkin berubah. Penghala khusus untuk rangkaian hiliran menghapuskan kebergantungan itu sepenuhnya: subnet mempunyai pautan naiknya sendiri, dan stesen kerja kekal sebagai klien tanpa peranan penghantaran.

Pilih yang kedua apabila rangkaian hiliran mesti terus berfungsi melalui kemas kini VPN, atau apabila tiada siapa boleh menguji dasar bersepadu selepas setiap keluaran. Pilih yang pertama hanya apabila integrasi didokumenkan dan ada orang yang bertanggungjawab.

Sahkan sempadan dalam empat keadaan: bersambung, menyambung semula, disekat dengan sengaja dan dihentikan. Periksa penyelesaian nama dan kedua-dua keluarga alamat pada setiap satu, kerana laluan pintas yang membocorkan DNS bukan pengecualian yang anda reka. Ujian harus membuktikan sempadan yang tepat, bukan sekadar satu halaman dimuatkan.

Artikel berkaitan