LAN routeri va VPN mijozi: ikki qurilma, ikki marshrut jadvali
Routerning keyingi sakrashi paketlarni faqat mijozga yetkazadi. Mijozning tunnel marshrutini, yo'naltirishni va qaytish yo'lini qo'shing, so'ngra LAN xostidan sinab ko'ring.
Ikki qurilma paketni yo'naltiradi va har biri o'z jadvalini yuritadi. LAN routeri uzoq prefiks VPN mijoziga tegishli ekanini biladi, VPN mijozi esa o'z tunneli orqali bu prefiksga qanday yetishni biladi. Faqat birinchi jadvalni sozlang va paket mos marshrutsiz mashinaga yetib boradi, shuning uchun u yana standart marshrut orqali chiqib ketadi. Butun nosozlik shu, va LAN tomondan bu marshrutlash halqasi kabi ko'rinadi, chunki deyarli shunday.
Marshrutga tegishdan oldin ikki sakrashni chizing
Misol tartibini oling: LAN xostlari 192.168.50.0/24 da, oddiy router 192.168.50.1 da, alohida mijoz 192.168.50.15 da va faqat shu mijoz ushlab turgan tunnel orqali yetish mumkin bo'lgan uzoq LAN 10.60.0.0/24 da. Ikki xususiy diapazondan hech biri ikkinchisi bilan ustma-ust tushmaydi, va tunnelning o'z manzil rejasi bor.
Ikkala xususiy diapazon ham muhim, chunki qaysi qurilma javob bera olishini ular belgilaydi. Uzoq tomon paket mijozning tunnel manzilidan kelayotganini ko'radi, va uning javobi 192.168.50.0/24 ga qaytish yo'lini topishi kerak. Faqat chiqish yo'nalishi sozlangan bo'lsa, so'rov ishlashi mumkin, javob esa yo'qoladi.
1-qadam: routerni tunnelga emas, mijozga qarating
LAN routerida keyingi sakrashi mijozning LAN manzili bo'lgan manzil marshrutini qo'shing:
ip route add 10.60.0.0/24 via 192.168.50.15
ip route get 10.60.0.55
Bu yozuv «uni tunnel qila oladigan mashinaga yetkaz» deydi. Tunnel qanday qurilishi haqida hech narsa demaydi va mijozning o'z marshrutini almashtirmaydi. Boshqariladigan routerda ekvivalent qurilmaning statik marshrutlar sahifasida yashaydi; Linux routerida u LANga ega interfeys konfiguratsiyasiga tegishli, siz yopadigan shellga emas.
Ikkinchi buyruqning javobini tekshiring. Agar u mijozni gateway, LAN interfeysini device deb ko'rsatsa, birinchi sakrash to'g'ri va qolgan ish boshqa mashinada.
2-qadam: mijozga tunnel tomonda o'z marshrutini bering
Mijoz endi 10.60.0.0/24 uchun paket oladi va o'z jadvaliga qaraydi. Agar uning tunnel konfiguratsiyasi shu prefiks uchun marshrut o'rnatgan bo'lsa, paket shifrlangan holda davom etadi. Agar o'rnatmagan bo'lsa, paket oddiy standartga mos keladi va 192.168.50.1 ga qaytadi, u esa uni yana mijozga yuboradi.
Biror narsa qo'shishdan oldin qarang:
ip route show table all | grep -E "10\.60\.0\.0/24|default"
sysctl net.ipv4.ip_forward
Barcha jadvallarda prefiks marshrutining yo'qligi siz izlayotgan topilma. Uni tunnelning o'z konfiguratsiyasi orqali qo'shing, shunda keyingi qayta ulanish uni yana o'rnatadi; qo'lda qilingan ip route add sessiya bilan birga yo'qoladi va nosozlikni eng noqulay paytda qaytaradi. Keyingi sakrash tunnel interfeysi yoki VPN o'z sherigi sifatida beradigan manzil, mijozga bog'liq, va sherik manzili eski yozuvdan emas, joriy profildan kelishi kerak.
Halqa, yuz berganda, amalda cheksiz emas: TTL har o'tishda kamayadi va paket vaqt oshdi xabari bilan o'ladi. Shuning uchun takroriy traceroute tsiklni ko'rsatishi mumkin, holbuki shunchaki yo'naltirmaydigan mijoz o'sha paketni jimgina tashlab yuboradi.
3-qadam: yo'naltirishga ruxsat bering va qaytish yo'lini tanlang
Qabul qilish va yo'naltirish turli ruxsatlar. Mijozdagi net.ipv4.ip_forward=1 yadro darajasida o'tishga ruxsat beradi, va xavfsizlik devori qoidasi buni LAN interfeysi bilan tunnel o'rtasida hali ham ruxsat berishi kerak. Mijozning o'z boshqaruv sahifasiga kirishga ruxsat beradigan qoida uzoq LANga o'tishga ruxsat bermaydi, va o'sha xost mahalliy ravishda pingga javob berganda bu farqni o'tkazib yuborish oson.
Uzoq tomon oynasimon muammoga ega. U 192.168.50.0/24 ning ushbu autentifikatsiya qilingan mijoz orqali yetib borishini bilishi kerak. OpenVPN bilan bu odatda server konfiguratsiyasi itarib yuboradigan har bir mijoz uchun marshrut, yoki serverda mijoz orqasidagi LANni e'lon qiladigan mijozga xos faylni bildiradi. Usiz uzoq LAN javobni tashlab yuboradi yoki uni o'z standart shlyuziga, ya'ni internetga yuboradi.
Manba tarjimasi LAN prefiksini e'lon qilish mumkin bo'lmaganda alternativa. Mijozdagi cheklangan masquerade qoidasi manbani tunnel manziliga qayta yozadi va javoblar keyin tabiiy ravishda qaytadi. U shuningdek qaysi LAN xosti so'rov yuborganini yashiradi va o'zi uzoq tomonga ichkariga ulanishlarni boshlashga ruxsat bermaydi. Bu kelishuvni ataylab tanlang, har tomonlama masquerade qo'shib, yon ta'sirni keyinroq topish o'rniga.
4-qadam: ikkala qarorni doimiy qiling, so'ngra haqiqiy yo'lni sinab ko'ring
Har bir marshrutning egasi bor, egasi esa yuklashda yoki qayta ulanishda qayta yaratiladigan konfiguratsiya. Routerda bu statik marshrut yozuvi bo'lishi mumkin; mijozda bu VPN profili, NetworkManager yoki systemd-networkd bo'lishi mumkin. Tunnelni qayta ulab va mijozni qayta yuklab tekshiring, so'ngra o'zgarishga ishonish o'rniga jadvalni qayta o'qing.
Tunnelning tashqi ulanishini tashiydigan standart marshrutni daxlsiz qoldiring. Uni «soddalashtirish» uchun almashtirish shifrlangan yo'lni har qanday ichki trafik undan foydalanishidan oldin buzadi, va alomat o'zgarishdan keyin hech qachon qayta o'rnatilmaydigan tunneldir.
Oddiy LAN xostidan sinang, mijozdan emas, chunki mijozda tug'ilgan so'rov hech qachon routerning birinchi sakrashidan foydalanmaydi. Faqat uzoq LANda mavjud xizmatni keltiring va javobning asosiy qismini tasdiqlang, so'ngra o'tish sodir bo'layotganini ko'rish uchun mijozning hisoblagichlari yoki jurnallarini ko'ring. Xususiy sakrashlarni ko'rsatadigan ichki traceroute yo'naltirishni isbotlaydi, shifrlashni emas: tashqi yo'l alohida kuzatuv, va faqat tunnelning o'z interfeys hisoblagichlari u orqali nima chiqqanini ko'rsatadi.