PPPoE'da OpenVPN: link-mtu, tun-mtu yoki mssfix'ni kamaytirish kerakmi?
Ping ishlaydi, lekin katta sahifalar PPPoE yoki DS-Lite ulanishida qotib qoladi. link-mtu, tun-mtu va mssfix orasida yo'lni o'lchab qaror qiling, taxmin qilib emas.
Ping javob beradi, DNS hal qiladi, va to'liq o'lchamdagi segment kerak bo'lgan har bir sahifa qotib qoladi. O'z inkapsulyatsiyasini qo'shadigan ulanishda yo'l jimgina bir necha o'nlab bayt byudjetini yo'qotadi, va toza Ethernet uchun yozilgan profil chiziq ko'tara olmaydigan paketlarni so'rayveradi. Ulanish sekin emas; u aynan muhim paketlarni tashlab yubormoqda.
Uch variant buni tuzatishi mumkin, va ular turli qatlamlarda ishlaydi. Noto'g'risini tanlash yo hech narsa qilmaydi yoki tunnelni yangicha nozik qiladi, shuning uchun tanlov yo'l aslida nimani qo'llab-quvvatlashidan boshlanadi.
Uch tugma, uch xil qatlam
link-mtu tashqi byudjet: shifrlangan yuk plyus OpenVPN sarlavhasi, UDP sarlavhasi va tashqi IP sarlavhasi. U mashinadan nima chiqishini tavsiflaydi, shuning uchun jismoniy yo'l cheklaydigan raqam shu.
tun-mtu ichki byudjet: trafigingiz ko'radigan interfeys. U yo'l ko'tara oladiganidan aynan tunnel xarajati qadar katta, va OpenVPN odatda uni siz belgilashingizni talab qilish o'rniga o'zi chiqaradi.
mssfix butunlay boshqa mexanizm. U TCP qo'l berishlari paytida e'lon qilinadigan eng katta segment hajmini qayta yozadi, shunda TCP sheriklari inkapsulyatsiyadan keyin sig'adigan segmentlarni tanlaydi. U interfeys MTU'sini o'zgartirmaydi va UDP'ga hech qanday ta'sir qilmaydi.
Agar link-mtu'ni aniq belgilasangiz, OpenVPN ichki MTU'ni chiqarish uchun o'z xarajatini ayiradi. Bu xarajat qat'iy konstanta emas; u shifr va autentifikatsiyaga bog'liq, shuning uchun forumdan ko'chirilgan qiymat boshqa profilda noto'g'ri bo'lishi mumkin. link-mtu va tun-mtu ikkalasini belgilash klientga ikkita ziddiyatli ko'rsatma beradi.
Har qanday raqamni tanlashdan oldin yo'lni o'lchang
Tunnel ichidan emas, jismoniy interfeysdan o'lchang, va ping yukni bildiradi, paket hajmini emasligini yodda tuting. Yukni 1500 baytli freym bilan solishtirishdan oldin IPv4 va ICMP sarlavhalari uchun 28 bayt qo'shing, va sherik boshqa raqam bildirganda bu tuzatishni yodda tuting.
Linux klientida ping -M do -s 1472 fragmentatsiyani taqiqlaydi va paket juda katta bo'lsa muvaffaqiyatsiz bo'ladi. U o'tguncha yukni kamaytiring, so'ng yo'l MTU'sini olish uchun 28 qo'shing. PPPoE 8 bayt turadi, shuning uchun DSL'da 1492 normal. DS-Lite va ba'zi mobil yo'llar 40 yoki undan ko'p turadi, va javob odatda nominal ulanish tezligi ko'rsatganidan past bo'ladi.
Agar har bir ping hajmi muvaffaqiyatli bo'lsa-yu, katta uzatmalar hali ham qotib qolsa, oddiy hajm chegarasi emas, qora tuynukdan shubhalaning. Kerakli fragmentatsiya haqidagi ICMP xabari yo'lda qayerdadir filtrlanadi, shuning uchun jo'natuvchi hech qachon kichraytirishni o'rganmaydi, va faqat katta segment kerak bo'lgan oqimlar buni sezadi.
Avval TCP'ni cheklang, keyin tunnelni kichraytiring
TCP qo'l berishlari mssfix tegadigan yagona narsa, shuning uchun u odatda birinchi sinab ko'rish uchun eng kam xalaqit beradigan boshqaruv bo'ladi. Uni yo'lning haqiqiy byudjetidan biroz pastroq belgilang, ikki tomon kelishishi uchun serverdan ham xuddi shu qiymatni yuboring, va katta yuklab olishni qayta sinab ko'ring. Agar qotish yo'qolsa, muammo TCP segment hajmi edi, va boshqa hech narsani o'zgartirish kerak emas.
Ta'sirlangan trafik TCP bo'lmasa, ichki MTU'ni kamaytiring. UDP xizmati, tunnel ichidagi tunnel yoki to'liq o'lchamli datagrammalar yuboradigan dastur MSS cheklovidan keyin ham muvaffaqiyatsiz bo'laveradi, chunki uning paket hajmini hech narsa qayta yozmaydi. Bu holat uchun tun-mtu'ni kamaytiring, yoki link-mtu'ni belgilab, klient ichki qiymatni chiqarishiga ruxsat bering, lekin hech qachon ikkalasini ham emas.
Eski fragmentatsiya variantiga qo'l urmang. U tunnel ichida paketlarni bo'lardi, xarajat qo'shardi va yaxshi sabablarga ko'ra bekor qilingan; zamonaviy OpenVPN yo'lning aniq tavsiflanishini kutadi.
Nega kichik sinovlar ishlashda davom etadi
DNS so'rovlari, ICMP aks sadosi va TCP qo'l berishlari muvaffaqiyatsiz bo'ladigan hajmdan ancha past. Shuning uchun tunnel har bir tezkor sinovda sog'lom ko'rinadi, TLS qo'l berishlari va HTTP javoblari esa jimgina muvaffaqiyatsiz bo'ladi. Aynan shu birikma, ishlaydigan traceroute va birinchi katta javobda qotib qoladigan brauzer, izlash kerak bo'lgan belgidir. Yangi profilga qo'l urishdan oldin to'liq o'lchamli sinovga qo'l uring.
Muvaffaqiyatsiz bo'lgan trafik bilan tekshiring. Katta sahifani oling, agar ta'sirlangan xizmat shu bo'lsa to'liq o'lchamli UDP datagramma yuboring, va boshqa ulanishdagi ikkinchi klientdan takrorlang. O'lchangan yo'l MTU'sini va tanlagan qiymatingizni yozib qo'ying, aks holda profilga keyingi tegadigan odam bu raqamni o'zboshimchalik deb hisoblaydi.
IPv6 tunnel ustidan ketayotganda ichki MTU'ni hech qachon 1280 dan pastga tushirmang, chunki bu har bir IPv6 ulanish ko'tarishi shart bo'lgan minimaldir. Kichikroq MTU yo'l haqidagi fakt, his bilan sozlanadigan unumdorlik parametri emas.