Ping respondas, DNS solvas, kaj ĉiu paĝo, kiu bezonas plengrandan segmenton, haltiĝas. Sur ligo, kiu aldonas sian propran enkapsuligon, la vojo silente perdas kelkajn dekduojn da bajtoj el la buĝeto, kaj profilo skribita por pura Ethernet daŭre petas pakaĵojn, kiujn la linio ne povas porti. La konekto ne estas malrapida; ĝi forĵetas ĝuste la pakaĵojn, kiuj gravas.

Tri ebloj povas ripari tion, kaj ili funkcias en malsamaj tavoloj. Elekti la malĝustan aŭ faras nenion aŭ igas la tunelon rompiĝema laŭ nova maniero, do la elekto komenciĝas per tio, kion la vojo efektive subtenas.

Tri butonoj, tri malsamaj tavoloj

La link-mtu estas la ekstera buĝeto: la ĉifrita utilaĵo plus la OpenVPN-kapo, la UDP-kapo kaj la ekstera IP-kapo. Ĝi priskribas tion, kio forlasas la maŝinon, kaj tial ĝi estas la nombro, kiun limigas la fizika vojo.

La tun-mtu estas la interna buĝeto: la interfaco, kiun vidas via trafiko. Ĝi estas pli granda ol tio, kion la vojo povas porti, ĝuste per la tunela superkosto, kaj OpenVPN kutime derivas ĝin anstataŭ devigi vin agordi ĝin.

La mssfix estas tute alia mekanismo. Ĝi reskribas la maksimuman segmentan grandecon anoncatan dum TCP-manpremoj, por ke TCP-partneroj elektu segmentojn, kiuj taŭgas post enkapsuligo. Ĝi ne ŝanĝas la interfacan MTU kaj havas neniun efikon al UDP.

Se vi eksplicite agordas link-mtu, OpenVPN subtrahas sian propran superkoston por derivi la internan MTU. Tiu superkosto ne estas fiksa konstanto; ĝi dependas de la ĉifro kaj la aŭtentigo, kaj tial valoro kopiita el forumo povas esti malĝusta en alia profilo. Agordi kaj link-mtu kaj tun-mtu donas al la kliento du kontraŭdirajn instrukciojn.

Mezuru la vojon antaŭ ol elekti ajnan nombron

Mezuru de la fizika interfaco, ne el la interno de la tunelo, kaj memoru, ke ping raportas la utilaĵon, ne la pakaĵan grandecon. Aldonu 28 bajtojn por la IPv4- kaj ICMP-kapoj antaŭ ol kompari la utilaĵon kun 1500-bajta kadro, kaj tenu tiun korekton en la kapo, kiam partnero raportas alian nombron.

Sur Linux-kliento, ping -M do -s 1472 malpermesas fragmentadon kaj malsukcesas, se la pakaĵo tro grandas. Malgrandigu la utilaĵon ĝis ĝi trapasos, poste aldonu 28 por akiri la vojan MTU. PPPoE kostas 8 bajtojn, do 1492 estas normala sur DSL. DS-Lite kaj iuj moveblaj vojoj kostas 40 aŭ pli, kaj la respondo kutime estas pli malalta ol sugestas la nominala ligrapideco.

Se ĉiu ping-grando sukcesas sed grandaj transigoj ankoraŭ haltiĝas, suspektu nigran truon anstataŭ simplan grandeclimon. ICMP-mesaĝo pri bezonata fragmentado estas filtrita ie laŭ la vojo, do la sendanto neniam lernas malgrandigi, kaj nur la fluoj, kiuj bezonas grandan segmenton, rimarkas ĝin.

Limigu TCP unue, malgrandigu la tunelon poste

TCP-manpremoj estas la sola afero, kiun mssfix tuŝas, kaj tial ĝi kutime estas la malplej ĝena regilo por provi unue. Agordu ĝin iom sub la reala buĝeto de la vojo, sendu la saman valoron de la servilo por ke ambaŭ finoj konsentu, kaj retestu grandan elŝuton. Se la halto malaperas, la problemo estis la TCP-segmenta grandeco, kaj nenio alia bezonas ŝanĝon.

Malgrandigu la internan MTU, kiam la tuŝita trafiko ne estas TCP. UDP-servo, tunelo ene de la tunelo aŭ aplikaĵo, kiu sendas plengrandajn datagramojn, daŭre malsukcesos post MSS-limo, ĉar nenio reskribas ĝian pakaĵan grandecon. Malgrandigu tun-mtu por tiu kazo, aŭ agordu link-mtu kaj lasu la klienton derivi la internan valoron, sed neniam ambaŭ.

Ne prenu la malnovan fragmentadan opcion. Ĝi dividis pakaĵojn ene de la tunelo, aldonis superkoston kaj estis malrekomendita pro bonaj kialoj; moderna OpenVPN atendas, ke la vojo estu priskribita precize.

Kial malgrandaj provoj daŭre funkcias

DNS-demandoj, ICMP-ekoj kaj TCP-manpremoj estas ĉiuj multe sub la malsukcesa grandeco. La tunelo do aspektas sana en ĉiu rapida testo, dum TLS-manpremoj kaj HTTP-respondoj silente malsukcesas. Ĝuste tiu kombinaĵo, funkcianta traceroute kaj retumilo, kiu haltiĝas ĉe la unua granda respondo, estas la signo por serĉi. Prenu plengrandan provon antaŭ ol preni novan profilon.

Kontrolu per la trafiko, kiu malsukcesis. Alportu grandan paĝon, sendu plengrandan UDP-datagramon se tio estas la tuŝita servo, kaj ripetu de dua kliento sur alia ligo. Notu la mezuritan vojan MTU kaj la valoron, kiun vi elektis, ĉar la venonta persono, kiu tuŝos la profilon, alie traktos la nombron kiel arbitran.

Neniam irigu la internan MTU sub 1280, kiam IPv6 funkcias super la tunelo, ĉar tio estas la minimumo, kiun ĉiu IPv6-ligo devas porti. Pli malgranda MTU estas fakto pri la vojo, ne agordo pri rendimento por reguli laŭ sento.

Rilataj artikoloj