Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Internet a sítě => Téma založeno: beer 14 Února 2013, 15:09:27
-
Lámu si hlavu nad tím, proč výchozí nastavení MTU v ubuntu je 1500.
Všichni kolem mne potřebují MTU 1492, protože jsou to zákazníci o2, upc nebo wifi poskytovatelů, kteří vyšší mtu také nemají.
Je pro to nějaký rozumný důvod?
-
protože je to prostě defaultní hodnota pro ethernetové sítě?
Následující tabulka shrnuje výchozí velikosti jednotky MTU pro různé síťové médium.
Network MTU (bytes)
-------------------------------
16 Mbps Token Ring 17914
4 Mbps Token Ring 4464
FDDI 4352
Ethernet 1500
IEEE 802.3/802.2 1492
PPPoE (WAN Miniport) 1480
X.25 576
EDIT: ještě ATM myslím mělo "buňky" natvrdo 56 bytů
-
ATM myslíš nějaký bankovat :)?
V té tabulce jsou spíše maximální možné hodnoty, ne?
RJ45 slouží primárně k připojení k internetu, nikoliv ethernetu ve smyslu LAN (na desktopech), a jako nejběžnější mi přijde právě mtu 1492. Možnost použít vyšší mtu je spíše rarita a v případě chybného nastavení je potom požadována fragmentace paketů, která je problémová. Nejsem ale síťař, tak samozřejmě můžete uvést případně na pravou míru.
Schválně, otestujte si své připojení, za -s dejte číslo mtu mínus 28.
medved@ubuntu-desktop:~$ ping -M do -s1464 -c4 nic.cz
PING nic.cz (217.31.205.50) 1464(1492) bytes of data.
1472 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=58 time=23.0 ms
1472 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=58 time=22.9 ms
1472 bytes from www.nic.cz (217.31.205.50): icmp_req=3 ttl=58 time=22.9 ms
1472 bytes from www.nic.cz (217.31.205.50): icmp_req=4 ttl=58 time=22.7 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 22.716/22.886/23.018/0.186 ms
medved@ubuntu-desktop:~$ ping -M do -s1465 -c4 nic.cz
PING nic.cz (217.31.205.50) 1465(1493) bytes of data.
From ubuntu-desktop.local (10.0.0.1) icmp_seq=1 Frag needed and DF set (mtu = 1492)
From ubuntu-desktop.local (10.0.0.1) icmp_seq=1 Frag needed and DF set (mtu = 1492)
From ubuntu-desktop.local (10.0.0.1) icmp_seq=1 Frag needed and DF set (mtu = 1492)
From ubuntu-desktop.local (10.0.0.1) icmp_seq=1 Frag needed and DF set (mtu = 1492)
--- nic.cz ping statistics ---
0 packets transmitted, 0 received, +4 errors
Jak je vidět, tak 1464 (což odpovídá mtu 1492) projde, 1465 ne.
Tak kdo řešíte občasné problémy s výpadky netu při stahování a pod, tak si zkontrolujte pingem, jestli máte správně nastaveno. Pro správné nastavení byste měli zvolit číslo, které projde a navýšit ho o 28.
A jak to nejjednoduššeji nastavit?
V network manageru (nm-connection-editor) kliknout na upravit a nastavit správnou hodnotu.
Pokud potřebujete opravit na dálku třeba přes ssh, tak mne se osvědčilo (není to asi úplně systémově správně, ale návody, co jsem zkoušel, byly pro starší verze ubuntu a nefungují) dát do souboru /etc/rc.local:
#!/bin/sh -e
### Nastavení nižšího MTU
ip link set dev eth0 mtu 1492 &
ip link set dev eth1 mtu 1492 &
ip link set dev wlan0 mtu 1492 &
exit 0
-
Zde (http://www.abclinuxu.cz/poradna/hardware/show/345560)jsem se dočetl, že je možné ještě nastavit takto:
iptables -t mangle -I FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
ip6tables -t mangle -I FORWARD 1 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Co to přesně dělá? Je to funkční i na ubuntu?
Jinak jsem u nás u specialisty na datové služby zjišťoval, a MTU by se mělo na operačních systémech nastavovat automaticky a funguje to prý ve většině případů dobře i na starých windows XP. Proč to automatické nastavení nefunguje správně v ubuntu?
-
skúsil som a výsledok
vgr@vgr-unix:~$ ping -M do -s1464 -c4 nic.cz
PING nic.cz (217.31.205.50) 1464(1492) bytes of data.
1472 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=29.1 ms
1472 bytes from enum.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=26.3 ms
1472 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=23.8 ms
--- nic.cz ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3010ms
rtt min/avg/max/mdev = 23.840/26.477/29.197/2.195 ms
vgr@vgr-unix:~$ ping -M do -s1465 -c4 nic.cz
PING nic.cz (217.31.205.50) 1465(1493) bytes of data.
1473 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=128 time=26.0 ms
1473 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=26.7 ms
1473 bytes from enum.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=24.6 ms
1473 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=25.8 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 24.616/25.806/26.757/0.768 ms
vgr@vgr-unix:~$ ping -M do -s1100 -c4 nic.cz
PING nic.cz (217.31.205.50) 1100(1128) bytes of data.
1108 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=128 time=26.3 ms
1108 bytes from enum.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=24.8 ms
1108 bytes from www.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=25.0 ms
1108 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=23.3 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 23.397/24.915/26.327/1.038 ms
posledné 1100 som len tak skúsil čo to robí
edit: ďalšie pokusy s 1464 už boli 100% ok
a aby to bolo úplné vgr@vgr-unix:~$ ping -M do -s1472 -c4 nic.cz
PING nic.cz (217.31.205.50) 1472(1500) bytes of data.
1480 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=128 time=25.5 ms
1480 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=25.5 ms
1480 bytes from enum.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=24.4 ms
1480 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=24.2 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 24.258/24.944/25.547/0.608 ms
neviem či ti to k niečomu bude
-
v defaultnim mtu ubuntu (pro ethernet site) asi problem nebude...
$ ping -s 35000 www.ubuntu.cz
PING www.ubuntu.cz (217.31.205.115) 35000(35028) bytes of data.
35008 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=1 ttl=58 time=6.82 ms
35008 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=2 ttl=58 time=8.05 ms
35008 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=3 ttl=58 time=5.55 ms
^C
--- www.ubuntu.cz ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 5.555/6.811/8.057/1.025 ms
-
skúsil som a výsledokvgr@vgr-unix:~$ ping -M do -s1464 -c4 nic.cz
PING nic.cz (217.31.205.50) 1464(1492) bytes of data.
1472 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=29.1 ms
1472 bytes from enum.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=26.3 ms
1472 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=23.8 ms
--- nic.cz ping statistics ---
4 packets transmitted, 3 received, 25% packet loss, time 3010ms
rtt min/avg/max/mdev = 23.840/26.477/29.197/2.195 ms
vgr@vgr-unix:~$ ping -M do -s1465 -c4 nic.cz
PING nic.cz (217.31.205.50) 1465(1493) bytes of data.
1473 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=128 time=26.0 ms
1473 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=26.7 ms
1473 bytes from enum.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=24.6 ms
1473 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=25.8 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 24.616/25.806/26.757/0.768 ms
vgr@vgr-unix:~$ ping -M do -s1100 -c4 nic.cz
PING nic.cz (217.31.205.50) 1100(1128) bytes of data.
1108 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=128 time=26.3 ms
1108 bytes from enum.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=24.8 ms
1108 bytes from www.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=25.0 ms
1108 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=23.3 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 23.397/24.915/26.327/1.038 ms
posledné 1100 som len tak skúsil čo to robí
edit: ďalšie pokusy s 1464 už boli 100% ok
a aby to bolo úplné vgr@vgr-unix:~$ ping -M do -s1472 -c4 nic.cz
PING nic.cz (217.31.205.50) 1472(1500) bytes of data.
1480 bytes from www.nic.cz (217.31.205.50): icmp_req=1 ttl=128 time=25.5 ms
1480 bytes from www.nic.cz (217.31.205.50): icmp_req=2 ttl=128 time=25.5 ms
1480 bytes from enum.nic.cz (217.31.205.50): icmp_req=3 ttl=128 time=24.4 ms
1480 bytes from enum.nic.cz (217.31.205.50): icmp_req=4 ttl=128 time=24.2 ms
--- nic.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 24.258/24.944/25.547/0.608 ms
neviem či ti to k niečomu bude
Ono záleží, co máš za poskytovatele. Nejsi na adsl/vdsl nebo u upc, proto ti to projde...
-
v defaultnim mtu ubuntu (pro ethernet site) asi problem nebude...
$ ping -s 35000 www.ubuntu.cz
PING www.ubuntu.cz (217.31.205.115) 35000(35028) bytes of data.
35008 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=1 ttl=58 time=6.82 ms
35008 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=2 ttl=58 time=8.05 ms
35008 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=3 ttl=58 time=5.55 ms
^C
--- www.ubuntu.cz ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 5.555/6.811/8.057/1.025 ms
Nemáš zakázanou fragmentaci, tak proto ti to jde bez problémů i na takováto čísla. Problém je, když packety bloudí a chodí různými cestami, třeba u torrentů. Schválně si zkus:
ping -M do -s1465 -c4 www.ubuntu.cz
Pokud máš O2 nebo UPC, tak to bude hlásit, že potřebuje fragmentovat.
Jak máte nastavené aktuálně mtu zjistíte například z výpisu ifconfig | grep MTU.
-
$ ping -M do -s1472 -c4 www.ubuntu.cz
PING www.ubuntu.cz (217.31.205.115) 1472(1500) bytes of data.
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=1 ttl=58 time=4.63 ms
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=2 ttl=58 time=4.05 ms
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=3 ttl=58 time=4.39 ms
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=4 ttl=58 time=4.94 ms
--- www.ubuntu.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 4.057/4.509/4.942/0.324 ms
-
jmp, a co máš za poskytovatele :)? Prostě na adsl/vdsl nebo kabelovce to nejde...
-
aktuálně CESNET
-
opravdu není problém v defaultním nastavení ubuntu, pokud se toho defaultu držej všichni...
-
tohle je z domova (HC NET):
$ ping -M do -s1472 -c4 www.ubuntu.cz
PING www.ubuntu.cz (217.31.205.115) 1472(1500) bytes of data.
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=1 ttl=53 time=14.9 ms
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=2 ttl=53 time=14.4 ms
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=3 ttl=53 time=14.4 ms
1480 bytes from yasha.ubuntu.cz (217.31.205.115): icmp_req=4 ttl=53 time=14.7 ms
--- www.ubuntu.cz ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 14.463/14.652/14.923/0.239 ms
-
Pouze teoretický dotaz:
Jsem na domácí síti, ke které je různými způsoby (WiFi/Ethernet) připojeno několik zařízení s různými OS. Na PC s Xubuntu 11.10 nebyl problém, ale jak jsem na netbook naistaloval Xubuntu 13.04, zjistil jsem že na něm nefungují video streamy (youtube, živé vysílání ČT 24 atd.). Připojil jsem se k síti i svým notebookem s Xubuntu 13.04 a zjistil jsem stejný problém. Shodou okolností jsem zjistil, že na těchto zařízeních nefunguje ani Upload souborů. Trochu jsem Googlil a zjistil, že to má cosi společného s MTU. Podle zde uvedeného návodu jsem dospěl k tomu, že musím na routeru nastavit MTU 1400. A skutečně, od té doby fungují jak streamy, youtube i upload, tedy problém se tímto vyřešil.
Bohužel však nedokážu otestovat všechny síťové služby na všech zdejších zařízeních, tak se ptám: mám, v souvislosti se změnou MTU z 1500 na 1400, čekat nějaký jiný problém někde jinde? Děkuji za případnou odpověď.
-
Ne, nejlepší je používat mtu, kterou tvá síť umí. Pokud je 1400 nejvyšší hodnota, kterou tvůj poslytovatel umí, tak jí používej.
-
Pokud je 1400 nejvyšší hodnota, kterou tvůj poslytovatel umí, tak jí používej.
No, to já si právě nejsem jistej, jestli je to záležitost poskytovatele. Jak to poznám? Určitě ne tím pingem, protože ten nejspíš reaguje na všechny ty nastavení, který se v síti vyskytnou. Síť mám zapojenou tak, že všechny zařízení se připojujou přes můj wifi router (do kterého mám přístup a mohu nastavovat co chci, např. MTU 1400) a tento router je připojenej k routeru poskytovatele, do kterého se samozřejmě nemám šanci dostat, tedy nevím, jaké MTU je nastaveno tam).
Dost mě totiž mate to, že žádné ze zařízení (PC s Xubuntu 11.10, Rikomagic s Androidem, iPhone s OS apod.), které bylo dosud k síti připojeno, nemělo s nastavením MTU 1500 žádný problém. Teprve až ve chvíli, kdy se začnou připojovat zařízení s Xubuntu 13.04, je najednou potřeba přenastavovat parametry sítě na routeru. Divný, ne?
-
Tím pingem se zakázanou fragmentací to právě poznáš. MTU 1500 je ok pro lan, dokonce některé síťové karty umí daleko vyšší mtu, ale ne zpravidla poskytovatelé. MTU 1400 není moc běžné. Běžnější je 1492. 1400 je běžné spíše při připojování přes vpn. Každopádně je možné, že máš mtu 1400. Pokud nastavíš mtu 1400 a poskytovatel by uměl 1500 nebo 1492, tak síť ztratí trošičku na výkonu, ale na druhou stranu ti to takto funguje. Mne funguje OK 1492, protože mám poskytovatele O2. Na technologii ADSL/VDSL nebo na kabelovce mtu 1500 nefunguje optimálně. Parametry tvého internetu můžeš zjistit i z dokumentace poskytovatele, nebo můžeš zavolat na technickou podporu poskytovatele internetu a zeptat se ho.
-
Nevím, jestli si rozumíme. Poskytovatel umí 1500, ale pouze pro zařízení, na kterých neběží Xubuntu 13.04. Z toho mi tak nějak vyplývá, že chyba není v poskytovateli, ale v Xubuntu 13.04.
-
To nedává smysl. MTU není závislé na os. Buď funguje automatické zjištění hodnoty a fragmentace, nebo nefunguje. V rámci jedné sítě bys měl používat shosné mtu, abys předešel problémům. A to takové, které umí tvůj poskytovatel i připojená zařízení.
-
To nedává smysl.
Myslím, že je zjevné, že problematice MTU moc nerozumím. Nicméně fakta jsou taková: otec jednoho dne souhlasil, že mu na jeho netbook nahraju "ten linux". Stalo se, nainstaloval jsem Xubuntu 13.04, jenže nešly streamy a upload. Vytáhnul jsem svůj notebook také s Xubuntu 13.04 a zjistil, že mám stejný problém (který na síti u mne doma nemám). Zkusil jsem matčino PC s Xubuntu 11.10 a streamy a upload v pořádku. Připomínám, že ani na jiném zařízení nebyl podobný problém. Po přenastavení MTU z 1500 na 1400 zmizely problémy i na těch dvou zařízeních s Xubuntu 13.04. Jak bys toto celé interpretoval ty?
-
Také nejsem odborník, interpretoval bych to tak, že stroje z windows mají lepší systém automatického zjišťování MTU. U 11.10 nevím jak je nastaveno, jestli na automatiku a přitom funguje bez problémů, tak asi tam ta automatika funguje. Nebo nefunguje, a je nastaveno ručně na nižší hodnotu, nebo je nastaveno automaticky na 1500 i u toho s 11.10, ale problém se z nějakého důvodu tam neprojevuje.
Pokud prostě pomohlo snížení MTU a těch 1400 je nejvyšší hodnota, která ti pingem při zakázané fragmentaci projde, tak jí ponech a nastav jí na všech zařízeních v dané síti. Doma v jiné síti samozřejmě si ponech MTU na hodnotě vyšší, když ti funguje OK.
-
Všechny zařízení mají nastavenou automatiku a když to tak funguje, raději to tak nechám. Ani nevím, jak bych to nastavoval třeba u iPhone ...
Každopádně díky za konzultaci :-)
-
Psal si, že ti automatika nefunguje, že se problémy odstranili při nastavení MTU 1400.
Telefony a windows bych neřešil, ale v Ubuntu mám s automatikou špatnou zkušenost.
Co bych udělal já, tak nastavil automatické mtu na routeru i na ubuntu a vyzkoušel tím pingem se zakázanou fragmentací. Zjištěnou nejvyšší hodnotu, která ještě projde bych nastavil na routeru. Pak bych vyzkoušel, jestli se bude sekat video a upload v ubuntu a pokud ano, tak bych nastavil v ubuntu MTU ručně na zjištěnou hodnotu, která prošla+28. To znamená, že když pingem projde 1464 a 1465 už ne, tak nastavit MTU na 1464+28=1492.
-
Psal si, že ti automatika nefunguje, že se problémy odstranili při nastavení MTU 1400.
Ne, skutečně jsem všude ponechal automatiku. Jedinou změnu, kterou jsem provedl byla ta změna MTU na routeru.
Co bych udělal já, tak nastavil automatické mtu na routeru ...
To nejde, jde tam zadat pouze absolutní hodnota.
No, nechal bych to bejt, když to fachá. Problémy se mají řešit teprve až když nastanou.
-
OK. V tom případě ti postačí to mít na routeru správně :). Já na svém wifi modemu od O2 mtu měnit nemohu, kámoš také ne a nastavení nižší mtu v ubuntu nám pomohlo.
-
Tak u mě projde sítí bez fragmentace mnohem větší hodnota než 1500, ale něco jsem zkusil, nastavil jsem na routeru místo 1500, těch 1492, nechal systém znovu načíst síťové parametry a nestačil jsem se divit, automatika nechala nastaveno 1500 i přes fakt, že hrdlo v routeru bylo nastaveno na 1492. V ten moment to začíná fragmentovat, systém totiž má nastaveno 1500, ale router zpracovává jen 1492.
Dobře, řekl jsem si, nefunguje to, systém nastavuje 1500 ať routeru nastavím cokoli. Jenže potom jsem zapnul Windows (XP a 7) a koukám, MTU nastaveno též na 1500. Kontroluji router, v něm pořád hodnota 1492, vytvářím tedy nové připojení a nechám systém znovu načíst parametry sítě a nic. Windows opět (stejně jako Ubuntu) nastavuje 1500, aby toho nebylo málo, tak u XP se musí hodnota MTU změnit dost neprakticky přes editaci registru, navíc W7 mi při hodnotě 1492 v routeru začínají hlásit omezené připojení na wifi, to zmizí v momentě kdy jim nastavím ručně 1492 nebo vrátím router na 1500.
-
Zde píší, že by měla normálně fungovat PMTUD, aby se zjistila optimální hodnota pro MTU.
http://www.root.cz/clanky/velke-trable-s-malym-mtu/ (http://www.root.cz/clanky/velke-trable-s-malym-mtu/)
Techniku objevování MTU cesty používá většina moderních implementací TCP/IP stacku.
Proč to tedy nikde nefunguje?
Třešnička na dortu: dnes jsem navrhoval v rámci naší sítě zvýšení MTU na hodnotu 1500. Bylo mi řečeno, že uživatelé nehlásí problémy s nízkým MTU a že sice by bylo technicky snad v naší síti možné MTU zvýšit, ale že mají obavu z toho, že by někteří klienti mohli fungovat špatně. Dle informací z Helpdesku si na velikost MTU klienti nestěžují a jediný zaznamenaný problém většího rázu se vyskytl u konzolí Xbox. Tento problém vyřešil sám výrobce updatem firmware. Dokud si zákazníci nezačnou stěžovat na nízké MTU, tak náš poskytovatel ve své síti MTU zvyšovat nebude.