VPN tarmog'iga olib boradigan yo'nalish chalkashtirish oson bo'lgan ikki manzilni olib yuradi: paket yetib bormoqchi bo'lgan manzil prefiksi va uni bir qadam yaqinlashtiradigan keyingi sakrash. LAN xostida bu keyingi sakrash siz haqiqatan ham o'sha bo'g'inda yetib bora oladigan marshrutizator bo'lishi kerak. Uzoqdagi VPN manzili keyingi sakrash emas, u sizning xayolingizdagi manzilga qanchalik to'g'ri mos kelsa ham.

Ushbu qo'llanma odatiy holatni qamrab oladi: 192.168.20.0/24 dagi noutbuk, LAN manzili 192.168.20.5 bo'lgan VPN shlyuzi va shu shlyuz ortidagi uzoq tarmoq 10.70.0.0/24. Quyidagi barcha buyruqlar, agar boshqacha aytilmagan bo'lsa, siz noutbukda deb hisoblaydi.

Ikki manzil, bitta yo'nalish

Ko'zda tutilgan yozuv — 10.70.0.0/24 via 192.168.20.5. Prefiks paket qayerga ketayotganini, via manzili esa uni u yerga kim olib borayotganini bildiradi. Yadro shlyuziga siz ko'rsatgan interfeys orqali yetib bora olmaydigan yo'nalishni o'rnatishdan bosh tortadi va bu bosh tortish butun mazmun: yetib boriladigan bo'lish uchun tunnel kerak bo'lgan keyingi sakrash tunnelni quradigan keyingi sakrash bo'la olmaydi.

Shuning uchun birinchi tekshiruv «shlyuz ishlayaptimi» emas, «shlyuz shu bo'g'indami» degan savol. Noutbukning o'z subneti, uning ARP yoki qo'shni yozuvi va yo'nalishdagi interfeys — hammasi mos kelishi kerak. Faqat 10.70.0.0/24 ichida mavjud bo'lgan manzil ikkinchi yo'nalishning manzili bo'lishi mumkin, lekin birinchisining via hech qachon bo'la olmaydi.

Keyingi sakrash shlyuzni nimaga majbur qiladi

Noutbukda yo'nalishni o'rnatish faqat birinchi uzatishni hal qiladi. Keyin shlyuzga o'z yo'li kerak: yoqilgan uzatish, 10.70.0.0/24 uchun tunnel yo'nalishi va kim foydalanishi mumkinligini belgilaydigan har qanday kirish siyosati. Linuxda bu net.ipv4.ip_forward=1 va tunnel yo'nalishi; uning oldidagi xavfsizlik devori uzatiladigan oqimga ruxsat beruvchi qoidani talab qiladi.

Qaytish yo'nalishi — odamlar unutadigan qism. Uzoq tomon 192.168.20.0/24 ga qaytish yo'nalishiga ega bo'lishi kerak, yoki dizayn noutbukning manbasini uzoq tomon biladigan narsaga aylantirishi kerak. Shlyuzdan ishlaydigan ping shlyuz uzoq tarmoqqa yetib borishini isbotlaydi; noutbuk paketlari qaytish safarida omon qoladimi-yo'qmi, bu haqda hech narsa demaydi.

Qidiruvni yuboruvchi xostdan tekshiring

Yadrodan qaysi keyingi sakrashni tanlashini so'rang va javobdagi interfeysni o'qing:

ip route get 10.70.0.10
ip route show 10.70.0.0/24
ip neigh show 192.168.20.5

Agar qidiruv shlyuz va LAN interfeysini xabar qilsa, birinchi qism ko'zda tutilganidek sozlangan. Agar u tunnel qurilmasini xabar qilsa, jadvalda oldinroq turgan narsa aniqroq va u g'alaba qozonmoqda. Agar yo'nalish umuman o'rnatilmasa, yadro sizga shlyuzga yetib bo'lmayotganini aytmoqda va bu xabar har qanday paket tutishdan foydaliroq.

Keyin sinovni to'g'ri joydan takrorlang. Shlyuzda yaratilgan so'rov shlyuzning o'z manba manzilidan foydalanadi, bu esa yo'qolgan qaytish yo'nalishini yoki faqat ayrim manbalarga ruxsat beruvchi siyosatni yashirishi mumkin. ip-route qo'llanmasi manzil, shlyuz va onlink bekor qilishini ajratadi, bekor qilishni ishlatishdan oldin tushunishga arziydi.

Yetib borish imkoniyatini soxtalashtirish uchun onlink ishlatmang

onlink yadroga shlyuzning yetib borish tekshiruvini o'tkazib yuborishni va baribir u yerga yuborishni aytadi. U yo'l yaratmaydi, mavjud bo'lmagan manzil uchun ARP ni hal qilmaydi va uzoq marshrutizatorni sizning Ethernet segmentingizda javob berishga majbur qilmaydi. Javob beradigan, lekin ulangan subnetda o'tirmaydigan shlyuzlar uchun u qonuniy, va siz tushuntirmagan xatoni jim qilish uchun ishlatilsa — tuzoq.

Agar yo'nalish faqat onlink bilan o'rnatilsa, keyingi savol — shlyuz nima uchun siz o'ylagan joyda emas. Noto'g'ri VLAN, noto'g'ri interfeysdagi ikkinchi manzil yoki oxirgi oktetdagi xato — bularning hammasi shuni keltirib chiqaradi va ularning har biri trafik oqa boshlaganda qaytish yo'lini ham buzadi.

Nuqta-nuqtaga tunnellar Ethernet emas

Tunnel qurilmasi ARP qilmaydi va ko'pincha qo'shnilarning mazmunli subnetiga ega emas. Uning yo'nalishlari ko'pincha 10.70.0.0/24 dev tun0 ga o'xshaydi, hech qanday via siz, chunki sherik yagona boshqa chekka nuqta. O'sha jadvalga LAN uslubidagi via ni ko'chirish yadro rad etishi mumkin bo'lgan yo'nalishni yoki, undan ham yomoni, sherik hech qachon javob bermaydigan manzilga ishora qiluvchi yo'nalishni hosil qiladi.

Qo'llanmada ikki modelni alohida saqlang: LAN yo'nalishi yetib boriladigan shlyuzga ega, tunnel yo'nalishi interfeys va sherikka ega. WireGuard, OpenVPN va IPsec hammasi biroz boshqacha shakllarni ko'rsatadi, shuning uchun bitta xostdan umumlashtirish o'rniga haqiqatda ishlatgan shaklni yozib qo'ying.

Qo'shing, tasdiqlang, orqaga qaytaring

Butun o'zgarish — uchta buyruq va bitta tekshiruv, va u aynan shu tartibda yozilishi kerak:

sudo ip route add 10.70.0.0/24 via 192.168.20.5
ip route get 10.70.0.10
ping -c 3 10.70.0.10
sudo ip route del 10.70.0.0/24 via 192.168.20.5

Yo'lni tasdiqlang, bitta manzilni tasdiqlang, so'ngra o'zgarish xostni siz kutmagan tarzda yetib bo'lmaydigan qilib qo'ysa, o'chirish satrini tayyor saqlang. Agar yo'nalish qayta yuklashdan keyin ham qolishi kerak bo'lsa, uni shell profiliga emas, xostning tarmoq konfiguratsiyasiga joylashtiring va unga tayanishdan oldin qayta yuklashni sinab ko'ring. Faqat o'zini qo'shgan shell ichida mavjud bo'lgan yo'nalish — ikki marta tuzatadigan yo'nalishingiz.

O'xshash maqolalar