Tři nastavení na klientu Linux znějí jako „udělej pakety menší“ a působí v různých vrstvách. MTU rozhraní omezuje každý paket, který zařízení odešle. MTU trasy omezuje pakety, které tuto trasu používají, což je často přesně to, co pro jednu destinaci VPN skutečně chcete. Omezení TCP MSS mění to, na čem se oba konce dohodnou, a pro UDP nedělá nic.

Tři ovládání, která vypadají jako stejné kolečko

Položte je vedle sebe, než vyberete, protože špatná řádka vysvětluje většinu rad, které 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

Snížení MTU Ethernetu pro celý stroj je hrubá verze tohoto řešení. Funguje, a také trestá každou další aplikaci na hostiteli, včetně těch, jejichž cesty byly v pořádku. Hodnota na trase vyjadřuje stejný záměr bez vedlejších nákladů.

Srovnání platí jen pro provoz, který hostitel generuje. Předávání paketu jinému klientovi zahrnuje jeho vlastní cestu a vnější rozpočet tunelu a metrika trasy na tomto hostiteli za tuto hranici nedosáhne.

Připněte rozpočet trase, která vyhraje vyhledání

Ilustrativní záznam trasy IPv4 vypadá 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

Čtěte záznam jako popis záměru, ne jako hodnotu k vložení. Prefix, zařízení a preferovaný zdroj musí odpovídat skutečné konfiguraci a číslo musí pocházet z důkazů o zapouzdřené cestě, ne z blogového příspěvku. MTU trasy omezuje vnitřní IP paket, což není totéž jako TCP užitečné zatížení 1380 bajtů nebo šifrovaný vnější paket 1380 bajtů.

Než něco přidáte, podívejte se, kde se vyhledání skutečně vyřeší. Hostitel s pravidly zásad může danou destinaci směrovat jinou tabulkou než main, a metrika, která existuje jen v main , je pro tento požadavek neviditelná. Porovnejte ip -4 route show table all s odpovědí z ip route get, včetně kontextu značky nebo jmenného prostoru, když je pravidla používají. Pokud se oba neshodují, tabulka, která odpověděla, je ta, která metriku potřebuje, ne ta, která vypadá uklizeněji.

mtu není mtu lock

Ve výchozím nastavení jádro stále může aktualizovat MTU cesty ze zpětné vazby ICMP, k čemuž slouží zjišťování MTU cesty. Přidání lock to zastaví. Je to jiné rozhodnutí, ne silnější způsob, jak zachovat stejné číslo, a pro IPv4 mění dokumentované zacházení s bitem „nefragmentovat“.

Uzamčení je rozumné, když jste cestu změřili a chcete, aby hodnota zůstala pevná bez ohledu na to, co dorazí. Je to špatné výchozí nastavení, když síť posílá legitimní zpětnou vazbu o velikosti, protože jádro už nemůže upravovat a porucha se přesune do jiného příznaku.

Pokud se ICMP někde na cestě filtruje, žádné nastavení trasy to nespraví. Oprava patří filtru a menší MTU je obchvat, který skrývá skutečnou závadu do další změny cesty.

Software tunelů přidává vlastní ovládání velikosti

OpenVPN- mssfix upravuje velikost segmentů TCP pro svůj dokumentovaný případ tunelu UDP. Působí na TCP konverzaci, takže to není jiný zápis MTU trasy operačního systému a nemůže pomoci službě UDP, která vyjednávání ignoruje.

Neskládejte MTU trasy, změnu MTU rozhraní a omezení MSS do jednoho okna změn. Pokud problém zmizí, nebudete vědět, které mělo význam, a to, co ponecháte, bude omezovat provoz léta bez důvodu, který si někdo pamatuje.

Udělejte to vratné, pak to dokažte

Skutečný vlastník trasy rozhoduje, zda změna přežije opětovné připojení. Klient VPN, který trasu instaluje dynamicky, ji obvykle znovu sestaví bez vaší metriky, a ruční ip route add pak vypadá jako oprava, která selhala o den později. Vložte hodnotu do konfigurace správce a pokud potřebujete dočasný experiment, nejprve zaznamenejte původní trasu.

Otestujte novým připojením, které provede operaci, jež se zasekla, a potom potvrďte, že zamýšlená privátní trasa stále vítězí a nesouvisející destinace se nezměnily. Znovu připojte tunel a přečtěte trasu, protože hodnota, která při opětovném připojení zmizí, není oprava.

Pokud důkazy změnu nepodporují, odeberte přepsání přes jeho správce a obnovte původní atributy trasy, místo abyste trasu mazali. Pak si poznamenejte, co jste měřili a na které cestě, aby další člověk rozeznal skutečné zlepšení od experimentu, který zůstal běžet.

Související články