Sizda bitta Pi, ishlaydigan chiquvchi VPN profili va u orqali internetga chiqishi kerak bo'lgan ikkita qurilma bor. Butun qurilishni hal qiladigan savol qaysi qo'llanmaga ergashish emas, balki qancha izolyatsiya kerakligidir. Bitta port Pi'ga o'sha qurilmalar yonida routerning LAN'ida turish va qo'shimcha darvoza bo'lib ishlash imkonini beradi; ikkinchi port ularni Pi yagona chiqish bo'lgan segmentga joylashtirish imkonini beradi. Bu tanlovdan keyingi hamma narsa — DHCP, xavfsizlik devorining qamrovi, DNS, uzilish holati — shundan kelib chiqadi.

Ikki sxema aslida nimasi bilan farq qiladi

Ikkala loyiha ham marshrutlaydi. Farq kabelda yana kim turishida va siyosatingiz xato bo'lganda nima bo'lishida.

Layout A: Pi on the ISP LANLayout B: dedicated client port
CablingOne Ethernet port, existing switch portTwo interfaces: uplink plus a separate LAN port
Can a client bypass the Pi?Yes, by using the ISP router as its gatewayNo, unless the device has another radio or link
Who hands out addressesThe ISP router, with a per-client setting or a DHCP optionThe Pi, on its own LAN interface only
Blast radius of a mistakeAny LAN host, if a rule is too broadThe attached segment
Good fit forOne laptop, a console, a temporary test clientAppliances, always-on boxes, untrusted devices

Haqiqiy o'q — izolyatsiya. A sxemasi maslahat xarakterida: DHCP bergan darvozani e'tiborsiz qoldirib, routerni tanlagan qurilma shifrlashsiz ham ishlayveradi. B sxemasi topologiya bilan majburlanadi, chunki tanlash uchun boshqa keyingi qadam yo'q.

A sxemasi: Pi mavjud LAN'da qo'shimcha darvoza sifatida

ISP routeri 192.168.50.1, Pi 192.168.50.2 va tanlangan mijozlar Pi'ga ishora qiladi deb faraz qilaylik. Muhimi — ikki xil paket oqimi bitta kabelni baham ko'radi. Mijozning ichki paketi Pi'ga yetib keladi va tunnel orqali chiqishi kerak; Pi'ning o'z shifrlangan paketi VPN sherigiga o'sha kabeldan router tomonga chiqishi kerak. Ular bitta interfeysda qarama-qarshi yo'nalishlarda harakatlanadi va boshqacha ishlov talab qiladi.

Pi'ga manzilini o'rnatilgan tarmoq menejeri orqali bering, qurilma uchun u bilan kurashadigan eski interfeys fayli retsepti orqali emas. So'ngra mijozlarni sozlang: bitta qurilmada statik darvoza yoki 192.168.50.2 ni router sifatida beradigan DHCP rezervatsiyasi. Ikki qurilma uchun routerning butun DHCP diapazonini o'zgartirmang va mijoz bu parametrni hurmat qiladi deb o'ylamang — tekshiring.

Zaiflik tizimli, tuzatib bo'lmaydigan. O'sha segmentdagi har qanday mijoz 192.168.50.1 ga ishora qilib ochiq holda chiqishi mumkin, ikkinchi interfeysi yoki uyali radiosi bor qurilma esa sizning ijro etish yo'lingizdan butunlay chiqib ketadi. Agar bu gap tegishli qurilma uchun qabul qilib bo'lmaydigan bo'lsa, javobingiz allaqachon bor: B sxemasidan foydalaning.

B sxemasi: alohida port qurilmalarni ichkariga qamab qo'yadi

Bu yerda Pi yuqori bog'lanishda 192.168.50.1 darvozasi bilan 192.168.50.2 ni saqlaydi va ulangan qurilmalar uchun ikkinchi interfeysda 10.20.0.1/24 ni oladi. Endi Pi ikki tarmoqli router, ulangan segment esa aynan bitta chiqishga ega.

Majburiyat olishdan oldin diapazonni qolgan hamma narsa bilan tekshiring: tunnelning o'z quyi tarmog'i, boshqa saytlararo prefikslar va VPN orqali yetib boriladigan barcha narsa. Uzoq LAN bilan to'qnashadigan 10.20.0.0/24 diagnostikasi butun bir oqshom oladigan yarim ishlaydigan natija beradi. Agar ikkinchi port USB adapter bo'lsa, uning qo'llab-quvvatlanishini tasdiqlang va qayta yuklashdan keyingi qayta tartiblash LAN manzilingizni siljitmasligi uchun nomini tarmoq menejerida mahkamlang.

DHCP tinglovchisini faqat shu interfeysda ishga tushiring. Yuqori bog'lanishda javob beradigan server ISP routeri bilan raqobatlashadi va segmentingiz manzillarini uyning qolgan qismiga beradi. Uni LAN interfeysiga bog'lang, e'lon qilingan diapazon bilan cheklang va Pi'ning o'z manzilini hovuzdan tashqarida saqlang.

Uzatish, tarjima va nosozlikda yopilish qoidasi

