WireGuard tiqilib qoladi: MTU chegarasimi yoki yetishmayotgan yo‘naltirish qoidasimi?
Serverdan narigi hech narsa ishlamasa, bu yo‘naltirish yoki qaytish yo‘li muammosi. Kichik so‘rovlar ishlab, kattalari tiqilib qolsa, bu paket hajmining belgisi.
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.
| Observation | Points toward | Where to look |
|---|---|---|
| Nothing beyond the gateway works | Forwarding or return route | Forwarding flag, filter rules, routing table |
| Small works, large stalls | Packet size on the path | Tunnel MTU and the link underneath |
| Only names fail | DNS resolution | The resolver configured for the tunnel |
| Works sometimes | Multiple paths or state expiry | Flow 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.