[Berlin-wireless] MTU verstehen...

Loria Loria at Phantasia.org
Di Apr 19 11:53:48 CEST 2016


Ahoi,

Webseiten interessiert die MTU erstmal herzlich wenig. 
Den TCP+UDP+IP Layer interessiert es natürlich schon, wie groß die Einzelpakete sein dürfen, damit sie ihr Ziel erreichen können.
IP selber definiert die Paketegrößen bis zu 64k (bin mir im Moment nicht sicher, in wie weit es heir auch schon, wie bei TCP einen Skalierfaktor gibt).
Ist die MTU also kleiner als 64k muss ein maximalgroßes Paket also in MTU (handlich) große Happen zerteilt werden (Fragmentierung).
Wenn ein Paketsender aber sicherstellen will, daß sein Paket NICHT fragmentiert wird, dann setzt dieser die DF Option, womit er sagt:
NEIN, nicht fragmentieren (Donnot Fragment). Dies löst solange ein ICMP Paket „fragmentation needed“ an den Hops aus, bis eine Paketgröße gewählt worden ist, die durch alle Hops durchpasst.
(Hierbei ist wichtig, daß ein funktionierender IPStack (der das ICMP Fragmentation needed aussendet) den Teil des Paketes, der die Meldung erzeugt hat, mit zurückschickt) bzw entsprechend das ICMP Paket auch verarbeitet.

Probleme ergeben sich hier, wenn ein Absender der Pakete wegen fehlerhafter Firewalleinstellungen die betreffenden ICMP Meldungen nicht erhält und damit erfährt, daß er zu große Pakete sendet (habe das zB bei GMX erlebt).

TCP kennt nun die Möglichkeit eine MSS zu übermitteln; Doch richtet die Wahl sich im allgemeinen an der MTU der lokalen Konfigurationen aus (siehe Bastians Mail mit dem RFC Link).

Dies ist besonders bei Strecken von Bedeutung, die PPPoE verwenden (wie 0815 DSL, in wie weit die heutigen „DSL-Plaste-Router“ mit eingebautem "DSL-Modem“ hier einfach die Pakete um den PPPoE Kopf vergrößert auf die ATM(bislang verwenden die zumindest zwischen CPE und COE -Strecken ATM)-Strecken legen, weiss ich im Moment nicht); hier nämlich denkt ein angeschlossenes Gerät, es habe eine MTU von 1500. Tatsächlich ist sie aber 1484. Wenn nun (wie erlebt) von einem Zielserver DF gesetzt wird, um zu erkennen, was die MTU ist und die ICMP Meldung ihm vorenthalten wird, so wird die Kommunikation nicht klappen, denn die MSS Korrektur kann so nicht funktionieren.
Router-Hersteller sind daher dazu übrgegangen (ich denke jeder Linuxkern hat heute das Modul intus) die MSS im TCP Syn Paket zu manipulieren und senken die MSS einfach auf das Level, was das IF des nächsten Hops beherrscht.

(Bitte schaut Euch dennoch den RFC an, dessen Link Bastian gepostet hat)


> Am 19.04.2016 um 10:16 schrieb Smilie <smilie at posteo.de>:
> 
> Ohjeh da stellen sich gleich tausende Fragen.
> 
> Woher wissen die Webseiten wie große unsere MTU ist?
> OK. Ich vermute, es ist ihnen egal.
> 
> Hätten die Webseiten vom Router-Kernel dann nicht automatisch
> segmentiert werden müssen?
> Wenn es dabei trotzdem Probleme gibt, ist das  Segmentieren auf
> OpenWRT kaputt?
> 
> 
> (:
> 
> 
> 
> Am Tue, 19 Apr 2016 05:37:47 +0200
> schrieb Alexander Couzens <lynxis at fe80.eu>:
> 
>> Hallo Smilie,
>> 
>> die MTU beschreibt das maximale Paketgröße auf dem Interface.
>> Damit alles klappt, müssen alle Teilnehmer eines Segmentes die selbe
>> MTU haben.
>> Unsere MTU ist 1500, der Standard für Ethernet und Wlan.
>> Die MTU beschreibt die Größe eines Paketes.
>> Ein Beispiel mit Ping. Ein Pingpaket ist ICMP:
>> 1500 >= IPHeader+ICMPHeader+Payload
>> 
>> Wenn du deine MTU änderst, dann empfängst du keine Pakete die größer
>> als *deine* MTU ist. Du hast kein "volles" Internet mehr, weil die
>> Webseiten versuchen dir größere Pakete zu schicken.
>> 
>> Außerdem:
>>> ping -s1500 -c1 10.230.4.x  
>> erzeugt ein IP Paket mit 1528 Bytes.
>> 1500 Payload + 8 UDP Header + 20 IP Header
>> 
>> Ist ein IP Paket zu groß für eine MTU, dann wird dieses Paket
>> segmentiert, also in 2 Teile aufgeteilt.
>> 
>> Um das Segmentieren zu verhindern, setzt man `-M do`
>> ping -M do -s 1472 10.230.4.x
>> (1472 + 20 + 8 = 1500 bytes)
>> 
>> Btw. DSL Anschlüsse haben überlicherweise eine MTU von 1492.
>> 
>>> Bei 1500 ging so gut wie nix auf dem Äther quer durch das
>>> Freifunknetz. Bei 1450 konnte ich dem Augenblick der Abarbeitung
>>> kaum folgen. Demnach habe ich auf allen Interfaces (LAN, WLAN, DHCP)
>>> meinem Routern (AP, AD-HOC) den MTU-Wert auf 1450 gesetzt.
>>> Das Resultat war...
>>> Es ging kein Internet mehr (außer eben Google).
>>> Pings und DNS dagegen liefen problemlos.  
>> DNS und Pings sind überlicherweise recht klein.
>> Webseiten sind groß, deshalb gibt es dort Probleme.
>> 
> 
> _______________________________________________
> Berlin mailing list
> Berlin at berlin.freifunk.net
> http://lists.berlin.freifunk.net/cgi-bin/mailman/listinfo/berlin
> Diese Mailingliste besitzt ein ffentlich einsehbares Archiv



Mehr Informationen über die Mailingliste Berlin