WireGuard žádné vyjednávání MTU nemá. Zašifruje, co mu rozhraní předá, a výsledek odešle, a pokud zapouzdřený paket překročí cestu, je někde zahozen nebo fragmentován, kde to nevidíte. MTU rozhraní musí někdo zvolit a tím někým je nástroj, který rozhraní zvedl.

Existují tři kandidáti a je snadné je zaměnit.

Tři místa, odkud může hodnota pocházet

Hodnotu lze nastavit výslovně v konfiguraci rozhraní, vypočítat ji nástrojem pro nastavení z informací o trase, nebo ji nastaví kterýkoli správce sítě, jemuž rozhraní patří. Běžné volání wg nedělá nic z toho, protože wg spravuje jen klíče a protějšky. MTU žije na síťovém rozhraní, a proto ip link show wg0 je místo, kde ho čtete.

Pokud si nejste jistí, který případ platí, přečtěte nejprve MTU a potom zjistěte, kdo rozhraní spustil.

Rozhodněte podle toho, kdo rozhraní spravuje

Pokud ho spouští wg-quick, vyhrává výslovný řádek MTU, jinak vypočítá hodnotu. Pokud ho spouští správce sítě, rozhoduje profil tohoto správce. Pokud ho spouští kontejnerové prostředí nebo klientský program poskytovatele, čtěte jejich dokumentaci, místo abyste předpokládali chování wg-quick.

Rozhodnutí není o tom, které číslo je nejlepší v abstraktu. Je o tom, kterou komponentu můžete skutečně nakonfigurovat.

Co dělá výchozí výpočet

wg-quick vyhledá trasu ke koncovému bodu protějšku, vezme MTU tohoto odchozího rozhraní a odečte režii zapouzdření. S vnější hlavičkou IPv4 to je asi 60 bajtů; s IPv6 asi 80. Výsledek se omezí, takže cesta o 1500 bajtech dá 1420, a ne hodnotu, která funguje jen pro jednu rodinu adres. To je rozumná výchozí hodnota, ne měření vaší cesty.

Nemůže vědět o pozdějším tunelu, mobilním spoji nebo filtrované cestě ICMP.

Omezení skrývá skutečnou otázku. Pokud je vaše cesta opravdu 9000 bajtů od konce ke konci, 1420 nechává výkon na stole, a pokud je cesta 1400, je 1420 už příliš velké. Výchozí hodnota je kompromis a tak se k ní má přistupovat.

Když se cesta pod vámi změní

Notebook, který přechází z Ethernetu na Wi-Fi a pak na hotspot telefonu, si ponechá MTU rozhraní, se kterým začal. Vnější cesta může být nyní menší a nic znovu nevyjednává. Vnořené tunely to zhoršují, protože každá vrstva odečítá svou režii ze stejného rozpočtu. Hodnota, která fungovala v kanceláři, není hodnota, která funguje na letišti.

Nedávný handshake dokazuje, že klíče fungují. O tom, zda se vejdou velké pakety, nedokazuje nic.

Testujte jedno číslo po druhém

Zachovejte stejnou aplikaci a cíl, změňte jednu hodnotu a měřte. ping -M do -s 1372 testuje paket o 1400 bajtech s nastaveným bitem DF a to je tvar testu, který chcete. Pokud malé požadavky fungují a velké se zaseknou, máte problém velikosti, ne směrování.

Měňte pouze MTU. Ladění několika možností paketů najednou vám neřekne, která byla důležitá.

A nečekejte, že změna MTU opraví chybějící zpětnou trasu, pravidlo předávání nebo selhání DNS. Ty také vytvářejí příznaky bez provozu a mají vlastní testy. Manuál wg-quick dokumentuje automatický výběr.

Související články