Nima uchun teng xarajatli marshrutlar VPN nosozliklarini ko‘rishni qiyinlashtiradi
Bir necha tunnel bir xil xarajatni bo‘lishganda, har bir oqim boshqasini tanlashi mumkin. Muvaffaqiyatli ping ilovangiz aslida ishlatadigan yo‘l haqida hech narsa demaydi.
Foydalanuvchi ichki ilova bir mashinadan ishlayotganini, boshqasidan esa ishlamayotganini xabar qiladi, vaholanki shlyuzdan ishga tushirgan ping ikkala holatda ham muvaffaqiyatli. Bir xil xarajatli bir necha tunnel bo‘lganda bu qarama-qarshilik emas. Har bir oqim o‘zining keyingi sakrashiga joylashtiriladi, shuning uchun sizning tekshiruvingiz va foydalanuvchi sessiyasi shunchaki turli yo‘llardan foydalanayotgan bo‘lishi mumkin. Quyidagi tahlil biror narsani o‘zgartirishdan oldin shu tanlovni qayta hosil qiladi.
Bitta ping, bir necha mumkin bo‘lgan yo‘l
Marshrutda bir xil xarajatda bir nechta keyingi sakrash bo‘lsa, router har bir paket uchun bittasini tanlashi kerak. Aksariyat amalga oshirishlar paket maydonlarini xeshlaydi, odatda manba va manzil adreslarini protokol va portlar bilan birga, javoblar bir xil yo‘lda qolishi uchun. Turli ilovalar, hatto bitta ilovaning turli ulanishlari ham turli xesh hosil qiladi.
Shu sababli shlyuzdan olingan diagnostika juda kam narsani isbotlaydi. Shlyuzning o‘z tekshiruvi o‘z adreslari va portlariga, demak o‘z xeshiga ega. U sog‘lom tunneldan joy olishi mumkin, foydalanuvchi esa buzilgan tunneldan joy olishda davom etadi.
Platforma keyingi sakrashni qanday tanlaydi
Tanlovni taxmin qilish o‘rniga qayta hosil qiling. Yadrodan muvaffaqiyatsiz sessiya bilan bir xil manba va manzil uchun qaysi marshrutni ishlatishini so‘rang. Bu qidiruv oddiy manzil qidiruvi e’tiborsiz qoldiradigan maydonlarni ham qamrab oladi. Uni ishlayotgan klientdan ham ishga tushiring va ikkala javobni solishtiring:
ip route get 10.20.5.7 from 10.20.0.14
Yangi iproute2 nashrlari protokol va manzil portini ham qabul qiladi, bu xesh ularni qamrab olganda muhim. O‘sha chiqishni ishlayotgan klientdan olingan xuddi shu qidiruv bilan solishtiring, va farq sizga yetishmagan dalildir.
| Observation | Likely cause | First check |
|---|---|---|
| Ping works, application fails | A different flow hash selects another tunnel | Per-flow lookup from the client's address |
| Some users fail, others do not | One tunnel lacks a prefix or selector | Compare both tunnels' installed routes |
| Fails only at larger sizes | Tunnels have different effective MTU | Probe the same size over each path |
| Fails after a reconnect | Stateful asymmetry between paths | Session state on both gateways |
Muvaffaqiyatsiz oqimni kuzatib boring, marshrut jadvalini emas
Marshrut jadvali ikkala tunnelni ham sanaydi va ta’rif bo‘yicha to‘g‘ri ko‘rinadi. Savol — tanlangandan keyin har bir tunnel paket bilan nima qiladi. Ikkalasi ham bir xil himoyalangan prefikslarni, bir xil uzatish ruxsatini va o‘sha klientga yetib boradigan qaytish yo‘lini olib yurishini tekshiring.
O‘rtadagi holatga ega qurilmalarga e’tibor bering. Agar so‘rov bir tunneldan chiqib, javob boshqasidan qaytsa, asl oqimni hech qachon ko‘rmagan firewall yoki NAT uni tashlab yuboradi. Ikkala tunnel ham trafikni to‘g‘ri uzatadi, va ulanish baribir muvaffaqiyatsiz tugaydi.
Har bir yo‘l uchun MTU ni ham tekshiring. Qo‘shimcha inkapsulyatsiyali yo‘l foydalanish mumkin bo‘lgan o‘lchamni kichraytiradi, va bir tunnelda muvaffaqiyatli bo‘lgan uzatish ikkinchisida kichigi buziladigan aynan shu o‘lchamda to‘xtaydi.
Bir vaqtda bitta yo‘lni solishtiring
Dizayn texnik xizmatga ruxsat beradigan joyda bitta tunnelni xizmatdan chiqaring va foydalanuvchi vazifasini takrorlang. Agar nosozlik yo‘qolsa, muammo siz olib tashlagan yo‘lga tegishli, va keyingi qadam marshrutlash jadvalini qayta ko‘rish emas, balki uning konfiguratsiyasini qo‘shnisi bilan solishtirishdir.
Takroriy ping emas, haqiqiy ilovani solishtiring. Nosozlik ma’lum bir keyingi sakrashga, paket o‘lchamiga yoki qayta ulanishdan keyingi o‘tishga ergashishini yozib qo‘ying, chunki bu uchta naqsh turli tuzatishlarga ishora qiladi.
Nihoyat, yo‘llar nima uchun ekvivalent hisoblanishini va nosozlik ulardan birini xizmatdan qanday chiqarishi kerakligini yozing. Ko‘p yo‘llilik faqat yo‘llar haqiqatan almashtiriladigan bo‘lganda xavfsiz, va bu taxmin qilish emas, tekshirishga arziydigan dizayn bayonotidir.