Ikki VPN hovuzi uchun manba bo'yicha marshrutlash: qoidangiz nimani o'tkazib yuboradi
from shaklidagi qoida SNAT uni qayta yozishidan oldin mijoz manziliga mos keladi, shlyuzdan qilingan sinov esa ikkalasiga ham mos kelmaydi. Qidiruvni har bir hovuz uchun bajaring va o'rniga ustuvorliklarni o'qing.
Ikki mijoz hovuzi, bitta shlyuz va reja oddiy ko'rinadi: bitta qoida birinchi hovuzni tez yuqori kanal orqali chiqaradi, boshqasi ikkinchi hovuzni hamkor tunneli orqali o'tkazadi. So'ng qoidalar joyida va ikkinchi hovuz baribir standart marshrut orqali chiqadi. Qoida buzilmagan. Paketning manbasi qidiruv sodir bo'lgan paytda muallif kutgan narsa emas, chunki tarjima va qidiruv bir paketning yo'lidagi turli nuqtalarda sodir bo'ladi va tartib ko'pchilik chizadigan aqliy diagrammaga teskari.
Qidiruv manba qayta yozilishidan oldin sodir bo'ladi
VPN mijozidan uzatiladigan paket uchun yadro qat'iy tartibni bajaradi. Paket tunnel interfeysiga keladi, conntrack va DNAT joylashgan prerouting orqali o'tadi, so'ng marshrutlash qarori qabul qilinadi, so'ng uzatish, so'ng SNAT eng oxirida qo'llaniladigan postrouting. from shaklidagi qoida o'sha marshrutlash qarori vaqtida ko'rib chiqiladi, ya'ni u mijozning asl manzilini ko'radi, tarjima qilinganini emas.
Shunday qilib masquerade qoidasini qo'shish chiquvchi oqimga qaysi siyosat mos kelishini o'zgartirmaydi. O'zgaradigan narsa — uzoq tomon nimani ko'rishi va shu sababli qaysi qaytish yo'li mavjudligi. Bu ikki xil natija va o'zgarishlar ko'rigi ularni doim aralashtiradi. Ularni ajrating, loyiha odatda bir daqiqada aniq bo'ladi.
Aynan javob yo'nalishida tarjima qilingan manzil qoidalarda ko'rinadi. Shlyuzga qaytayotgan paket tarjima qilingan manzilga yo'naltirilgan bo'ladi va agar maqsad yoki kirgan interfeys asosida siyosat qoidalaringiz bo'lsa, siz aynan o'sha qiymatni moslashtirasiz. Bir xil ulanish, har bir yo'nalishda haqiqatning boshqa manbasi.
| Stage | Source the kernel sees | What it means for your rule |
|---|---|---|
| Prerouting | Client address, 172.31.7.42 | Where marks and DNAT are applied |
| Routing decision | Still 172.31.7.42 | This is where from rules match |
| Postrouting | Becomes 198.51.100.9 | What the far end and its return route see |
Demak, manbalari turlicha bo'lgan ikki hovuz haqiqatan ham turli jadvallarga muhtoj va loyiha to'g'ri. Yuqoridagi jadval istisno qiladigan narsa — uzoq sayt nima olganini ko'rib, undan qoidani chiqarishning oson yo'li.
Shlyuzdan qilingan sinov hovuzning sinovi emas
Shlyuzning o'zi yaratadigan trafik hech qachon preroutingdan o'tmaydi, chunki u hech qanday interfeysga kelmagan. U chiqish yo'lida marshrutlanadi, manba sifatida shlyuzning o'z manzili olinadi va mijoz diapazoniga asoslangan from qoidasi mos kelmaydi. Bu sohadagi har bir chipta qutidan ishlaydi, mijozdan ishlamaydi degan — o'sha faktning takrori.
Mijozni taxmin qilish o'rniga uni imitatsiya qiling. Marshrutlash qidiruvini to'g'ridan-to'g'ri so'rash mumkin, manba va kirish interfeysini berib:
ip route get 198.51.100.9 from 172.31.7.42 iif tun0
ip route get 198.51.100.9 from 172.31.8.42 iif tun0
ip route show table 201
Buni har bir hovuz uchun bir marta ishga tushiring. Agar ikkala buyruq bir xil interfeysni qaytarsa, qoidalar hovuzlarni ajratmaydi va sabab yo'qolgan qoida yoki ikkalasiga mos keladigan yuqoriroq ustuvorlikdagi qoidadir. Agar ular turli interfeyslarni qaytarsa, lekin mijoz baribir muvaffaqiyatsiz bo'lsa, nosozlik qidiruvdan keyin va qoidalarni ko'rishni to'xtatishingiz mumkin.
Ustuvorlik, fayldagi o'rin emas
Qoidalar ustuvorlikning o'sish tartibida baholanadi va muhimi raqam, siz tergan tartib emas. local jadvali 0 ustuvorlikda, main jadvali 32766 da va standart qoida 32767 da, shu sababli standart ustuvorlik bilan qo'shilgan qoida ro'yxat oxiriga yaqin tushadi va deyarli hamma narsaga yutqazadi.
ip rule show
ip rule add from 172.31.8.0/24 lookup 201 priority 1000
ip -4 route show table 201
Aniq ustuvorlik ko'zda tutilgan tartibni faylda va ko'rikda ko'rinadigan qiladi. U, shuningdek, keyingi qo'shimchaning mavjud qoidadan jimgina o'tib ketishining oldini oladi, bu esa ishlayotgan siyosatning aloqasiz o'zgarishdan keyin to'xtashining eng keng tarqalgan sababidir.
To'liq bo'lmagan jadvalga ishora qiluvchi mos qoida — bu boshqa tuzoq. Agar 201 jadvalida standart marshrut bo'lsa, lekin maqsadga marshrut bo'lmasa, paket tashlanadi yoki noto'g'ri joyga yuboriladi va qoida yakka holda mutlaqo to'g'ri ko'rinadi. Jadvalni o'qing, faqat qoidani emas. Qoida — ko'rsatkich, bo'sh jadval esa hech qayerga ko'rsatkich.
Qaytish yo'li baribir mavjud bo'lishi kerak
Manba siyosati chiqishni tanlaydi. U qaytish yo'lini yaratmaydi. Agar ikkinchi hovuz hamkor tunneli orqali chiqsa, hamkor 172.31.8.0/24 ga qanday yetishni bilishi kerak, yo shlyuzga qaytish marshruti bilan, yo o'zi allaqachon biladigan tarjima qilingan manzillarni qabul qilib.
Ularning orasidan tanlash ko'rinadigan natijalarga ega loyiha qaroridir. Mijoz diapazonini orqaga marshrutlash hamkorda har bir mijozning shaxsini saqlaydi va u sizning prefiksingizni qabul qilishini talab qiladi. Tarjima hovuzni bitta manzil ortiga yashiradi va hamkor faqat shu manzilni qabul qilishini talab qiladi, buning narxi — sizning va uning jurnallari kim ulangani bo'yicha endi kelisha olmaydi.
Nimani tanlamang, uni hovuz ta'rifi yoniga yozing. Faqat kimningdir xotirasida mavjud qaytish marshruti — hamkor faervolni almashtirgunga qadar yashaydigan va keyin qayta qurish uchun bir kun ketadigan narsa.
Siyosatda shlyuzning o'z tunnelini tutmang
Mijozlar uchun yozgan qoidalaringiz shlyuz yaratadigan trafikka ham tegishli, agar uni istisno qilmasangiz. Belgiga yoki chiqish interfeysiga asoslangan keng qoida shlyuzning hamkor bilan o'z ulanishini tutib qolishi mumkin, shunda siyosatni olib yuruvchi tunnel siyosat bilan marshrutlanadi. Bu provayder nosozligiga o'xshash tsikl yoki uzilish keltirib chiqaradi.
Har bir qoidani loyiha ruxsat berganicha toraytiring: manba prefiksi, kirish interfeysi va qo'llab-quvvatlansa, faqat mijoz paketlari olib yuradigan belgi. So'ng har bir qoida o'zgarishidan keyin shlyuzning o'z ulanishini sinab ko'ring, chunki nosozlik o'ziga havola qiladi va mijoz sinovida ko'rinmaydi.
ip-rule qo'llanmasining sahifasi selektor va ustuvorlik semantikasini hujjatlashtiradi. Uni har bir hovuz uchun qidiruv sinovi bilan birlashtiring va loyiha tekshiriladigan bo'ladi, bu bir yil chidaydigan siyosat marshrutlash bilan hamma tegishdan qo'rqadigan marshrutlash o'rtasidagi farqdir.