Zapnuli jste 9000bajtové rámce v LAN a čekali, že VPN bude rychlejší. Byla pomalejší, nebo přestala velké přenosy propouštět úplně. Jumbo rámce jsou místní dohoda o lince; nerozšiřují cestu, kterou tunel prochází.

Použitelný rozpočet určuje nejmenší hranice na trase, včetně zapouzdření, které tunel přidává.

Co jumbo rámce skutečně mění

MTU je vlastnost jednoho rozhraní. Zvednout ji na serveru a jeho switchi znamená, že ty dvě mohou bez fragmentace vyměňovat větší rámce. O routeru za switchem, o ISP ani o druhé straně tunelu to neříká nic. Ta zařízení mají vlastní limity a paket, který jeden z nich překročí, je zahozen nebo fragmentován podle pravidel, která jste nenastavili.

Místní dohoda, globální důsledky. V tom je celé to zmatení.

Daň za zapouzdření

Tunel zabalí váš paket do jiného. WireGuard přes IPv4 UDP přidává zhruba 60 bajtů režie; UDP režim OpenVPN je ve stejném rozsahu a IPsec se liší podle režimu a algoritmů. Ty bajty jdou z rozpočtu vnější cesty, ne z ničeho.

Vnější linka o 1500 bajtech tedy po přidání hlavičky tunelu neunese vnitřní paket o 1500 bajtech.

Aritmetiku stojí za to udělat jednou. Na cestě o 1500 bajtech chce rozhraní WireGuard MTU kolem 1420, aby se zapouzdřený paket vešel. Nastavte vnitřní rozhraní na 9000 a každý velký paket bude potřebovat fragmentaci, kterou tunel neumí, nebo bude zahozen.

Najděte nejmenší linku na trase

Projděte trasu a najděte nejnižší MTU. LAN bývá 1500 nebo 9000, WAN bývá 1500 a mobilní nebo PPP linka může být ještě nižší. Pak odečtěte režii tunelu. Pokud je výsledek menší než MTU vnitřního rozhraní, máte odpověď. Objevování MTU cesty to umí najít automaticky, ale jen když propustíte ICMP zprávy, na kterých to závisí.

Filtrované ICMP je klasický důvod, proč velký přenos visí, zatímco malé požadavky fungují bezchybně.

Otestujte závislost na velikosti, aniž byste změnu rozšiřovali

Použijte reprezentativní přenos a uložte původní hodnoty, abyste je mohli vrátit. ping -M do -s 1472 testuje paket o 1500 bajtech s nastaveným bitem DF; zmenšujte velikost, dokud neprojde. Pokud selhávají jen velké pakety, máte problém s velikostí, ne s routováním.

Pozor na offload na straně hostitele při čtení odposlechů. Segmentační offload může ukázat rámce mnohem větší, než co skutečně prošlo drátem, takže funkční cesta vypadá rozbitá a rozbitá vypadá dobře.

Kdy je velká MTU správný návrh

Kontrolovaná privátní síť může legitimně provozovat větší rámce od konce ke konci, pokud s tím každé zařízení na trase souhlasí a režie tunelu je zahrnuta. To je koordinovaný návrh s dokumentovanou hodnotou pro každou linku, ne jedno velké číslo napsané do klienta.

U běžného veřejného výstupu předpokládejte 1500 nebo méně a nechte tunel vybrat bezpečnou vnitřní MTU. RFC 8201 pokrývá objevování MTU cesty pro případ IPv6 a je užitečným odkazem pro to, jak má zpětná vazba fungovat.

Související články