Odat WireGuard noto‘g‘ri ishlay boshlashi bilanoq MTUni tushirishdir va bu odat boshqa nosozlikni yashiradi. Yo‘naltirmaydigan darvoza va katta paketlarni tashimaydigan yo‘l ajratib olinadigan naqshlar hosil qiladi: biri ikkala yo‘nalishda va har qanday hajmda muvaffaqiyatsiz bo‘ladi, ikkinchisi kichik so‘rovlarda omon qoladi va kattalarida o‘ladi. Har qanday sonni o‘zgartirishdan oldin qaysi shaklga egaligingizni aniqlang. Sinov arzon va mumkin bo‘lgan sabablarning yarmini yo‘q qiladi.

Ikki nosozlik, ikki xil shakl

Yo‘naltirish muammosi serverdan keyin darhol ko‘rinadi. Qo‘l berish muvaffaqiyatli bo‘ladi, tunnel manzili javob beradi, va darvoza orqasidagi hech narsaga kichik so‘rov bilan ham yetib bo‘lmaydi. Paket serverga yetdi va uzatilmadi, yoki javobning qaytish yo‘li yo‘q edi.

Hajm muammosi faqat chegara ustida ko‘rinadi. DNS, TCP qo‘l berish va kichik API chaqiruvi ishlaydi, fayl yuklab olish yoki katta javob esa tiqilib qoladi. Sig‘gan paketlar boshidan oxirigacha yetdi, sig‘maganlari esa foydali hisobotsiz bir joyda tashlandi.

Bu ta’riflar turli odamlar va turli konfiguratsiya fayllariga ishora qiladi, shuning uchun shaklni o‘lchash taxmindan qimmatroq. Darvozaga bitta ping ularni ajrata olmaydi.

Biror narsani kichraytirishdan oldin yo‘naltirishni istisno qiling

Darvoza o‘zini emas, uning narigidagi manzilni sinab ko‘ring. Server tunnel manziliga ping faqat interfeys ishlayotganini va tunnelni tugatadigan mashinaga yetayotganingizni isbotlaydi. Kengroq tarmoq trafigi o‘sha mashinada IP yo‘naltirish yoqilganiga va uzatilgan oqimga ruxsat beruvchi firewallga bog‘liq. Ikkalasi ham to‘g‘ri bo‘lishi kerak, va agar biri noto‘g‘ri bo‘lsa, xuddi shu sukunat yuzaga keladi.

Qaytish marshrutlanishi ham shunchalik muhim. Agar manzil tarmog‘i mijozning tunnel manziliga qanday yetishni bilmasa, so‘rov keladi va javob yo‘qoladi, mijoz esa tashlab yuborilgan yo‘naltirishga o‘xshash vaqt tugashini xabar qiladi.

Dizayn manzillarni tarjima qilishdan foydalanadigan joyda tarjima qoidasi o‘sha qaytish yo‘lining bir qismidir. MTU muammosini quvayotganda uni olib tashlash ishlayotgan dizaynni buzilganga aylantiradi, shuning uchun tahrirlashdan oldin mavjud qoidalarni o‘qing.

Uzilish qayerdan boshlanishini o‘lchang

Avval yo‘naltirish holati va filtr qoidalarini o‘qing. Bular faqat o‘qish uchun tekshiruvlar va arzon savolga javob beradi:

sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
ip route get 10.30.0.9

Keyin mijozdan darvoza narigidagi hostga qarab don’t-fragment biti bilan hajmlarni sinang:

ping -M do -s 1200 10.30.0.9
ping -M do -s 1400 10.30.0.9

Agar birinchi tekshiruv ishlasa, ikkinchisi fragmentatsiya xatosi bilan muvaffaqiyatsiz bo‘lsa, yo‘l sizga o‘zining ishlatishga yaroqli hajmini aytmoqda. Agar ikkalasi ham ishlamasa, siz yo‘naltirish yoki marshrutlashni ko‘ryapsiz, MTU esa o‘zgartiriladigan o‘zgaruvchi emas.

ObservationPoints towardWhere to look
Nothing beyond the gateway worksForwarding or return routeForwarding flag, filter rules, routing table
Small works, large stallsPacket size on the pathTunnel MTU and the link underneath
Only names failDNS resolutionThe resolver configured for the tunnel
Works sometimesMultiple paths or state expiryFlow selection and NAT state

Isbotlagan qatlamni tuzating

Yo‘naltirish nosozlik bo‘lsa, tuzatish dizayn ruxsat berganicha tor ifodalangan yo‘naltirish qoidasi yoki marshrutdir. Hajm nosozlik bo‘lsa, tuzatish aynan shu yo‘ldagi inkapsulyatsiyani hisobga oladigan MTU bo‘lib, u ehtiyoj sezgan interfeysga qo‘llanadi, flotdagi har bir adapterga emas.

Qanday bo‘lmasin, keyin o‘sha vazifani o‘sha manzilga qaratib takrorlang. Agar asl katta uzatish endi tugasa, o‘zgartirish muvaffaqiyatsiz bo‘lgan qatlamni hal qildi. Agar faqat kichik tekshiruv yaxshilansa, siz simptomni davoladingiz va haqiqiy chegara hali ham joyida.

O‘zgartirishdan oldin qaysi shaklni kuzatganingizni yozing. Tuzatish yoniga yozilgan o‘sha bitta satr keyingi odamni hech qachon muammo bo‘lmagan MTUni tushirishdan saqlaydi.

O'xshash maqolalar