OpenVPN mssfix: katta uzatishlarda bitta mijoz nima uchun to'xtab qoladi
mssfix tunnel ichida e'lon qilinadigan TCP segment hajmini qayta yozadi. U UDP hajmini o'zgartirmaydi va qiymat faqat sizning versiyangiz aytgan ma'noni bildiradi.
Bitta noutbuk tunnel orqali yuklashda to'xtab qoladi, xuddi shu serverdagi barcha boshqa qurilmalar esa ishlashda davom etadi. Bu naqsh server konfiguratsiyasiga emas, bitta yo'lga ishora qiladi va bu mssfix savoliga odatiy kirish yo'lidir. Variant yordam berishi mumkin, lekin faqat u haqiqatan qayta yozadigan TCP ulanishlariga. Uning qamrovini bilish sizni bitta mijozni qutqarish uchun ishlayotgan serverni o'zgartirishdan saqlaydi.
Variant nimani qayta yozadi
mssfix tunneldan o'tuvchi TCP qo'l siqishlarida e'lon qilinadigan maksimal segment hajmini tahrirlaydi, shunda yuboruvchi tomon inkapsulyatsiya qilingan byudjetga sig'adigan segmentlarni tanlaydi. U qo'l siqishga ta'sir qiladi, ya'ni o'zgarishdan oldin ochilgan ulanish kelishilgan qiymatni saqlab qoladi.
U UDP datagrammalarini kichraytirmaydi va tunnel MTU-sini o'rnatmaydi. Ikki xil muammo bir xil alomat beradi: yo'l chegarasini e'tiborsiz qoldiradigan TCP yuboruvchi va har qanday hajmdagi katta paketlarni jimgina tashlab yuboradigan yo'l. mssfix birinchisini hal qiladi, ikkinchisi uchun hech narsa qilmaydi.
Bu farq umidsizlantiruvchi tajribalarni tushuntiradi. Qora teshikli yo'lda kichikroq qiymat o'rnatish segment hajmini o'zgartiradi, lekin undan keyingi tashlashni emas, shuning uchun uzatish boshqa nuqtada muvaffaqiyatsiz bo'ladi.
Qamrov tunnel ichidagi TCP
Faqat TCP trafigi qayta yoziladi. QUIC sessiyasi, o'yin yoki katta UDP datagrammalarini yuboradigan dastur o'z paket hajmlarini saqlab qoladi va agar aynan shu uzatishlar to'xtab qolsa, tuzatish ko'proq tunnel yoki yo'l MTU-siga tegishli. TCP variantiga qo'l urishdan oldin muvaffaqiyatsiz uzatish qaysi protokoldan foydalanishini o'qing, chunki noto'g'ri qatlamning o'z tuzatishi bor.
Yo'nalish ham muhim. Mijoz sozlamasi shu mijoz tunnelga yuboradigan trafikka ta'sir qiladi, server esa mijozlar tomon yo'naltiradigan oqimlarni qamrab oladi. Agar faqat kiruvchi yuklab olishlar to'xtab qolsa, mijoz tomonidagi qiymat butun voqea emas.
Raqam va kalit so'z ko'chirilmaydi
OpenVPN 2.6 hamjamiyat versiyasi qiymatdan keyin ixtiyoriy kalit so'zni qabul qiladi. mtu bilan raqam IP va UDP sarlavhalarini qo'shgan holda tashqi paket hajmini tavsiflaydi; usiz argument boshqa hisob konvensiyasiga amal qiladi. Shuning uchun versiyalar orasida nusxa ko'chirilgan satr bir xil paket byudjetini tavsiflamaydi. Boshqa nashr uchun qo'llanma o'rniga siz haqiqatan ishga tushiradigan build bilan keladigan qo'llanma sahifasini ko'ring.
Sintaksis shunday ko'rinadi:
mssfix 1400 mtu
1400 ni yo'lingiz uchun tavsiya emas, balki joy egallovchi sifatida qabul qiling. Qiymatni o'lchangan yo'ldan va haqiqatan ishlatiladigan inkapsulyatsiyadan chiqaring va eski versiyalardagi yoki boshqa implementatsiyalardagi mijozlar kalit so'zni rad etishi yoki boshqacha talqin qilishi mumkinligini yodda tuting.
Avval bitta mijozda tasdiqlang
Biror narsani o'zgartirishdan oldin nosoz mashinadan yo'lni o'lchang. Yo'l fragmentatsiyasiz tashiy oladigan foydali yuk — siz izlayotgan raqam:
ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1
Birinchi sinov 28 bayt sarlavha qo'shilganda 1500 baytli paketga sig'adi. Agar u fragmentatsiya xatosi bilan muvaffaqiyatsiz bo'lsa va kichigi muvaffaqiyatli bo'lsa, foydalanish mumkin bo'lgan hajm ular orasida bir joyda, tunnel qo'shimcha xarajati esa yuqoridan ayiriladi.
So'ngra to'xtab qolgan uzatishni yangi ulanishda takrorlang va solishtiring. Agar bitta mijoz yaxshilansa, qolganlari daxlsiz qolsa, muammo qamrovini topdingiz. Agar barcha mijozlar to'xtab qolsa, server tomonidagi qiymatni ko'rib chiqish kerak. Ikki natijaning hech biri hech qachon nosoz yo'lda bo'lmagan uskunada o'zgartirish kiritishni oqlamaydi.