Drie instellings op 'n Linux-kliënt klink almal na „maak die pakkies kleiner“, en hulle werk op verskillende vlakke. Die koppelvlak-MTU beperk elke pakkie wat die toestel stuur. 'n Roete-MTU beperk pakkies wat daardie roete gebruik, wat dikwels is wat jy eintlik vir een VPN-bestemming wil hê. Die TCP MSS-beperking verander wat die twee eindpunte onderhandel, en dit doen niks vir UDP.

Drie beheerders wat soos dieselfde knop lyk

Sit hulle langs mekaar voordat jy kies, want die verkeerde ry kies verduidelik meeste van die advies wat nie werk nie:

ControlScopeWhat it cannot fix
Interface MTUEvery packet the device sendsNothing, but it over-constrains unrelated traffic
Route MTUPackets using that routeA send that the lookup never routes there
MSS clampTCP handshake on that pathUDP payload sizes and ICMP

Om die Ethernet-MTU vir die hele masjien te verlaag is die bot weergawe van hierdie oplossing. Dit werk, en dit benadeel ook elke ander toepassing op die gasheer, insluitend diegene wie se paaie fyn was. 'n Waarde per roete druk dieselfde bedoeling uit sonder die bykomende koste.

Die vergelyking geld net vir verkeer wat die gasheer genereer. Om 'n pakkie vir 'n ander kliënt aan te stuur behels daardie kliënt se eie pad en die tonnel se buitenste begroting, en 'n roetemaatstaf op hierdie gasheer reik nie oor daardie grens nie.

Heg die begroting aan die roete wat die soektog wen

'n Illustratiewe IPv4-roeterekord lyk so:

ip -4 route get 10.60.0.20
ip -4 route add 10.60.0.0/16 dev tun-office src 10.90.0.2 mtu 1380

Lees die rekord as 'n beskrywing van bedoeling, nie 'n waarde om te plak nie. Die voorvoegsel, toestel en voorkeurbron moet by die werklike konfigurasie pas, en die nommer moet uit bewyse oor die ingekapselde pad kom, nie uit 'n blogpos nie. Die roete-MTU beperk die binneste IP-pakkie, wat nie dieselfde is as 'n TCP-lading van 1380 grepe of 'n geënkripteerde buitenste pakkie van 1380 grepe nie.

Kyk waar die soektog werklik oplos voordat jy iets byvoeg. 'n Gasheer met beleidsreëls kan 'n gegewe bestemming deur 'n ander tabel as main stuur, en 'n maatstaf wat net in main bestaan, is onsigbaar vir daardie versoek. Vergelyk ip -4 route show table all met die antwoord van ip route get, insluitend die merk- of naamruimtekonteks wanneer die reëls dit gebruik. As die twee verskil, is die tabel wat geantwoord het die een wat die maatstaf nodig het, nie die een wat netjieser lyk nie.

mtu is nie mtu lock nie

Standaard kan die kern steeds die pad-MTU uit ICMP-terugvoer bywerk, dit is waarvoor pad-MTU-ontdekking is. Om lock by te voeg, stop dit. Dit is 'n ander besluit, nie 'n sterker manier om dieselfde nommer te spaar nie, en vir IPv4 verander dit die gedokumenteerde hantering van die don't-fragment-bietjie.

Slot is redelik wanneer jy die pad gemeet het en wil hê die waarde moet bly staan ongeag wat aankom. Dit is 'n swak verstek wanneer die netwerk wettige grootte-terugvoer stuur, want die kern kan nie meer aanpas nie en die faling skuif na 'n ander simptoom.

As ICMP êrens langs die pad gefiltreer word, herstel geen roete-instelling dit nie. Die regstelling hoort by die filter, en 'n kleiner MTU is 'n tydelike oplossing wat die werklike fout wegsteek tot die volgende pad verander.

Tonnelprogrammatuur voeg sy eie grootteskyfies by

OpenVPN se mssfix pas TCP-segmentgroottes aan vir sy gedokumenteerde UDP-tonnelgeval. Dit werk op die TCP-gesprek, so dit is nie 'n ander spelling van die bedryfstelsel se roete-MTU nie, en dit kan nie 'n UDP-diens help wat die onderhandeling ignoreer nie.

Moenie 'n roete-MTU, 'n koppelvlak-MTU-verandering en 'n MSS-beperking in een veranderingsvenster stapel nie. As die probleem verdwyn, sal jy nie weet watter een saak gemaak het nie, en die een wat jy hou sal verkeer vir jare beperk sonder 'n rede wat iemand onthou.

Maak dit omkeerbaar, bewys dit dan

Die roete se werklike eienaar besluit of die verandering 'n herverbinding oorleef. 'n VPN-kliënt wat die roete dinamies installeer, sal dit gewoonlik herbou sonder jou maatstaf, en 'n handmatige ip route add lyk dan soos 'n oplossing wat 'n dag later gefaal het. Sit die waarde in die bestuurder se konfigurasie, en as jy 'n tydelike eksperiment nodig het, teken eers die oorspronklike roete aan.

Toets met 'n nuwe verbinding wat die bewerking uitvoer wat vasgehaak het, en bevestig dan dat die bedoelde private roete steeds wen en onverwante bestemmings onveranderd is. Herverbind die tonnel en lees die roete weer, want 'n waarde wat by herverbinding verdwyn is nie 'n oplossing nie.

As die bewyse die verandering nie ondersteun nie, verwyder die oorheersing deur sy bestuurder en herstel die oorspronklike roete-attribute eerder as om die roete te skrap. Skryf dan neer wat jy gemeet het, op watter pad, sodat die volgende persoon 'n werklike verbetering kan onderskei van 'n eksperiment wat aan die gang gelaat is.

Verwante artikels