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.

ObservationLikely causeFirst check
Ping works, application failsA different flow hash selects another tunnelPer-flow lookup from the client's address
Some users fail, others do notOne tunnel lacks a prefix or selectorCompare both tunnels' installed routes
Fails only at larger sizesTunnels have different effective MTUProbe the same size over each path
Fails after a reconnectStateful asymmetry between pathsSession 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.

O'xshash maqolalar