Kto vyberá MTU pre WireGuard: wg-quick, jadro alebo vy
WireGuard o MTU nevyjednáva. Rozhoduje nástroj na nastavenie, správca siete alebo váš konfiguračný riadok, a predvolená hodnota je odhad cesty, nie meranie.
WireGuard nemá žiadne vyjednávanie MTU. Zašifruje, čo mu rozhranie odovzdá, a odošle výsledok, a ak zapuzdrený balík prekročí cestu, niekde sa zahodí alebo fragmentuje, kde to nevidíte. MTU rozhrania musí niekto zvoliť a tým niekým je nástroj, ktorý rozhranie zdvihol.
Existujú traja kandidáti a je ľahké ich zameniť.
Tri miesta, odkiaľ môže hodnota prísť
Hodnotu možno nastaviť výslovne v konfigurácii rozhrania, vypočítať nástrojom na nastavenie z informácií o trase, alebo ju nastaví ktorýkoľvek správca siete, ktorému rozhranie patrí. Bežné volanie wg nerobí nič z toho, pretože wg spravuje iba kľúče a protistrany. MTU žije na sieťovom rozhraní, a preto ip link show wg0 je miesto, kde ho čítate.
Ak si nie ste istí, ktorý prípad platí, najprv prečítajte MTU a potom zistite, kto rozhranie spustil.
Rozhodnite podľa toho, kto rozhranie spravuje
Ak ho spúšťa wg-quick, vyhráva výslovný riadok MTU, inak vypočíta hodnotu. Ak ho spúšťa správca siete, rozhoduje profil tohto správcu. Ak ho spúšťa kontajnerové prostredie alebo klientsky program poskytovateľa, čítajte ich dokumentáciu, namiesto toho, aby ste predpokladali správanie wg-quick.
Rozhodnutie nie je o tom, ktoré číslo je najlepšie v abstrakte. Je o tom, ktorý komponent môžete skutočne nakonfigurovať.
Čo robí predvolený výpočet
wg-quick vyhľadá trasu ku koncovému bodu protistrany, vezme MTU tohto odchádzajúceho rozhrania a odpočíta réžiu zapuzdrenia. S vonkajšou hlavičkou IPv4 je to asi 60 bajtov, s IPv6 asi 80. Výsledok sa obmedzí, takže cesta s 1500 bajtmi dá 1420, a nie hodnotu, ktorá funguje len v jednej rodine adries. To je rozumná predvolená hodnota, nie meranie vašej cesty.
Nemôže vedieť o neskoršom tuneli, mobilnom spojení alebo filtrovanej ceste ICMP.
Obmedzenie skrýva skutočnú otázku. Ak je vaša cesta naozaj 9000 bajtov od konca po koniec, 1420 necháva výkon na stole, a ak je cesta 1400, 1420 je už príliš veľké. Predvolená hodnota je kompromis a tak sa k nej treba správať.
Keď sa cesta pod vami zmení
Notebook, ktorý prechádza z Ethernetu na Wi-Fi a potom na hotspot telefónu, si ponechá MTU rozhrania, s ktorým začal. Vonkajšia cesta môže byť teraz menšia a nič znova nevyjednáva. Vnorené tunely to zhoršujú, pretože každá vrstva odpočíta svoju réžiu z rovnakého rozpočtu. Hodnota, ktorá fungovala v kancelárii, nie je hodnota, ktorá funguje na letisku.
Nedávny handshake dokazuje, že kľúče fungujú. O tom, či sa zmestia veľké balíky, nedokazuje nič.
Testujte jedno číslo po druhom
Zachovajte rovnakú aplikáciu a cieľ, zmeňte jednu hodnotu a merajte. ping -M do -s 1372 testuje balík s 1400 bajtmi s nastaveným bitom DF a to je tvar testu, ktorý chcete. Ak malé požiadavky fungujú a veľké sa zaseknú, máte problém s veľkosťou, nie so smerovaním.
Meňte iba MTU. Ladenie niekoľkých možností balíka naraz vám nepovie, ktorá bola dôležitá.
A nečakajte, že zmena MTU opraví chýbajúcu spätnú trasu, pravidlo preposielania alebo zlyhanie DNS. Tie tiež vytvárajú príznaky bez prevádzky a majú vlastné testy. Manuál wg-quick dokumentuje automatický výber.