PPPoE üzərində OpenVPN: link-mtu, tun-mtu yoxsa mssfix azaldılsın?
Ping işləyir, lakin böyük səhifələr PPPoE və ya DS-Lite xəttində dayanır. link-mtu, tun-mtu və mssfix arasında seçimi yolu ölçməklə edin, təxminlə deyil.
Ping cavab verir, DNS həll olunur, lakin tam ölçülü seqmentə ehtiyac duyan hər səhifə donur. Öz inkapsulyasiyasını əlavə edən xəttdə yol səssizcə bir neçə onlarla bayt büdcə itirir və təmiz Ethernet üçün yazılmış profil xəttin daşıya bilmədiyi paketləri istəməyə davam edir. Bağlantı yavaş deyil; o, məhz əhəmiyyətli paketləri atır.
Üç seçim bunu düzəldə bilər və onlar müxtəlif qatmalarda işləyir. Səhv olanı seçmək ya heç nə etmir, ya da tuneli yeni bir şəkildə kövrək edir, buna görə seçim yolun həqiqətən nəyi dəstəklədiyindən başlayır.
Üç düymə, üç fərqli qat
link-mtu xarici büdcədir: şifrələnmiş yük üstəgəl OpenVPN başlığı, UDP başlığı və xarici IP başlığı. O, maşından nəyin çıxdığını təsvir edir, buna görə də fiziki yolun məhdudlaşdırdığı rəqəm məhz budur.
tun-mtu daxili büdcədir: trafikinizin gördüyü interfeys. O, yolun daşıya biləcəyindən tam tunel yükü qədər böyükdür və OpenVPN adətən onu sizin təyin etməyinizə məcbur etmək əvəzinə özü törədir.
mssfix tamamilə fərqli bir mexanizmdir. TCP əl sıxmaları zamanı elan edilən maksimum seqment ölçüsünü yenidən yazır ki, TCP həmkarları inkapsulyasiyadan sonra uyğun seqmentlər seçsin. O, interfeys MTU-nu dəyişmir və UDP-yə heç bir təsir göstərmir.
Əgər link-mtu açıq şəkildə təyin etsəniz, OpenVPN daxili MTU-nu törətmək üçün öz yükünü çıxır. Bu yük sabit deyil; şifrə və autentifikasiyadan asılıdır, buna görə də forum yazısından kopyalanmış dəyər başqa profildə səhv ola bilər. Həm link-mtu, həm də tun-mtu təyin etmək müştəriyə iki ziddiyyətli göstəriş verir.
Hər hansı rəqəmi seçməzdən əvvəl yolu ölçün
Fiziki interfeysdən ölçün, tunelin içindən deyil, və ping-in paket ölçüsünü deyil, yükü bildirdiyini unutmayın. Yükü 1500 baytlıq çərçivə ilə müqayisə etməzdən əvvəl IPv4 və ICMP başlıqları üçün 28 bayt əlavə edin və həmkar fərqli rəqəm bildirdikdə bu düzəlişi yadda saxlayın.
Linux müştərisində ping -M do -s 1472 fraqmentasiyanı qadağan edir və paket çox böyükdürsə uğursuz olur. Yükü keçənə qədər azaldın, sonra yol MTU-sunu almaq üçün 28 əlavə edin. PPPoE 8 bayt tutur, buna görə DSL-də 1492 normaldır. DS-Lite və bəzi mobil yollar 40 və ya daha çox tutur və cavab adətən nominal keçid sürətinin təklif etdiyindən aşağı olur.
Hər ping ölçüsü uğurludursa, lakin böyük ötürmələr hələ də donursa, sadə ölçü limiti əvəzinə qara dəlikdən şübhələnin. ICMP fraqmentasiya lazımdır mesajı yolun hansısa yerində süzülür, buna görə göndərən heç vaxt kiçilməyi öyrənmir və yalnız böyük seqmentə ehtiyac duyan axınlar bunu hiss edir.
Əvvəlcə TCP-ni sıxın, sonra tuneli kiçildin
TCP əl sıxmaları mssfix-in toxunduğu yeganə şeydir, bu da onu adətən ilk sınanacaq ən az dağıdıcı nəzarət edir. Onu yolun real büdcəsindən bir az aşağı qoyun, hər iki tərəfin razılaşması üçün eyni dəyəri serverdən təyin edin və böyük yükləməni yenidən yoxlayın. Donma keçərsə, problem TCP seqment ölçüsü idi və başqa heç nəyi dəyişmək lazım deyil.
Təsirlənən trafik TCP deyilsə, daxili MTU-nu aşağı salın. UDP xidməti, tunel daxilində tunel və ya tam ölçülü verinqramlar göndərən tətbiq MSS sıxmasından sonra da uğursuz olmağa davam edəcək, çünki heç nə onun paket ölçüsünü yenidən yazmır. Bu halda tun-mtu-i azaldın və ya link-mtu-i təyin edib daxili dəyəri müştəriyə törətməyə icazə verin, amma heç vaxt ikisini birlikdə etməyin.
Köhnə fraqmentasiya seçiminə əl atmayın. O, paketləri tunelin içində parçalayır, yük əlavə edirdi və yaxşı səbəblərdən istifadədən çıxarılıb; müasir OpenVPN əvəzinə yolun dəqiq təsvir edilməsini gözləyir.
Kiçik yoxlamalar niyə işləməyə davam edir
DNS sorğuları, ICMP əks-sədaları və TCP əl sıxmaları uğursuz ölçüdən çox aşağıdır. Buna görə tunel hər sürətli testdə sağlam görünür, halbuki TLS əl sıxmaları və HTTP cavabları səssizcə uğursuz olur. İşləyən traceroute və ilk böyük cavabda donan brauzer — bu birləşmə axtarılmalı əlamətdir. Yeni profilə əl atmazdan əvvəl tam ölçülü yoxlamaya əl atın.
Uğursuz olan trafiklə yoxlayın. Böyük səhifə götürün, təsirlənən xidmət budursa, tam ölçülü UDP verinqramı göndərin və fərqli xəttdə ikinci müştəridən təkrarlayın. Ölçülmüş yol MTU-sunu və seçdiyiniz dəyəri qeyd edin, çünki profilo toxunacaq növbəti şəxs əks halda rəqəmi təsadüfi hesab edəcək.
IPv6 tuneldən keçdikdə daxili MTU-nu heç vaxt 1280-dən aşağı salmayın, çünki bu, hər IPv6 keçidinin daşımalı olduğu minimumdur. Daha kiçik MTU yol haqqında bir faktdır, hisslə tənzimlənən performans ayarı deyil.