Mijoz OpenVPN serverining tunnel manziliga ping yuborib javob oladi, so'ng serverning LAN tarmog'idagi xostni sinab ko'radi va hech narsa olmaydi. Bu farq nosozlikni ancha toraytiradi: tunnel ko'tarilgan, uzatish ishlayotgan bo'lishi mumkin, javob esa qaytib olib bormaydigan eshikdan chiqadi. Uch yechim bor va to'g'risi nima ustidan nazorat qilishingizga va nimadan voz kechishga tayyor ekaningizga bog'liq. Quyidagi uch savolga tartib bilan javob bering va tanlov did masalasidan chiqadi.

Avval qaysi yo'nalish buzilganini aniqlang

So'rov tunnel interfeysiga VPN puldan kelgan manba manzili bilan keladi. Server uni LAN tarmog'idagi xostga uzatadi, o'sha xost esa o'z jadvali ko'rsatgan shlyuzga, odatda LAN marshrutizatoriga javob beradi. Agar marshrutizatorning pulga marshruti bo'lmasa, javob o'sha yerda o'ladi yoki internet tomon adashadi.

Ikkalasini ham o'zgartirishdan oldin ikkala mashinani sinab ko'ring. Serverdan uning jadvali mijozga qaysi yo'l bilan yetishini so'rang; LAN tarmog'idagi xostdan u o'sha manzilga qanday yetishini so'rang. Birinchi qidiruv odatda tunnelni, ikkinchisi LAN marshrutizatorini ko'rsatadi va bu farq bir satrdagi nosozlik. Ikki qidiruv brandmauer auditidan arzon va muammoning yo'nalishini aniqlaydi.

ip route get 10.8.0.37
sysctl -n net.ipv4.ip_forward

Agar LAN tarmog'idagi xost allaqachon VPN serverini ko'rsatsa, sizning muammoingiz brandmauer qoidasi yoki MTU chegarasi, qaytish yo'lining yo'qligi emas. Filtrni tuzatish uchun marshrut qo'shmang.

Birinchi savol: uzoq LAN tarmog'ining marshrutizatorini tahrirlay olasizmi?

LAN marshrutizatori sizniki bo'lsa, toza javob VPN pulga VPN serverining LAN manzilini keyingi sakrash sifatida ko'rsatuvchi statik marshrutdir. U mijozlarning manba manzillarini buzmasdan saqlaydi, bu LAN xostlari manzil bo'yicha jurnal yozganda, filtrlaganda yoki tezlikni cheklaganda muhim. U serverda tarjimani ham talab qilmaydi, shuning uchun tunnel toza marshrutlash yo'li bo'lib qoladi. U yaratadigan majburiyat hujjatlashtirishdir, chunki pul, marshrut va server konfiguratsiyasi mos kelishi kerak.

U pulni kimdir o'zgartirgan kuni jimgina ishdan chiqadi. Qiymatni bir marta yozib qo'ying va uch joyning biridagi o'zgarishni uchalasiga o'zgarish deb biling.

Xizmatni joylashtirgan NAS yoki Layer 3 kommutator xuddi shu marshrutni talab qiladi, agar u hammasini shu marshruti bor marshrutizator orqali yubormasa. Quyi tarmoqni tugatuvchi qurilmani tekshiring, faqat internetga qaraganini emas. Kichik tarmoqlarda marshrutlash haqida fikri bor uchta qurilma ko'p uchraydi.

Ikkinchi savol: LAN tarmog'i mijoz manzillarini ko'rishni to'xtata oladimi?

Marshrutizator boshqa birovga tegishli bo'lsa, VPN serverida tarjima qilish hamkorlikni talab qilmaydi. LAN tarmog'idagi xost serverning LAN manzilini ko'radi, unga javob beradi, server esa orqaga tarjima qiladi. Shuning uchun qurilmalar va NAT asosidagi masofaviy kirish rollari shunday yo'l tutadi.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Narxi — tegishlilik: har bir mijozga oid manzillar LAN jurnallaridan yo'qoladi. LAN tarmog'idagi xostdagi har qanday ruxsat ro'yxati unda pulni emas, serverni nomlashi kerak.

Tarjimani hamkorlik mavjud bo'lmaganda tanlang, shunchaki noqulay bo'lganda emas. U mijozni har qanday kelgusi tekshiruvdan yashiradi, shu jumladan qaysi noutbuk ulanish ochganini bilishingiz kerak bo'lgan holatlardan ham. U manzillarni foydali yuklamaga joylashtiruvchi protokollarni ham buzishi mumkin, chunki tarjima sarlavhada yashaydi. Hech bir variant ilg'or emas; ular mulkchilik haqidagi turli savollarga javob beradi.

Uchinchi savol: serverning o'zi boshqa tunnelning mijozi mi?

Boshqa topologiyani tasavvur qiling: VPN serveri tijoriy provayderga ham qo'ng'iroq qiladi, shuning uchun uning ikkita tunneli va ikki manzil to'plami bor. U o'z mijozlari uchun uzatadigan trafik provayder orqali chiqadi, u esa javoblarni pul manzillariga qayta yo'naltirmaydi. Shuning uchun ikkala tunnel ham sog'lom bo'lsa-da javoblar yo'qoladi.

Yechim — chiquvchi tunnelni ham maskalash, provayder faqat serverning tunnel manzilini ko'rsin. Qarama-qarshi yo'nalishga o'z qoidasi kerak, chunki serverning o'z mijoziga ulanish boshlashi boshqa oqim. Bu qoidasiz mijoz marshrutlay olmaydigan manzilga javob beradi. Tor qoidani har qanday keng maskalashdan oldin qo'ying, shunda aniq tarjima yutadi.

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o tun1 -j MASQUERADE
iptables -t nat -A POSTROUTING -d 10.8.0.0/24 -o tun0 -j SNAT --to-source 10.8.0.1

Ko'p interfeysli xostlar mijoz tomondan bir xil ko'rinadigan bog'liq nosozlik qo'shadi. Javob pastroq metrikali interfeysdan chiqadi, chunki manba manzili boshqa jadvaldan tanlangan. Qaytish yo'lini qidiruv bilan tekshiring, oldinga yo'l uni bildiradi deb o'ylamang.

So'ng ikkala yo'nalishni va ikkala o'lchamni tekshiring

O'zgarishdan keyin mijozdan LAN tarmog'idagi xostga, so'ng LAN tarmog'idagi xostdan mijozga ping yuboring. Ikkinchi yo'nalish — odamlar o'tkazib yuboradigan yo'nalish va aynan u to'liq bo'lmagan tarjima qoidasini ochadi. Ikkala natijani vaqt belgisi bilan yozib oling, keyingi regressiya solishtirish mumkin bo'lsin.

So'ng haqiqiy ma'lumotlarni ko'chiring, chunki katta uzatish to'xtab turganda muvaffaqiyatli bo'lgan kichik ping MTU belgisidir. Bu nosozlik marshrutni tuzatganingiz uchun o'zingizni tabriklaganingizdan so'ng darhol paydo bo'ladi.

Nihoyat qayta ishga tushirgandan keyin yana tekshiring. Ish vaqtidagi marshrut va brandmauer buyruqlari uni o'tkazmaydi, keyingi ishga tushirishda yo'qoladigan tuzatish esa konteksti kamroq kimsa tomonidan yana diagnoz qilinadi. O'zgarishni tizimingiz allaqachon qilganidek doimiy qiling, so'ng bir marta ataylab qayta ishga tushiring.

O'xshash maqolalar