Ko'p routerli Pi VPN: har bir marshrutni qaror qabul qiladigan qurilmaga qo'ying
Pastki router ikkinchi mijoz quyi tarmog'ini qo'shadi va to'rtta qurilmaning har biri bitta qarorga ega. Marshrutlarni joylashtiring, manbani tekshiring, keyin haqiqiy mijozdan sinab ko'ring.
Pi orqasiga Wi-Fi quti qo'yish bitta marshrutlash qarorini to'rttaga aylantiradi va to'rttasi ham bitta qurilmada qabul qilinsa reja buziladi. Birinchi savol qaysi marshrutni qo'shish emas. Yangi quti ko'prik qiladimi yoki marshrutlaydimi, chunki bu javob qancha quyi tarmoq borligini va qaysi qurilmalar ular haqida bilishi kerakligini belgilaydi. Avval ulanish modelini tanlang; har bir marshrut undan kelib chiqadi.
Ko'prik yoki marshrut: sonni belgilaydigan tanlov
Ko'prik yangi mijozlarni Pi allaqachon xizmat ko'rsatayotgan bir xil quyi tarmoqqa qo'yadi. Bitta quyi tarmoq, bitta DHCP vakolati va marshrutlash uchun hech qanday o'tkazish yo'q. Bu oddiyroq tuzilma va alohida mijoz tarmog'i hech qachon talab bo'lmaganida to'g'ri tanlov. Marshrutlangan ulanish boshqa dizayn: quti o'z quyi tarmog'ini saqlaydi va bu prefiks trafik boradigan hamma joyga olib borilishi kerak.
Rejaning qolgan qismi pastki routerni saqlaydi va mijozlarning manba manzillarini himoya qiladi. Maqsad bitta xususiy VPN tarmog'i, to'liq internet chiqishi emas. Modelni manzillardan oldin yozing, chunki quyidagi ro'yxat faqat marshrutlangan ulanishning namunasi.
client subnet 10.41.0.0/24
client gateway 10.41.0.1
router-to-Pi link 192.168.71.2
Pi on that link 192.168.71.1
private target 10.72.9.0/24
Kim nima qaror qiladi
| Decision owner | Entry that encodes the decision | Failure when the entry is missing |
|---|---|---|
| Pi VPN host | Return route for 10.41.0.0/24 via 192.168.71.2, and a tunnel route for 10.72.9.0/24 | Replies to downstream clients die at the Pi |
| Owner of the remote network | A path for 10.41.0.0/24 over the permitted tunnel | Replies stop at the first unaware hop |
| LAN router behind the Pi | Specific route for 10.72.9.0/24 via 192.168.71.1, or a suitable default | Clients never send private traffic to the Pi |
| Client machine | Default via 10.41.0.1, or a specific entry for 10.72.9.0/24 | The private network is unreachable from the client |
Har bir qurilma bitta qaror qabul qiladi va hech biri boshqasining qarorini uning o'rniga qabul qila olmaydi. Pi ikki yozuvga muhtoj, bittaga emas, va qaytish yo'li odamlar unutadigan narsadir. Yo'naltirilgan trafik xususiy tarmoqqa to'g'ri yetib boradi va keyin qaytish yo'lida o'ladi, chunki Pi 10.41.0.0/24 qayerda yashashini bilmaydi. Bu xavfsizlik devori muammosiga o'xshaydi va aslida yo'qolgan marshrut.
Uzoq tomon ham o'z marshrutiga muhtoj. Uzoq uchidagi xizmat 10.41.0.0/24 sizning tunnelingiz orqali yetib borishini bilmasa, javoblar javobsiz birinchi sakrashda to'xtaydi. Paket filtrlarini o'qishdan oldin ikkala yo'nalishni ham qo'shing.
Keyingi sakrashlar ulanishdan keladi
Keyingi sakrash qurilma haqiqatan yetib bora oladigan tarmoqdagi manzil bo'lishi kerak. VPN sherigining ommaviy manzili xususiy quyi tarmoq uchun keyingi sakrash emas va uzoqdagi xizmat tarmog'i umuman keyingi sakrash emas. Yetib bo'lmaydigan shlyuzga marshrut ro'yxatda to'g'ri ko'rinadi va har bir paketni tashlaydi. Manzilni ayblashdan oldin shlyuz javob berishini tekshiring.
Pi ning tashqi VPN sherigini o'zining pastki marshruti orqali yetib borish mumkin holda saqlang. Bu yozuv foydali yuk marshrutlaridan alohida va ularni aralashtirish yo'l o'zgargandan keyin qayta tiklanmaydigan tunnel beradi.
Statik marshrutlar hujjati har bir platforma menyularini boshqacha nomlasa ham manzil va shlyuz o'rtasidagi farqni aniq qiladi. Boshqa ishlab chiqaruvchining ekranini nusxalash o'rniga oldingizdagi qurilmaning hujjatini o'qing. Quyidagi buyruqlar Linuxda yozuvlarning shaklini ko'rsatadi.
# on the Pi
ip route add 10.41.0.0/24 via 192.168.71.2
ip route add 10.72.9.0/24 dev tun0
# on the downstream router
ip route add 10.72.9.0/24 via 192.168.71.1
Tarjima manbaga nima qiladi
Agar pastki router allaqachon mijozlarini tranzit manziliga tarjima qilsa, Pi har bir mijozning o'z manzili o'rniga bitta tarjima qilingan manbani ko'radi. Bu yuqoridagi manbani saqlaydigan dizayndan farq qiladi. U manba asosidagi siyosatni, jurnal yuritishni va qaysi tomon ulanish boshlashi mumkinligini o'zgartiradi. Ikkala dizayn ham ishlaydi; ular turli savollarga javob beradi.
Yuqori VPN xizmati mijoz prefiksini orqaga marshrutlashdan bosh tortsa, Pi tunnelining chiqishida tor tarjima qonuniy vaqtinchalik yechim bo'lishi mumkin. Bu yo'qolgan marshrut keraksiz bo'lganiga dalil emas. Uzoq tarmoq aslida qaysi manzilni ko'rishini va qanday qaytish yo'li chiqishini yozib qo'ying.
Marshrut tanlash, yo'naltirish ruxsati va manba tarjimasi uchta alohida ish bo'lib qoladi. Bitta simli mijoz ishlayotgani uchun umumiy NAT zanjirini tozalash yoki har bir interfeysga ruxsat berish ishlaydigan sinovni ochiq yo'naltiruvchiga aylantirish usulidir.
Buni mijoz mashinasidan isbotlang
Pastki LANdagi mashinadan so'rov yuboring, keyin uning manbasini tashqariga va orqaga kuzatib boring. Pi yuboradigan ping hech qachon pastki qaytish marshrutidan foydalanmaydi, shuning uchun muvaffaqiyatli ping ko'ringanidan kamroq narsani isbotlaydi. Pi ning o'z LANidagi simli mijozdan ikkinchi sinov qo'shing, shunda ikki yo'lni solishtirish mumkin. Har qanday qurilmani qayta ishga tushirgandan keyin ikkalasini ham takrorlang.
Qo'lda qo'shilgan marshrutlar va hech qachon saqlanmagan tarjimalar birga yo'qoladi. Shunda juftlik tugallanmagan ish emas, yangi nosozlik bo'lib ko'rinadi.
Ulanish modelini marshrutlar, ruxsat berilgan xususiy xizmat va har qanday tarjima bilan birga bitta eslatmada saqlang. Aynan o'sha eslatma keyingi odam simsiz joylashuvni marshrutlash siyosati savoli deb qarashiga yo'l qo'ymaydi.