Mahalliy Wi-Fi va Ethernet mijozlari Pi hotspotiga ulanadi, uning DHCP diapazonidan manzil oladi va shikoyatsiz internet sahifalarini yuklaydi. Keyin o'sha mijozlar uy LAN tarmog'idagi fayl ulashmasi yoki veb-interfeysni ochganda vaqt tugaydi, holbuki Pi o'zi tunnel orqali o'sha LAN ga yetib boradi. Simsiz qatlamda hech narsa buzilmagan. Yetishmayotgani marshrutlangan shartnoma: hotspot prefiksi TUN interfeysiga olib kirilishi kerak va uy tomonida javoblarni u yerga qanday qaytarishni biladigan narsa bo'lishi kerak. Bitta paket sayohatni tugatishidan oldin ikkala yarim ham mavjud bo'lishi shart.

Uch xil ish bilan uchta ulanish

Linux Ethernet ko'prigi kadrlarni manzil MAC bo'yicha uzatadi. OpenVPN TUN rejimida IP paketlarni tashiydi va unda MAC qatlami umuman yo'q, shuning uchun mahalliy ko'prik qo'shish tunnni hech qachon port sifatida qayd etmaydi. yadro TUN/TAP hujjatlari bu bo'linishni tushuntiradi: TAP qurilmasi Ethernet interfeysiga o'xshaydi, TUN qurilmasi esa yo'q. Ikkita mahalliy portni ko'priklab, keyin marshrutlaydigan dizayn, interfeys nomlari nima desa ham, routerdir.

Bu farq egalikni hal qiladi. Mijozlarning subnetsi, ularning standart shlyuzi va o'sha diapazon uchun DHCP vakolati Pi ning mahalliy rejasiga tegishli. Uy DHCP eshittirishlari marshrutlangan tunneldan o'tmaydi va hech qanday ko'prik sozlamasi buni o'zgartirmaydi; mijozlarni uy DHCP serveriga burish o'z muvaffaqiyatsizlik usullariga ega alohida, ataylab qilingan relay dizayni.

Modemni ham mijoz ko'prigidan tashqarida saqlang. PPP ulanishi boshqa yorliqli Ethernet qurilmasi emas va pppd ning hujjatlashtirilgan standart marshrut mantig'i IPCP muzokaralaridan keyin ishlaydi va o'sha havola uzilganda o'z marshrutini qaytarib oladi. DHCP shablonini nusxalash va har bir usb0 ni ppp0 ga qayta nomlash shlyuz, metrika yoki hayot tsikli haqida hech narsani isbotlamaydi.

Har qanday konfiguratsiyani tahrirlashdan oldin prefikslarni tanlang

Ustma-ust tushuvchi prefikslar xavfsizlik devori qoidalaridan ko'ra ko'proq oqshomlarni yo'qotadi, chunki ustma-ustlik tunnel sog'lom bo'lganda ham marshrut qidiruvini noto'g'ri interfeysga yuboradi. Pi da allaqachon mavjud narsalarni sanab chiqishdan boshlang, keyin natijani to'rtta alohida hovuz sifatida o'qing.

ip -4 addr show scope global
ip -4 route show table main
ip -4 route get 192.168.77.10

Birinchi hovuz operator modemga bergan underlay manzili; u mijozlarga qaragan har qanday rejadan tashqarida qolishi kerak. Ikkinchisi server tanlagan tunnel subnetsi, ko'pincha uning o'z shaxsiy /24 tarmog'i. Uchinchisi hotspot ko'prigi, to'rtinchisi esa siz yetib bormoqchi bo'lgan uy prefiksi. Bu yurishda hotspot 172.28.90.0/24 oladi, ko'prik 172.28.90.1 da, va uy xizmat LAN i 192.168.77.0/24 ni saqlaydi, bu iste'molchi routerlari bilan keladigan 192.168.1.0/24 va 10.0.0.0/24 standartlarini hamda 100.64.0.0/10 operator diapazonini chetlab o'tadi.

Hotspot ning DHCP diapazonida faqat ko'prik manzilini shlyuz sifatida e'lon qiling, boshqa hech narsani emas. Hotspot mijozlariga hech qachon shlyuz sifatida uy manzilini bermang; ularning o'sha segmentga havola qatlamida yo'li yo'q.

Har bir yo'nalishni unga ega tomonda marshrutlang

Pi ga tunnel orqali uy prefiksiga marshrut kerak. Server rejimidagi serverlar odatda o'sha marshrutni itarib yuboradi, shuning uchun avval yo'naltirish yoqilganini va yadro tun0 dan uy manzilini hal qilishini tasdiqlang.

sysctl net.ipv4.ip_forward
ip route add 192.168.77.0/24 dev tun0
ip -4 route get 192.168.77.10

Agar ip route get hali ham underlay interfeysini xabar qilsa, o'sha yerda to'xtang; yo'lda undan narigi hech narsa noto'g'ri qidiruvni tuzata olmaydi.