To'rt narsa ko'pincha bitta deb ta'riflanadi va unday emas. Uzatishni yoqish (net.ipv4.ip_forward=1) yadroga faqat interfeyslar orasida paketlarni ko'chirish mumkinligini aytadi; o'zi hech narsaga ruxsat bermaydi va hech qanday yo'lni kafolatlamaydi. Chiqishni tanlash — marshrutlash qarori. Paketga ruxsat berish — forward zanjiridagi siyosat qarori. Uning manbasini qayta yozish — postrouting qarori. Faqat birinchisini qiladigan qurilish mijoz trafigini xursandchilik bilan yuqori bog'lanishdan tashqariga uzatadigan Pi yaratadi.

Ruxsatni siz nazarda tutgan manbalar va trafik ishlatishi kerak bo'lgan interfeys bilan cheklang, qaytish yo'li va Pi'ga kerakli manzillarni ham qo'shing. So'ngra provayder LAN prefiksingizni sizga qaytarib marshrutlamasa, tunnel chiqishida tarjima qiling. nftables qo'llanmasi uzatishni, mahalliy chiqishni va manba tarjimasini alohida amallar deb qaraydi, bu yerda to'g'ri fikrlash modeli shu.

Odatiy nosozlik — jismoniy interfeysdagi keng masquerade qoidasi. Shunda trafik ISP yo'li bilan internetga yetadi, mijoz tomondan esa u xuddi ishlayotgan VPN kabi ko'rinadi. Bu hech narsani isbotlamaydi. Tarjimani e'lon qilingan chiqishga bog'lab turing va qoidalaringizni xost allaqachon ishlatayotgan xavfsizlik devorida saqlang, umumiy postrouting zanjirini bo'shatadigan raqib qoidalar to'plamini qo'shish o'rniga.

So'ngra tunnel yo'qligini hal qiling. Keng standart marshrut o'rnatadigan mijoz profili tunnel yiqilganda odatiy standart marshrut qaytishi va mijoz trafigi jimgina yuqori bog'lanishga qaytishi mumkinligini ham bildiradi. Qaerda ochiq matnga qaytish qabul qilinmasa, o'sha yerda forward siyosati mijozdan yuqori bog'lanishga trafikni ochiq ravishda rad etishi kerak, VPN marshruti yo'qolgan holatda. Buni taxmin sifatida emas, rad etish qoidasi sifatida yozing. Pi'ning VPN sherigiga o'z shifrlangan transporti alohida local-output oqimi va ruxsat etilgan holda qolishi kerak, aks holda tunnel hech qachon qaytib kelolmaydi.

DNS va IPv6 o'z javobiga muhtoj

Agar mijozlar Pi'dan hal qiluvchi sifatida foydalansa, ular mahalliy tinglovchiga yetib boradi va Pi yangi so'rov boshlaydi. O'sha yuqori so'rov mijozlar uchun yozgan forward qoidangizga emas, Pi'ning o'z marshrutiga ergashadi, shuning uchun faqat tunnel orqali boradigan mijoz yo'li va to'g'ridan-to'g'ri chiqadigan hal qiluvchi — bu hech qanday xato xabarisiz oqib ketish. Ongli qaror qiling: tunnel orqali yetib boriladigan hal qiluvchi yoki to'g'ridan-to'g'ri deb qabul qiladigan mahalliy hal qiluvchi, va Pi'ning o'z chiqish siyosatini shu qarorga moslang.

IPv6 yana alohida holat. IPv4 uchun forward qoidasi IPv6 haqida hech narsani cheklamaydi va yuqori bog'lanishdagi router e'lonlari Pi'ga hamda u orqali ulangan segmentga siyosatingizni chetlab o'tadigan ikkinchi standart marshrut berishi mumkin. Yoki xuddi shu tamoyil bilan IPv6'ga o'z himoyalangan yo'lini bering, yoki mijoz segmentida uni ochiq ravishda cheklang va shuni ayting.

Ishonishdan oldin chegarani sinab ko'ring

Sxemani faqat to'rtta alohida tekshiruvdan keyin qabul qiling, chunki vasvasaga soladigan yagona sinov — bitta mijozda brauzer ochish — bir nechta buzilgan holatda o'tadi.

Bitta haqiqiy mijoz tunnel orqali internetga yetib borishini tasdiqlang, so'ngra o'sha mijoz tunnel o'chirilganda internetga yetib bora olmasligini tasdiqlang. DNS hal qilish ishlashini va so'rov siz nazarda tutgan joydan chiqishini tasdiqlang. Tunnel qayta ishga tushirilgandan keyin ham Pi'ning o'z transporti ishlashini va tiklanish mashinani qayta yuklashni talab qilmasligini tasdiqlang. Nihoyat, siz tanlamagan qurilmani tekshiring: A sxemasida u odatdagidek ishlashda davom etishi kerak, B sxemasida esa u o'sha segmentda umuman bo'lmasligi kerak.

  • Ikki port va rad etish qoidasi ijroni beradi; bitta port va DHCP parametri maslahat beradi.
  • Noto'g'ri interfeysdagi tarjima muvaffaqiyatga o'xshaydi va unday emas.
  • Pi'ning o'z trafigi, DNS va IPv6 har biri qaror talab qiladi, taxmin emas.

O'xshash maqolalar