Marshrutlash jadvali dumpi VPN muammolarini hal qilishda eng kam foydali diagnostika va eng ko'p yopishtiriladigani. Qirq satr prefiks sizga mashina nima qila olishini aytadi, muvaffaqiyatsiz so'rov uchun nima qilganini emas. Sizga haqiqatda kerak bo'lgan mexanizm — qidiruv: shu manba va shu manzil berilganda qaysi qoida mos keldi, qaysi jadvalga murojaat qilindi va qaysi interfeys hamda keyingi sakrash chiqdi. Bitta manzil va bitta manbadan boshlang, so'ng jadvalni shu savol bilan o'qing, va o'sha chiqish shovqin o'rniga dalilga aylanadi.

Jadval — nomzodlar to'plami, qaror emas

Har bir yozuv prefiksni va unga mos trafik bilan nima qilishni tavsiflaydi: uni interfeysga yuborish, keyingi sakrashga topshirish yoki tashlab yuborish. O'sha ro'yxatda hech narsa niyat bo'yicha tartiblanmagan va insonga eng aniq ko'rinadigan yozuv har doim yadro tanlaydigan yozuv emas, chunki tanlov eng uzun prefiks mosligiga, teng prefikslar orasida esa metrikaga tayanadi.

Shuning uchun birinchi qadam ro'yxatni o'qish emas, yadrodan so'rash. Qidiruv buyrug'i manzil uchun javob beradi, manba argumenti bilan esa yo'naltirilgan yoki bog'langan ulanish ishlatadigan aniq juftlik uchun javob beradi:

ip route get 198.51.100.10
ip route get 198.51.100.10 from 10.80.0.25
ip -6 route get 2001:db8:10::40

Yuqoridagi har bir manzil hujjat namunasi. Gap javobning shaklida: interfeys, tanlangan manba manzili, shlyuz va yozuv kelgan jadval. Agar bu chiqish siz kutgan interfeysga mos kelmasa, bir buyruq bilan muammoni lokalizatsiya qildingiz, va to'liq jadvalni qancha o'qisangiz ham qaysi nomzod yutganini aytmasdi.

Qidiruv avval qoidalardan, so'ng jadvallardan o'tadi

Linux da qaror ikki bosqichda. Siyosat qoidalari ustuvorlik tartibida baholanadi va mos keladigan birinchi qoida murojaat qilinadigan jadvalni nomlaydi; so'ng o'sha jadval eng uzun prefiks mosligini bajaradi. Qoida manba, manzil, tarmoq devori belgisi, interfeys yoki ularning birikmasi bo'yicha mos kelishi mumkin, shuning uchun asosiy jadval dumpi to'liq aniq va siz tekshirayotgan paket uchun to'liq ahamiyatsiz bo'lishi mumkin.

ip rule show
ip route show table all | head -40
ip route show table 100

Agar qoida VPN hovuzingizdan trafikni 100-jadvalga yuborsa, muhimi 100-jadval, va asosiy jadval — tuzoq. Bu yo'riktorda manbaga asoslangan marshrutlashning ham mexanizmi: bir xil manzil paket qayerdan kelganiga qarab ikki xil javobga ega bo'lishi mumkin, va faqat manba argumentli qidiruv qaysi biri amal qilishini ochib beradi.

IPv6 ning o'z qoidalari va jadvallari bor. Ikkala oilani ishlatadigan dizaynga ikkala qidiruv ham kerak, va ishlaydigan IPv4 javobi ikki stekli mijoz afzal ko'rishi mumkin bo'lgan v6 yo'li haqida hech narsa demaydi.

VPN mijozi nima o'rnatadi

Mijozlar odatda standart marshrutni almashtirmaydi, chunki bu tunnelning o'z tashqi yo'lini buzadi. Ular prefiks uzunligi bilan yutadigan aniqroq narsani o'rnatadi: 0.0.0.0/1 va 128.0.0.0/1 ni qamrab oluvchi yarim-standart juftlik klassik usul, chunki ikkalasi ham 0.0.0.0/0 dan uzun prefiks va birgalikda butun fazoni qamrab oladi. Boshqalar aniq xususiy prefikslar va siyosat qoidasini o'rnatadi, ba'zilari faqat tanlangan trafik ushlanishi uchun belgi qo'shadi.

