OpenVPN mssfix: bakit natigil ang isang kliyente sa malalaking paglilipat
Isinusulat muli ng mssfix ang laki ng TCP segment na inaanunsyo sa loob ng tunnel. Hindi nito binabago ang UDP, at ang halaga ay nangangahulugan lamang ng sinasabi ng iyong bersyon.
Isang laptop ang natigil sa pag-upload sa tunnel habang ang bawat ibang aparato sa parehong server ay patuloy na gumagana. Ang pattern na iyon ay tumuturo sa isang landas, hindi sa configuration ng server, at ito ang karaniwang pasukan sa tanong ng mssfix. Makakatulong ang opsyon, ngunit para lamang sa mga koneksyong TCP na talagang muling isinusulat nito. Ang pag-alam sa saklaw nito ay pumipigil sa iyong baguhin ang gumaganang server para iligtas ang isang kliyente.
Ano ang muling isinusulat ng opsyon
Binabago ng mssfix ang pinakamataas na laki ng segment na inaanunsyo sa mga handshake ng TCP na dumadaan sa tunnel, upang ang nagpapadalang panig ay pumili ng mga segment na kasya sa naka-encapsulate na badyet. Gumagana ito sa handshake, ibig sabihin ang koneksyong binuksan bago ang pagbabago ay pinapanatili ang halagang napagkasunduan.
Hindi nito pinapaliit ang mga datagram ng UDP, at hindi nito itinatakda ang MTU ng tunnel. Dalawang magkaibang problema ang gumagawa ng parehong sintomas: isang nagpapadalang TCP na hindi pinapansin ang limitasyon ng landas, at isang landas na tahimik na nagtatapon ng malalaking packet sa anumang laki. Tinutugunan ng mssfix ang una at wala itong ginagawa para sa pangalawa.
Ipinapaliwanag ng pagkakaibang iyon ang mga nakakadismayang eksperimento. Ang pagtatakda ng mas maliit na halaga sa isang landas na may itim na butas ay nagbabago ng laki ng segment ngunit hindi ang pagtatapong sumusunod, kaya nabibigo ang paglilipat sa ibang punto.
Ang saklaw ay TCP sa loob ng tunnel
Tanging trapiko ng TCP ang muling isinusulat. Ang sesyon ng QUIC, laro o application na nagpapadala ng malalaking datagram ng UDP ay pananatilihin ang sarili nitong laki ng packet, at kung iyon ang mga paglilipat na natigil, ang solusyon ay mas angkop sa MTU ng tunnel o landas. Basahin kung anong protocol ang ginagamit ng nabigong paglilipat bago sumunggab sa opsyon ng TCP, dahil ang maling layer ay may sariling solusyon.
Mahalaga rin ang direksyon. Ang setting ng kliyente ay nakakaapekto sa trapikong ipinapadala ng kliyenteng iyon papasok sa tunnel, habang ang server ay sumasakop sa mga daloy na ipinapasa nito patungo sa mga kliyente. Kung tanging mga papasok na download ang natigil, ang halaga sa panig ng kliyente ay hindi ang buong kuwento.
Ang numero at keyword ay hindi maililipat
Ang bersyong pangkomunidad ng OpenVPN 2.6 ay tumatanggap ng opsyonal na keyword pagkatapos ng halaga. Sa mtu, inilalarawan ng numero ang laki ng panlabas na packet kasama ang mga header ng IP at UDP; kung wala ito, ang argumento ay sumusunod sa ibang kombensyon ng pagbilang. Kaya ang linyang kinopya sa pagitan ng mga bersyon ay hindi naglalarawan ng parehong badyet ng packet. Tingnan ang pahina ng manual na kasama ng build na aktwal mong pinapatakbo, sa halip na tutorial para sa ibang release.
Ganito ang hitsura ng syntax:
mssfix 1400 mtu
Ituring ang 1400 bilang placeholder, hindi bilang rekomendasyon para sa iyong landas. Kunin ang halaga mula sa sinukat na landas at sa encapsulation na aktwal na ginagamit, at tandaan na ang mga kliyente sa mas lumang bersyon o ibang implementasyon ay maaaring tanggihan o bigyang-kahulugan nang iba ang keyword.
Kumpirmahin muna sa nag-iisang kliyente
Sukatin ang landas mula sa nabigong makina bago baguhin ang anuman. Ang payload na kayang dalhin ng landas nang walang fragmentation ang numerong hinahanap mo:
ping -M do -s 1472 10.8.0.1
ping -M do -s 1400 10.8.0.1
Ang unang pagsubok ay kasya sa packet na 1500 byte kapag naidagdag ang 28 byte na header. Kung nabigo ito sa error ng fragmentation at nagtagumpay ang mas maliit, ang magagamit na laki ay nasa pagitan ng dalawa, at ang overhead ng tunnel ay ibinabawas mula sa itaas.
Pagkatapos ulitin ang paglilipat na natigil, sa bagong koneksyon, at ihambing. Kung bumuti ang nag-iisang kliyente habang ang iba ay hindi nagalaw, natagpuan mo ang saklaw ng problema. Kung natigil ang lahat ng kliyente, ang halaga sa panig ng server ang dapat suriin. Wala sa dalawang resulta ang nagbibigay-katwiran sa pagbabago sa hardware na hindi kailanman naging bahagi ng nabigong landas.