Hisobga asoslangan marshrutlash bitta Linux foydalanuvchisiga tegishli har bir IPv4 soket mavjud tunnel orqali chiqishi kerak bo'lganda mos keladi, programma darajasida izolyatsiya kerak bo'lganda esa mos kelmaydi. U UID bo'yicha tanlaydi, shuning uchun bu hisob ostida ishlaydigan hamma narsa qamrovda, unutgan paket ishingiz ham. Bitta ip rule ga tegishdan oldin bu savolni hal qiling.

Quyidagi misol UID 1500 dagi alohida brauzer hisobini, 10.80.0.11 mahalliy manzilini olib yuruvchi tun-office tunnel qurilmasini va ko'rsatilgan manzillarga ruxsat beruvchi VPNni nazarda tutadi. Demonning o'zi bu UID dan tashqarida ishlaydi.

Mexanizmni tanlaydigan uchta shart

UID qoidasini ishni bajaruvchi identifikatsiya hisob bo'lganda, uning barcha trafigini ko'chirish maqbul bo'lganda va namespace vazifaga munosib bo'lganidan og'irroq bo'lsa tanlang. Tarmoq namespace ini ish yuki o'z interfeyslari, hal qiluvchisi va marshrutlash jadvaliga muhtoj bo'lganda tanlang. Proksi yoki har bir jarayonga bog'lashni aynan bitta dastur ko'chirilishi kerak bo'lganda tanlang, sessiyaning qolgani mahalliy yo'lda qoladi. Bu uchtasini yozib qo'yish niyatdan ko'proq narsani jimgina qamrab oluvchi qoidaning oldini oladi.

Qochish kerak bo'lgan xato ishga tushiruvchi egasini belgilaydi deb o'ylashdir. Boshqa foydalanuvchi sessiyasi URL bergan brauzer UID 1500 ostida soket yaratmagan va hech bir qoida u hosil qiladigan trafikni ko'chirmaydi.

Jadval, qoida va qo'riqchi

Mavjud qoidalarni tekshirib, ishlatilmagan jadval va ustuvorlik raqamlarini tanlagandan keyin tuzilma qisqa: tunnelning manba manzilini olib yuruvchi alohida jadvaldagi standart marshrut, hisobning qidiruvlarini shu jadvalga yuboruvchi qoida va zaxira yo'lni to'suvchi yakunlovchi qoida. Yozib qo'yilsa, bu idempotent marshrut almashtirish, ip -4 route replace default dev tun-office src 10.80.0.11 table 51820, undan keyin ip -4 rule add priority 12100 uidrange 1500-1500 lookup 51820.

Qo'riqchi ip -4 rule add priority 12101 uidrange 1500-1500 unreachable va u o'z uzunligi ko'rsatganidan muhimroq. Usiz 51820 jadvalida yo'q marshrut odatdagi yuqori kanalga tushib qoladi va hisob siyosat tutishi kerak bo'lgan trafikni jimgina oqizib yuboradi. U bilan o'sha nosozlik kutish vaqtiga aylanadi, ya'ni zaxira emas, bloklash.

Odatiy mahalliy manzil qoidasini bulardan oldin saqlang va LAN yoki boshqaruv istisnolari tanlangan jadvaldan oldin kelishini ongli ravishda hal qiling. U yerda topilgan standart keyinchalik aniqroq LAN marshruti uchun main dan so'ramaydi, bu eng uzun prefiks mosligi jadvallar orasida amal qiladi deb kutganlarni hayratga soladi. Ko'zda tutilgan istisnolar ro'yxatini o'zgartirish qaydiga, asos hali yangi bo'lganda yozing.

UID marshrutlash nimani chetda qoldiradi: DNS

Hal qiluvchi demon o'zining yuqori soketlarini o'z UID si ostida ochadi, shuning uchun 1500 ni tanlash bu so'rovlarni 51820 jadvaliga ko'chirmaydi. DNS integratsiyasi alohida qaror: hisobni tunnel orqali yetib boriladigan hal qiluvchiga yo'naltiring yoki nomlarni hal qilish xost yo'lini kuzatadi, trafik esa kuzatmaydi deb qabul qiling.

Mahalliy stub ga loopback so'rov yuqori so'rov brauzer yo'lini ishlatganiga dalil emas, keshdan muvaffaqiyatli sahifa yuklanishi ham emas.

IPv6 dizaynda o'z jumlasini talab qiladi

Yuqoridagi qoidalar faqat IPv4 ni qamrab oladi. Agar talab bu hisobdan to'g'ridan-to'g'ri IPv6 siz IPv4 tunnel bo'lsa, ko'rib chiqilgan yakunlovchi qoida qo'shing, masalan ip -6 rule add priority 12101 uidrange 1500-1500 unreachable, so'ng avvalgi IPv6 qoidalarini va saqlashni istagan loopback istisnolarini tekshiring.

To'g'ridan-to'g'ri IPv6 ni to'sish ikki qatlamli tunnellash emas; bu chegara. Uni tunnellash deb atash siyosatni o'qiydigan keyingi odamni chalg'itadi va bu chalkashlik buzilgan IPv6 sayti haqidagi yordam bileti sifatida yuzaga chiqadi.

Haqiqiy hisob bilan tekshiring, so'ng hayot tsiklini o'z zimmangizga oling

Qidiruvlarni solishtiring: ip -4 route get 198.51.100.25 uid 1500 xuddi shu manzilga oddiy UID bilan. So'ng alohida hisob ostida ruxsat etilgan so'rov yuboring va uzoq tomon ko'radigan manba manzilini tekshiring. Afzal manba manzil source NAT emas va boshqa narsani bog'laydigan dastur ustidan chiqmaydi. Agar ikkala qidiruv ham bir xil yo'lni qaytarsa, qoida siz o'ylagan ishni qilmaydi.

Jadval, qoidalar va tunnel marshrutining umrini bitta egasi ostida saqlang, qayta ulanish va tunnel yo'qolishini sinab ko'ring, siyosatdan chiqarishda esa faqat uning aniq yozuvlarini olib tashlang. Alohida interfeyslar va alohida holat haqiqatan kerak bo'lsa, namespace hali ham mavjud.

O'xshash maqolalar