Uy qurilmalarining 172.28.90.0/24 ga marshruti yo'q, shuning uchun ularning javoblari standart shlyuzga ergashadi va routerda o'ladi. Ikkita qo'llab-quvvatlanadigan tuzatish bor. Yoki uy routeriga hotspot prefiksini VPN serverining LAN manziliga yo'naltiruvchi statik marshrut qo'shing, yoki server o'zi shlyuz bo'lganda mijoz prefiksini serverning o'z marshrutlash jadvaliga ro'yxatdan o'tkazing. OpenVPN ning ko'p mijozli rejimida mijozga xos katalog o'sha bog'lanishni olib yuradi: mijoz sertifikatining umumiy nomi bilan atalgan fayl, unda iroute 172.28.90.0 255.255.255.0 va uni server yadrosiga o'rnatuvchi mos route satri bor. Serverda taxmin qilingan yadro marshruti qaysi mijoz prefiksga ega ekanini serverga aytish bilan bir xil bayonot emas.

Bu ishlashi uchun uy tarmog'ining DHCP xizmatini VPN serveriga ko'chirmang. Butun uy uchun standart shlyuzni almashtirish bitta shaxsiy qaytish marshrutini qo'shishdan ancha katta o'zgarish va u DNS, manzil bandlovlari va yangi ijara shartlarini e'tiborsiz qoldiradigan har bir qurilmani muvaffaqiyatsizlikka tortadi.

Xavfsizlik devori haqida taxmin qilmasdan yo'naltirishni oching

Yo'naltirishning yoqilgani paketning o'tishiga ruxsat borligini anglatmaydi. Ko'prikdan tunnelga trafik hali ham filtr qoidalariga uriladi va standart drop yo'naltirish siyosati hotspot trafigini tashlab yuboradi, Pi ning o'z trafigi esa ishlashda davom etadi, bu esa yuqoridagi bo'lingan alomatni aynan hosil qiladi.

iptables -S FORWARD
iptables -t nat -S POSTROUTING
nft list ruleset

br0 dan tun0 gacha qabul qoidasini va mos javob yo'nalishini, hamda manbani qayta yozishi mumkin bo'lgan postrouting qoidasini qidiring. Agar zanjir siyosati drop bo'lsa va hech qanday qoida mos kelmasa, siyosatni accept ga aylantirish o'rniga tor qabullarni qo'shing va qayta sinab ko'ring.

Tarjima talab emas, siyosat tanlovi. Uy LAN tomon manba NAT har bir hotspot mijozini Pi ning tunnel manzilidek ko'rsatadi, bu uy jurnallarida har bir mijoz bo'yicha atributsiyani yo'qotadi va asl manbani kutadigan xizmatlarni buzadi. NAT siz marshrutlash mijoz manzillarini ko'rinadigan qilib turadi, lekin yuqoridagi qaytish marshrutiga bog'liq. Bittasini tanlang va DNS hamda IPv6 ga ham xuddi shunday munosabatda bo'ling, chunki buzilgan IPv6 yo'li yonida ishlaydigan IPv4 yo'li brauzerda hali ham yarim buzilgan deb o'qiladi.

Sayohatni tekshiring, keyin uni ataylab buzing

Hotspot mijozidan sinab ko'ring, hech qachon Pi dan emas, chunki Pi ning o'z trafigi ham oldinga, ham qaytish yo'lini chetlab o'tadi. Bitta mijoz uy xizmatiga yetib bormoqchi bo'lganda ikkala interfeysni kuzating.

tcpdump -ni br0 host 192.168.77.10
tcpdump -ni tun0 host 192.168.77.10
ping -c 3 192.168.77.10

Ikkala yozuvni birga o'qing. br0 da ko'rinib, tun0 da hech qachon ko'rinmaydigan so'rovlar Pi yo'naltirmayotganini yoki marshrut boshqa joyga ishora qilishini bildiradi. tun0 da javobsiz so'rovlar uy tomonida qaytish marshruti yo'qligini yoki server paketni filtrlashini bildiradi. tun0 da ko'rinib, br0 da boshqa ko'rinmaydigan javoblar teskari filtr qoidasi yo'qligini bildiradi, u yerda tunnel mukammal ko'rinadi va mijoz hali ham hech narsani ko'rmaydi.

Keyin yo'lni ataylab buzing. Modem ulanishini tushiring va yana ko'taring hamda marshrut va yozuv tekshiruvlarini qayta ishga tushiring; tunneldan o'tib, lekin qayta ulanishda yo'qoladigan marshrut bir martalik buyruqqa emas, ulanish profiliga tegishli. Tunnel transporti hali ham underlay orqali chiqishini, o'zi orqali emasligini tasdiqlang, bu peer ga xost marshrutisiz itarilgan standart marshrut qabul qilinganda yuzaga keladigan klassik halqa.

Dizaynni faqat hotspot mijozi uy nomini hal qila olganda, TCP xizmatini ocha olganda va bitta modem qayta ulanishi davomida sessiyani tirik saqlay olganda qabul qiling. Agar ilova uy segmentida haqiqatan Ethernet darajasidagi aniqlashni talab qilsa, mahalliy ko'prikni ko'priklangan deb ta'riflab, eshittirish paydo bo'lishini kutish o'rniga qo'llab-quvvatlanadigan Layer 2 dizaynini tanlang.

O'xshash maqolalar