Tunelis izmet lielus pārraides, bet palaiž ping, tāpēc padoms nāk ātri: samaziniet MTU. Labojums dažkārt strādā, un tad to piemēro katram profilam katrā tīklā. Tieši tad mērķēts labojums pārvēršas pastāvīgā veiktspējas nodoklī. Salīdzinājums, kas jāveic, ir starp ceļa faktisko robežu un izmaksām, kas rodas, samazinot katru paketi zem tās.

Kas faktiski samazinās, kad pazemināt MTU

Katrs pakets pārnēsā galvenes pirms jūsu datiem. 1500 baitu Ethernet ceļā IPv4 un TCP patērē 40 baitus un atstāj 1460 lietderīgajai slodzei; iekapsulēšana virsū pievieno ārējās IP, UDP un tuneļa galvenes, tāpēc iekšējais lietderīgās slodzes budžets atkal samazinās. Saskarnes MTU pazemināšana apzināti samazina šo budžetu.

Izmaksas ir proporcionālas pakešu skaitam, nevis baitu skaitam. Tas pats fails, sadalīts vairāk paketēs, prasa vairāk pārtraukumu, vairāk maršrutēšanas lēmumu un vairāk apstrādes uz paketi katrā ierīcē ceļā. Maršrutētājā, kas jau ir tuvu savai pakešu sekundē robežai, tas ir reāls palēninājums, nevis noapaļošanas kļūda. Izmaksas parādās arī tad, kad pati pārraide izdodas.

Tāpēc mazāks MTU ir ierobežojuma apiešana, nevis vispārēja optimizācija. Tas pērk uzticamību pret ceļu, kas nespēj pārnēsāt lielāko freimu, un tas iekasē papildu izmaksas par katru paketi, kam samazinājums nebija vajadzīgs.

Kad mazāks MTU ir pareizais labojums

Klasiskais simptoms ir konkrēts: TCP roku sasaukšanās pabeidzas, pienāk mazas atbildes, un liela lejupielāde apstājas vai tiek atiestatīta. Ping ar nesadrumstalot bitu pie 1472 baitiem neizdodas, bet 1400 baitu ping izdodas, kas norāda uz ceļu, kas nespēj pārnēsāt pilna izmēra paketi un nepiegādā ICMP ziņojumu, kas liktu sūtītājam samazināt.

Ceļa MTU noteikšana ir atkarīga no šiem ICMP ziņojumiem par nepieciešamo sadrumstalošanu. Kad ugunsmūris tos izmet, sūtītājs turpina atkārtot lielo paketi, un savienojums izskatās iekāries. MTU pazemināšana tuneļa pusē izvairās no atkārtošanas, un tas ir likumīgs labojums šim tīklam.

Piekļuves tehnoloģijas arī nosaka savas robežas: PPPoE parasti aprobežojas ar 1492, daži mobilie un DSL ceļi ir zemāki, un iegultie tuneļi atņem papildu izmaksas divreiz. Mēriet faktisko ceļu, nevis kopējiet skaitli no rokasgrāmatas, un atcerieties, ka IPv6 prasa vismaz 1280 baitu MTU katrā saitē, kas to pārnēsā, kā nosaka RFC 8200.

Salīdziniet trīs vadīklas pirms vienas maiņas

MTU, MSS un sadrumstalošana ir dažādas vadīklas dažādos slāņos, un nepareizās maiņa atstāj simptomu vietā.

ControlLayerWhat it changesWhere it misleads
Interface MTUIP linkLargest frame the interface will sendPenalizes every protocol, not just the one that failed
TCP MSS clampTCPSegment size advertised in the handshakeLeaves UDP and QUIC untouched
DF and fragmentationIPWhether a router may split a packetCan break path MTU discovery and security assumptions
Tunnel overheadEncapsulationInner MTU after outer headersMismatch shows up only for large inner packets

MSS ierobežošana bieži ir vismazāk invazīvais labojums, jo tā ietekmē tikai TCP un atstāj saskarni brīvu citam trafikam. Zemāks saskarnes MTU ir plašāks un vieglāk pārdomājams, tāpēc tas ir izplatīts mājas maršrutētājos, bet tas iekasē katram protokolam viena protokola problēmu.

Nesadrumstalo uzvedības izslēgšana slēpj simptomu, atļaujot sadrumstalošanu, un tā parasti pasliktina latentumu, vienlaikus salaužot atgriezenisko saiti, kas būtu atradusi pareizo izmēru. Izvairieties no tā kā pastāvīga risinājuma.

Mēriet kompromisu, nevis vienu skaitli

Atrodiet ceļa robežu ar nesadrumstalo zondi, sāciet augstu un laidieties lejup, līdz atbilde atnāk:

ping -M do -s 1472 203.0.113.10
ping -M do -s 1400 203.0.113.10
tracepath 203.0.113.10

Pēc tam salīdziniet faktisko uzdevumu abos iestatījumos: to pašu faila pārraidi, to pašu galapunktu un to pašu tīklu. Pierakstiet pabeigšanas laiku un atkārtotās pārraides, piemēram, ar nstat -az TcpRetransSegs, un vērojiet ierīces procesoru, ja tunelis beidzas mazā maršrutētājā. Īss sintētisks caurlaidspējas tests var palaist garām apstāšanos, kas parādās tikai pēc vairākiem megabaitiem.

Pakešu skaitītāji pēc samazināšanas pieaugs, jo tā pati pārraide tagad izmanto vairāk pakešu. Tas ir gaidīts un tas nav pierādījums lielākai caurlaidspējai. Salīdziniet pabeigtos lietojumprogrammas datus, atkārtoto pārraižu skaitu un atsaucību, nevis tikai pakešu ātrumu.

Ieviesiet izmaiņas pakāpeniski un turiet tās ierobežotas

Pierakstiet sākotnējo vērtību, nomainiet vienu vadīklu un atkārtojiet mērījumu pirms padarīšanas par pastāvīgu. Ja pierādījumi neuzrāda ieguvumu, atjaunojiet iepriekšējo vērtību ar to pašu saskarnes komandu, ar kuru to iestatījāt:

ip link set dev wg0 mtu 1420
ip link set dev wg0 mtu 1500

Ierobežojiet rezultātu ar to tīklu, kuram tas bija vajadzīgs. Profilam, kam jāstrādā viesnīcas Wi-Fi, mobilajā hotspot un biroja LAN, nevajadzētu mantot zemāko vērtību, ko prasa jebkurš no tiem, ja vien klients nevar noteikt ceļu.

Pareizā vērtība ir lielākais MTU, kas izdzīvo ceļā, nevis mazākais, kas liek simptomam pazust. Dokumentējiet ceļu, zondes rezultātu un atritināšanu, un pārskatiet iestatījumu, kad mainās piekļuves tīkls.

Saistītie raksti