Kolme asetusta Linux-asiakkaassa kuulostavat kaikki siltä, että „tee paketeista pienempiä“, ja ne vaikuttavat eri kerroksissa. Liitännän MTU rajoittaa jokaista pakettia, jonka laite lähettää. Reitin MTU rajoittaa paketteja, jotka käyttävät sitä reittiä, ja se on usein se, mitä yhdelle VPN-kohteelle oikeasti haluat. TCP MSS -raja muuttaa sitä, mistä kaksi päätä sopivat, eikä tee UDP:lle mitään.

Kolme säädintä, jotka näyttävät samalta nupilta

Laita ne vierekkäin ennen valintaa, sillä väärän rivin valitseminen selittää suurimman osan neuvosta, joka ei toimi:

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

Ethernet-MTU:n laskeminen koko koneelle on tämän korjauksen karkea versio. Se toimii, ja se myös rankaisee jokaista muuta isäntäkoneen sovellusta, mukaan lukien niitä, joiden polut olivat kunnossa. Reittikohtainen arvo ilmaisee saman aikomuksen ilman sivukulua.

Vertailu pätee vain isännän itse tuottamaan liikenteeseen. Paketin välittäminen toiselle asiakkaalle sisältää sen asiakkaan oman polun ja tunnelin ulomman budjetin, eikä tämän isännän reittimetriikka ylitä sitä rajaa.

Kiinnitä budjetti reitille, joka voittaa haun

Esimerkinomainen IPv4-reittitietue näyttää tältä:

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

Lue tietue aikomuksen kuvauksena, ei liitettävänä arvona. Etuliitteen, laitteen ja ensisijaisen lähteen on vastattava todellista kokoonpanoa, ja luvun on tultava todisteista kapseloidusta polusta, ei blogikirjoituksesta. Reitin MTU rajoittaa sisempää IP-pakettia, mikä ei ole sama kuin 1380 tavun TCP-hyötykuorma tai 1380 tavun salattu ulompi paketti.

Katso, missä haku tosiasiassa ratkeaa, ennen kuin lisäät mitään. Käytäntösäännöillä varustettu isäntä voi reitittää tietyn kohteen muun kuin main taulukon kautta, ja metriikka, joka on vain main taulukossa, on näkymätön sille pyynnölle. Vertaa ip -4 route show table all ja ip route get vastausta, mukaan lukien merkki- tai nimiavaruuden konteksti, kun säännöt käyttävät niitä. Jos ne kaksi eroavat, metriikkaa tarvitsee se taulu, joka vastasi, ei se, joka näyttää siistimmältä.

mtu ei ole mtu lock

Oletuksena ydin voi yhä päivittää polun MTU:n ICMP-palautteen perusteella, ja sitä varten polun MTU:n tunnistus on olemassa. Lisääminen lock lopettaa sen. Se on eri päätös, ei vahvempi tapa säilyttää sama luku, ja IPv4:lle se muuttaa dokumentoitua tapaa käsitellä don't-fragment-bittiä.

Lukitseminen on järkevää, kun olet mitannut polun ja haluat arvon pysyvän paikallaan riippumatta siitä, mitä saapuu. Se on huono oletus, kun verkko lähettää asiallista kokopalautetta, koska ydin ei voi enää sopeutua ja vika siirtyy toiseen oireeseen.

Jos ICMP suodatetaan jossain polulla, mikään reittiasetus ei korjaa sitä. Korjaus kuuluu suodattimelle, ja pienempi MTU on kiertotie, joka piilottaa todellisen vian seuraavaan polun muutokseen asti.

Tunneliohjelmisto lisää omat kokonsa säätimet

OpenVPN- mssfix säätää TCP-segmentin kokoa dokumentoitua UDP-tunnelitapaustaan varten. Se vaikuttaa TCP-keskusteluun, joten se ei ole käyttöjärjestelmän reitti-MTU:n toinen kirjoitusasu, eikä se voi auttaa UDP-palvelua, joka jättää neuvottelun huomiotta.

Älä pinoa reitti-MTU:ta, liitännän MTU:n muutosta ja MSS-rajaa samaan muutosikkunaan. Jos ongelma katoaa, et tiedä, mikä niistä merkitsi, ja ne, jotka pidät, rajoittavat liikennettä vuosia ilman syytä, jonka joku muistaa.

Tee siitä palautettava ja todista se sitten

Reitin todellinen omistaja päättää, selviääkö muutos uudelleenyhdistämisestä. VPN-asiakas, joka asentaa reitin dynaamisesti, rakentaa sen yleensä uudelleen ilman metriikkaasi, ja manuaalinen ip route add näyttää silloin korjaukselta, joka epäonnistui päivää myöhemmin. Laita arvo hallinnan kokoonpanoon, ja jos tarvitset väliaikaisen kokeilun, kirjaa ensin alkuperäinen reitti.

Testaa uudella yhteydellä, joka suorittaa jumiutuneen toiminnon, ja vahvista sitten, että aiottu yksityinen reitti voittaa yhä ja että liittymättömät kohteet eivät ole muuttuneet. Yhdistä tunneli uudelleen ja lue reitti, koska uudelleenyhdistämisessä katoava arvo ei ole korjaus.

Jos todisteet eivät tue muutosta, poista ohitus sen hallinnan kautta ja palauta alkuperäiset reittimääritteet reitin poistamisen sijaan. Kirjaa sitten, mitä mittasit ja millä polulla, jotta seuraava voi erottaa todellisen parannuksen käynnissä jätetystä kokeilusta.

Aiheeseen liittyvät artikkelit