Shuning uchun "VPN standart marshrutimni o'zgartirmadi" muvaffaqiyatsizlik dalili emas. U haqiqatda nima qo'shganini va ko'rib chiqilayotgan manzil o'sha prefikslar ichida ekanini tekshiring:

ip route show | grep -E 'tun|wg|ppp|ipsec'
ip route get 10.20.30.40 from 10.80.0.25

Dumpda ikkita yarim marshrutni sezmay qolish oson, chunki ular standartga o'xshamaydi. Prefiksni qo'shishni unutgan split-tunnel konfiguratsiyasi siz quvayotgan alomatni aynan hosil qiladi: tunneldan foydalanishi kerak bo'lgan dastur uning o'rniga mahalliy ravishda hal qilib ulanadi. O'rnatilgan prefikslarni foydalanuvchiga haqiqatda kerak bo'lgan manzillar bilan solishtiring, tasodifan sinab ko'rgan manzillar bilan emas. Fayl serverini qamrab olib, uning hal qiluvchisini qamramaydigan split-tunnel ro'yxati ommaviy manzilga hal bo'ladigan va keyin autentifikatsiyada muvaffaqiyatsiz bo'ladigan ulanish hosil qiladi, bu parol muammosiga o'xshaydi, aslida esa marshrut muammosi.

Tashqi marshrut ham omon qolishi kerak

Tunnelning o'zi trafik. Inkapsulyatsiya qilingan yukni tashuvchi paketlar jismoniy interfeys orqali sherikning manziliga boradi, va bu yo'l tunnelga qayta marshrutlanmasligi kerak. Bu sodir bo'lganda, tunnel o'rnatilib, so'ng trafik o'tkazishni to'xtatadigan xarakterli nosozlik paydo bo'ladi, chunki tunnel transporti endi tunnel ichida.

Sherikning manzilini ichki manzilni tekshirgandek tekshiring va u tunnelga emas, jismoniy interfeysga hal bo'lishini tasdiqlang:

ip route get 203.0.113.10
traceroute -n -m 5 203.0.113.10

Rekursiv marshrut, sherikni ushlaydigan siyosat qoidasi yoki to'liq tunnel mijozi almashtirgan standart — uch odatiy sabab. Uchtasi ham tashqi qidiruvda ko'rinadi, va hech biri faktadan keyin olingan asosiy jadval dumpida ko'rinmaydi.

Marshrutlash chiqishi sizga nima aytolmaydi

To'g'ri qidiruv yadro paketni qandaydir oqilona joyga yuborishini bildiradi. Bu tarmoq devori ruxsat berishini, IPsec siyosati qamrab olishini, NAT qoidasi tarjima qilishini yoki uzoq tomonda qaytish marshruti borligini bildirmaydi. Ularning har biri keyingi bosqich, va strongSwan ning yo'naltirish haqidagi eslatmalari paket ikki uchda o'tishi kerak bo'lgan zanjirni tavsiflaydi.

U dastur darajasidagi bog'lanishni ham hisobga olmaydi. Jarayon interfeysga bog'lanishi, belgi qo'yishi yoki o'z hal qiluvchisidan foydalanib, siz sinab ko'rganidan boshqacha hal bo'ladigan nom bilan ulanishi mumkin. Qidiruv to'g'ri bo'lib, ulanish hali ham muvaffaqiyatsiz bo'lsa, keyingi savol — qaysi jarayon bu ishni qilmoqda va o'sha jarayon siz ko'rayotgan jadvalni ko'radimi.

Shuning uchun diagnostikani tartibli saqlang: manzil va manbani nomlang, qidiruvni ishga tushiring, faqat qidiruv nomlagan jadval va qoidani o'qing, so'ng keyingi bosqichni sinang. Bu tartib marshrutlash tekshiruvini bir necha daqiqada saqlaydi va boshqalar kuzata oladigan yozuv qoldiradi, buni yopishtirilgan jadval hech qachon qilmaydi.

O'xshash maqolalar