Tri nastavenia na klientovi Linux znejú ako „urob pakety menšie“ a pôsobia v rôznych vrstvách. MTU rozhrania obmedzuje každý paket, ktorý zariadenie odošle. MTU trasy obmedzuje pakety, ktoré túto trasu používajú, a to je často presne to, čo pre jednu destináciu VPN naozaj chcete. Obmedzenie TCP MSS mení to, na čom sa oba konce dohodnú, a pre UDP nič nerobí.

Tri regulátory, ktoré vyzerajú ako to isté koliesko

Položte ich vedľa seba pred výberom, pretože nesprávny riadok vysvetľuje väčšinu rád, ktoré nefungujú:

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

Zníženie MTU Ethernetu pre celý stroj je hrubá verzia tohto riešenia. Funguje, a tiež trestá každú ďalšiu aplikáciu na hostiteľovi, vrátane tých, ktorých cesty boli v poriadku. Hodnota na trasu vyjadruje rovnaký zámer bez vedľajších nákladov.

Porovnanie platí len pre prevádzku, ktorú hostiteľ sám generuje. Preposielanie paketu pre iného klienta zahŕňa jeho vlastnú cestu a vonkajší rozpočet tunela, a metrika trasy na tomto hostiteľovi neprekročí túto hranicu.

Pripevnite rozpočet k trase, ktorá vyhrá vyhľadávanie

Ilustratívny záznam trasy IPv4 vyzerá takto:

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

Čítajte záznam ako opis zámeru, nie ako hodnotu na vloženie. Prefix, zariadenie a preferovaný zdroj musia zodpovedať skutočnej konfigurácii a číslo musí pochádzať z dôkazov o zapuzdrenej ceste, nie z blogového príspevku. MTU trasy obmedzuje vnútorný IP paket, čo nie je to isté ako TCP užitočné zaťaženie 1380 bajtov alebo šifrovaný vonkajší paket 1380 bajtov.

Pred pridaním čohokoľvek sa pozrite, kde sa vyhľadávanie skutočne vyrieši. Hostiteľ s pravidlami politiky môže danú destináciu smerovať inou tabuľkou ako main, a metrika, ktorá existuje len v main , je pre túto požiadavku neviditeľná. Porovnajte ip -4 route show table all s odpoveďou z ip route get, vrátane kontextu značky alebo menného priestoru, keď ich pravidlá používajú. Ak sa obe nezhodujú, tabuľka, ktorá odpovedala, je tá, ktorá potrebuje metriku, nie tá, ktorá vyzerá upravenejšie.

mtu nie je mtu lock

Predvolene jadro stále môže aktualizovať MTU cesty zo spätnej väzby ICMP, na to slúži zisťovanie MTU cesty. Pridanie lock to zastaví. Je to iné rozhodnutie, nie silnejší spôsob, ako zachovať rovnaké číslo, a pre IPv4 mení dokumentované zaobchádzanie s bitom „nefragmentuj“.

Uzamknutie je rozumné, keď ste cestu zmerali a chcete, aby hodnota zostala pevná bez ohľadu na to, čo príde. Je to zlé predvolené nastavenie, keď sieť posiela legitímnu spätnú väzbu o veľkosti, pretože jadro už nemôže upravovať a porucha sa presunie do iného príznaku.

Ak sa ICMP niekde na ceste filtruje, žiadne nastavenie trasy to neopraví. Oprava patrí filtru a menšie MTU je obchádzka, ktorá skrýva skutočnú poruchu do ďalšej zmeny cesty.

Softvér tunela pridáva vlastné regulátory veľkosti

OpenVPN- mssfix upravuje veľkosť segmentu TCP pre svoj dokumentovaný prípad tunela UDP. Pôsobí na TCP konverzáciu, takže to nie je iný zápis MTU trasy operačného systému a nemôže pomôcť službe UDP, ktorá ignoruje vyjednávanie.

Neklaďte MTU trasy, zmenu MTU rozhrania a obmedzenie MSS do jedného okna zmien. Ak problém zmizne, nebudete vedieť, ktoré malo význam, a to, čo ponecháte, bude obmedzovať prevádzku roky bez dôvodu, ktorý si niekto pamätá.

Urobte to vratné, potom to dokážte

Skutočný vlastník trasy rozhoduje, či zmena prežije opätovné pripojenie. Klient VPN, ktorý trasu inštaluje dynamicky, ju zvyčajne znovu zostaví bez vašej metriky, a ručné ip route add potom vyzerá ako oprava, ktorá zlyhala o deň neskôr. Vložte hodnotu do konfigurácie správcu a ak potrebujete dočasný experiment, najprv zaznamenajte pôvodnú trasu.

Otestujte novým pripojením, ktoré vykoná operáciu, ktorá sa zasekla, a potom potvrďte, že zamýšľaná privátna trasa stále vyhráva a nesúvisiace destinácie sa nezmenili. Znova pripojte tunel a prečítajte trasu, pretože hodnota, ktorá pri opätovnom pripojení zmizne, nie je oprava.

Ak dôkazy zmenu nepodporujú, odstráňte prepísanie cez jeho správcu a obnovte pôvodné atribúty trasy namiesto vymazania trasy. Potom si poznačte, čo ste merali a na ktorej ceste, aby ďalší človek rozlíšil skutočné zlepšenie od experimentu, ktorý zostal bežať.

Súvisiace články