Penghalaan berasaskan akaun sesuai apabila setiap soket IPv4 milik seorang pengguna Linux perlu keluar melalui terowong sedia ada, dan tidak sesuai apabila anda memerlukan pengasingan pada peringkat program. Ia memilih mengikut UID, jadi apa-apa yang berjalan di bawah akaun itu berada dalam skop, termasuk kerja kelompok yang anda lupa. Selesaikan soalan itu sebelum anda menyentuh satu ip rule pun.

Contoh di bawah menganggap akaun pelayar khusus pada UID 1500, peranti terowong tun-office yang memegang alamat tempatan 10.80.0.11, dan VPN yang membenarkan destinasi berkenaan. Daemon itu sendiri berjalan di luar UID tersebut.

Tiga syarat yang memilih mekanisme

Pilih peraturan UID apabila identiti yang melakukan kerja ialah akaun itu, apabila memindahkan seluruh trafiknya boleh diterima, dan apabila namespace akan lebih berat daripada yang patut diterima oleh tugas itu. Pilih namespace rangkaian apabila beban kerja memerlukan antara muka, penyelesai dan jadual penghalaan sendiri. Pilih proksi atau pengikatan setiap proses apabila tepat satu aplikasi perlu dipindahkan sementara baki sesi kekal di laluan tempatan. Menulis ketiga-tiganya menghalang peraturan yang diam-diam meliputi lebih daripada yang dimaksudkan.

Kesilapan yang perlu dielakkan ialah menganggap pelancar menentukan pemiliknya. Pelayar yang menerima URL daripada sesi pengguna lain tidak mencipta soket di bawah UID 1500, dan tiada peraturan akan memindahkan trafik yang dihasilkannya.

Jadual, peraturan dan pengawal

Selepas memeriksa peraturan sedia ada dan memilih nombor jadual serta keutamaan yang belum digunakan, susunannya pendek: laluan lalai dalam jadual khusus yang membawa alamat sumber terowong, peraturan yang menghantar carian akaun ke jadual itu, dan peraturan penamat yang menyekat sandaran. Ditulis, itu ialah penggantian laluan idempoten, ip -4 route replace default dev tun-office src 10.80.0.11 table 51820, diikuti oleh ip -4 rule add priority 12100 uidrange 1500-1500 lookup 51820.

Pengawalnya ialah ip -4 rule add priority 12101 uidrange 1500-1500 unreachable, dan ia lebih penting daripada yang disarankan panjangnya. Tanpanya, laluan yang hilang dalam jadual 51820 jatuh ke pautan atas biasa dan akaun itu diam-diam membocorkan trafik yang sepatutnya ditangkap oleh dasar. Dengannya, kegagalan yang sama menjadi tamat masa, iaitu penyekatan dan bukan sandaran.

Kekalkan peraturan alamat tempatan biasa di hadapan peraturan ini, dan tentukan secara sedar sama ada pengecualian LAN atau pengurusan berada sebelum jadual yang dipilih. Laluan lalai yang ditemui di sana tidak bertanya kepada main kemudian untuk laluan LAN yang lebih khusus, yang mengejutkan mereka yang menjangka padanan awalan terpanjang terpakai merentas jadual. Tulis senarai pengecualian yang dimaksudkan dalam nota perubahan selagi alasannya masih segar.

Apa yang ditinggalkan oleh penghalaan UID: DNS

Daemon penyelesai membuka soket hulunya di bawah UIDnya sendiri, jadi memilih 1500 tidak memindahkan pertanyaan itu ke jadual 51820. Integrasi DNS ialah keputusan berasingan: halakan akaun ke penyelesai yang boleh dicapai melalui terowong, atau terima bahawa penyelesaian nama mengikut laluan hos manakala trafik tidak.

Pertanyaan loopback ke stub tempatan bukan bukti bahawa pertanyaan hulu menggunakan laluan pelayar, dan bukan juga pemuatan halaman yang berjaya daripada cache.

IPv6 memerlukan ayatnya sendiri dalam reka bentuk

Peraturan di atas hanya meliputi IPv4. Jika keperluannya ialah terowong IPv4 tanpa IPv6 langsung daripada akaun ini, tambah peraturan penamat yang telah disemak seperti ip -6 rule add priority 12101 uidrange 1500-1500 unreachable, kemudian periksa peraturan IPv6 terdahulu serta pengecualian loopback yang anda mahu kekalkan.

Menyekat IPv6 langsung bukanlah terowong tindanan dua; ia adalah sempadan. Memanggilnya terowong akan mengelirukan orang seterusnya yang membaca dasar itu, dan kekeliruan itu akan muncul sebagai tiket meja bantuan tentang laman IPv6 yang rosak.

Sahkan dengan akaun sebenar, kemudian miliki kitaran hayatnya

Bandingkan carian: ip -4 route get 198.51.100.25 uid 1500 terhadap destinasi yang sama dengan UID biasa. Kemudian buat permintaan yang dibenarkan di bawah akaun khusus itu dan periksa alamat sumber yang dilihat oleh hujung jauh. Alamat sumber pilihan bukan source NAT, dan ia tidak akan mengatasi aplikasi yang mengikat sesuatu yang lain. Jika kedua-dua carian mengembalikan laluan yang sama, peraturan itu tidak melakukan apa yang anda fikirkan.

Kekalkan jadual, peraturan dan jangka hayat laluan terowong di bawah satu pemilik, uji penyambungan semula dan kehilangan terowong, dan semasa menarik balik dasar itu hapuskan hanya entri tepatnya. Namespace masih tersedia jika antara muka berasingan dan keadaan berasingan ialah apa yang anda benar-benar perlukan.

Artikel berkaitan