(Zkopírováno z Unix Stack Exchange)
Máte příznaky MTU problém:některá TCP spojení zamrznou, více či méně reprodukovatelně pro daný příkaz nebo URL, ale bez snadno rozpoznatelného celkového vzoru. Výmluvným příznakem je, že interaktivní relace ssh fungují dobře, ale přenos souborů téměř vždy selže. Kromě toho je pppoe hlavním nositelem problému MTU pro domácí uživatele. Takže předepisuji kontrolu MTU.
Co to je? m axim t výkupné u nit je maximální velikost paketu přes síťové spojení. MTU se liší od transportního média k transportnímu médiu, např. kabelový Ethernet a wifi (802.11) mají různé MTU a linky ATM (které tvoří většinu infrastruktury na dlouhé vzdálenosti) mají každá svou vlastní MTU. PPPOE je zapouzdřený protokol, což znamená, že každý paket se skládá z několika bajtů hlavičky následovaný základním paketem — takže snižuje maximální velikost paketu o velikost hlavičky. IP umožňuje směrovačům fragmentovat pakety, pokud zjistí, že jsou příliš velké pro další skok, ale ne vždy to funguje. Teoreticky by měla být správná MTU objevena automaticky, ale také to vždy nefunguje. Zejména googlování naznačuje, že Network Manager ne vždy správně jedná na základě informací o MTU získaných při zjišťování MTU, ale nevím, které verze jsou ovlivněny nebo jaké jsou problematické případy použití.
Jak to měřit. Zkuste odeslat pakety ping dané velikosti externím hostitelům, kteří na ně odpoví, např. ping -c 1 -s 42 8.8.8.8
(na Linuxu; na jiných systémech vyhledejte dokumentaci ke svému ping
příkaz). Vaše pakety by měly projít pro dostatečně malé hodnoty 42 (pokud 42 nefunguje, něco blokuje pingy.). U větších hodnot paket neprojde. 1464 je typická maximální hodnota, pokud je omezující částí infrastruktury vaše místní síť Ethernet. Pokud budete mít štěstí, když odešlete příliš velký paket, zobrazí se zpráva jako Frag needed and DF set (mtu = 1492)
. Pokud nebudete mít štěstí, pokračujte v experimentování s hodnotou, dokud nezjistíte, jaké je maximum, a pak přidejte 28 (-s
určuje velikost užitečného zatížení a kromě toho je k dispozici 28 bajtů záhlaví). Viz také Jak optimalizovat připojení k internetu pomocí MTU a RWIN na fórech Ubuntu.
Jak to nastavit (nahraďte 1454 hodnotou MTU, kterou jste určili, a eth0
podle názvu vašeho síťového rozhraní)
- Jako jednorázové (Linux):spusťte
ifconfig eth0 mtu 1454
- Trvale (Debian a odvozeniny, jako je Ubuntu, pokud nepoužíváte Správce sítě):Upravit
/etc/network/interfaces
. Hned za záznam pro vaše síťové rozhraní (zaiface eth0 …
direktiva), přidejte řádek spre-up ifconfig $IFACE mtu 1454
. Případně, pokud je vaše IP adresa statická, můžete přidatmtu 1454
parametr naiface eth0 inet static
směrnice. -
Trvale (Debian a odvozeniny, jako je Ubuntu, s nebo bez Správce sítě):Vytvořte skript s názvem
/etc/network/if-pre-up.d/mtu
s následujícím obsahem a učinit jej světově spustitelným (chmod a+rx
):#!/bin/sh ifconfig $IFACE mtu 1454