Tanda nftables dan Penghalaan VPN: Peraturan Mana yang Benar-benar Menang
Tanda yang ditetapkan dalam tembok api masih boleh terlepas peraturan penghalaan. Semak topeng peraturan, jenis objek dan penulis lain sebelum menambah yang keempat.
Tanda yang ditetapkan dalam nftables sepatutnya menghantar satu kelas trafik melalui terowong, tetapi trafik terus keluar melalui antara muka fizikal. Set peraturan kelihatan betul secara berasingan. Apa yang biasanya berlaku ialah sesuatu yang lain menulis tanda yang sama, atau peraturan penghalaan sepadan dengan topeng yang tidak lagi dipenuhi nilai baharu.
Semakan 1: baca peraturan yang dipadankan oleh kernel
Mulakan dengan peraturan dasar, bukan tembok api. Kernel meneliti peraturan mengikut urutan keutamaan dan padanan pertama menentukan jadual. Baca nilai fwmark dan topeng daripada peraturan itu sendiri, kemudian sahkan bahawa paket dengan tanda yang anda tetapkan benar-benar sepadan dengannya. Peraturan yang menjangka nilai 32 bit penuh tidak akan sepadan dengan paket yang hanya membawa satu bit.
Kemudian sahkan jadual mana yang dipilih oleh peraturan itu dan apa yang terkandung dalam jadual. Peraturan yang menunjuk ke jadual kosong menghasilkan kegagalan carian, yang pada banyak sistem bermakna paket jatuh ke peraturan seterusnya dan keluar melalui antara muka fizikal.
Dua arahan menyelesaikannya: senarai peraturan, dan carian laluan untuk destinasi dalam jadual itu.
Semakan 2: tanda paket atau tanda sambungan
nftables boleh menetapkan tanda pada paket dan tanda pada entri penjejakan sambungan, dan kedua-duanya objek yang berbeza. Tanda paket hidup sepanjang laluan pemprosesan paket, manakala tanda sambungan kekal untuk aliran dan mesti disalin dengan sengaja. Menetapkan satu dan mengharapkan yang lain ialah pembaikan separuh yang biasa.
Jika peraturan penghalaan bergantung pada tanda paket, memulihkan tanda sambungan kemudian dalam laluan tidak melakukan apa-apa untuk keputusan itu, kerana keputusan sudah dibuat.
Tentukan objek mana yang memiliki isyarat penghalaan, kemudian tetapkan pada titik keputusan penghalaan dibuat.
Semakan 3: siapa lagi yang menulis tanda itu
Alatan WireGuard sendiri menandakan paket UDP-nya supaya pengangkutan tersulit tidak dihalakan semula ke terowong miliknya. Jika set peraturan anda memberikan nilai tidak berkaitan pada medan yang sama, pengecualian itu hilang dan trafik luar terowong cuba masuk ke dalam dirinya sendiri. Gejalanya ialah terowong yang terbentuk dan kemudian berhenti menyalurkan trafik.
Tanda juga digunakan oleh alat tembok api lain, rangkaian kontena dan penghalaan dasar untuk tujuan lain, jadi dua subsistem menulis seluruh medan ialah konflik walaupun setiap satu betul secara berasingan.
Senaraikan penulis sebelum menambah satu lagi.
Semakan 4: topeng menentukan apa yang anda kekalkan
Tanda ialah medan 32 bit, dan topeng ialah cara beberapa pemilik berkongsinya. Menetapkan nilai dengan topeng mengekalkan bit yang bukan milik anda; menetapkan seluruh medan memusnahkan bit semua orang lain. Baca topeng dalam setiap peraturan yang menyentuh medan itu, termasuk yang tidak anda tulis.
Dokumenkan pembahagian bit di sebelah set peraturan.
Jika tidak, orang seterusnya akan menggunakan semula nilai yang sudah ada pemilik, dan konflik di sini kelihatan seperti pepijat penghalaan sedangkan ia pepijat pengalamatan. Dokumentasi nftables tentang metadata paket menerangkan operasi tanda itu sendiri.
Semakan 5: sahkan dengan aliran sebenar, bukan carian
Carian laluan biasa tidak membawa tanda, jadi ia boleh menunjukkan laluan berbeza daripada paket sebenar. Jana trafik yang anda pedulikan dan perhatikan pembilang, entri penjejakan sambungan dan antara muka yang benar-benar dilaluinya. Uji kedua-dua kelas yang disertakan dan kelas yang dikecualikan, kerana tanda yang terlalu lebar merosakkan pengecualian sambil kelihatan berjaya. Jika kelas yang disertakan berfungsi dan kelas yang dikecualikan juga masuk ke terowong, tanda itu terlalu lebar dan bukan terlalu sempit.
Elakkan membersihkan keadaan sambungan untuk memaksa penyegaran semasa sesi hidup, kerana aliran baharu dan sedia ada boleh mengambil laluan berbeza secara sah.
Catat tanda, topeng dan jadual di satu tempat, dan suntingan seterusnya menjadi boleh disemak.