So konfigurieren Sie eine große MTU (Linux)

So konfigurieren Sie eine große MTU (Linux)

Ich habe eine Gigabit-Ethernet-Verbindung von meinem Laptop zu meinem Router und eine funktionierende IPv6-Verbindung zum Internet. Ich kann sehr große Pakete von Websites im Internet empfangen, mit Größen von mindestens 10.000 Bytes (laut Wireshark). (bearbeiten: stellt sich als „generischer Empfangs-Offload“ von Linux heraus.) Beim Versuch, etwas zu senden, fragmentiert mein lokaler Computer jedoch bei IPv6 bei knapp unter 1500 Bytes. (Bei IPv4 kann ich TCP-Pakete mit mindestens 1514 Bytes ins Internet senden, ich kann mit Paketen bis zur konfigurierten MTU von 6128 pingen, aber sie werden in ein Blackhole verschoben.)

Ich verwende Ubuntu 12.04. Ich habe eine MTU für mein eth0 von 6128 (das maximal zulässige Maximum) konfiguriert, sowohl über ip link set dev eth0 mtu 6128als auch in der GUI des NetworkManager-Applets, und die Verbindung neu gestartet. ip link show eth0zeigt, dass die MTU von 6128 tatsächlich eingestellt ist. ip -6 routezeigt, dass für keinen der dem Kernel bekannten Pfade eine MTU eingestellt ist. Ich kann über IPv4 mit Paketen bis zu 6128 Bytes pingen (obwohl ich keine Antworten bekomme), aber wenn ich das tue, ping6 myrouter -c3 -s1500 -Mdobekomme ich Fehlerantworten.von meinem eigenen Computerbesagt, dass die Pakete zu groß sind und die MTU 1480 beträgt. Ich habe mit Wireshark bestätigt, dass nichts über die Leitung gesendet wird und die Antworten tatsächlich von meinem eigenen Computer generiert werden.

Also, wie bringe ich meinen Computer dazu, die größere MTU zu verwenden?

Antwort1

Was Sie sehen, sind höchstwahrscheinlich keine Jumbo-Frames. Immerhin laufen etwa 99,9 % des Internets mit einer MTU von 1500 Byte oder weniger. Wahrscheinlich führt nur Ihr Kernel oder Ihre Netzwerkkarte die Paketzusammenführung durch.

Dies geschieht mithilfe einer Funktion, die normalerweise Generic Recieve Offload (GRO) oder Large Recieve Offload (LRO) genannt wird. Dabei werden Pakete innerhalb eines einzelnen Datenflusses identifiziert und zusammengeführt und dann dem TCP/IP-Stapel zugeführt. Dadurch können viele CPU-Zyklen eingespart werden, da die Anzahl der Roundtrips in den Stapel reduziert wird.

Versuchen Sie Folgendes: ethtool -K $INTERFACE gro off

Dadurch wird diese Funktion deaktiviert und Wireshark wird zufriedener (aber nicht Ihre CPU)

Sie könnten lokal immer noch höhere MTUs verwenden, aber das bringt Ihnen gerade aufgrund solcher Funktionen und natürlich immer schnellerer Hardware nicht mehr viel. Außerdem kann es ein Albtraum für die Verwaltung sein. Es gibt viele fehlerhafte Treiber und Hardware und die Unterstützung für die Einstellung der MTU über DHCP oder RA in Betriebssystemen ist unterschiedlich. Da Sie möchten, dass alle Geräte in einer bestimmten Broadcast-Domäne dieselbe MTU verwenden, sind Jumbo-Frames oft unpraktisch.

Antwort2

Die MTU wird meist lokal verwendet. Die Verwendung von Jumbo-Frames über mehrere Netzwerk-Hops (wie Router+Internet) ist schwierig und wird höchstwahrscheinlich nicht funktionieren. DSL beispielsweise begrenzt normalerweise diePfad-MTUbis 1492 Bytes. Als allgemeine Regel wird die Pfad-MTU durch die kleinste Verbindungs-MTU zwischen den beteiligten Routern bestimmt. Wenn Sie nicht den gesamten Pfad kontrollieren und für jede Verbindung große MTUs festlegen, bewirkt eine Erhöhung der MTU nur auf Ihrem Computer nichts (außer vielleicht eine Verbesserung Ihrer LAN-Geschwindigkeit).

Antwort3

Ich habe anhand von Stefan Seidels Kommentar herausgefunden, wie das geht. Es stellte sich heraus, dass es eine weitere MTU-Einstellung gibt, die der ipBefehl nicht anzeigt. Das Einstellen eines höheren Werts im /proc/sys/net/ipv6/conf/eth0/mtu(Befehl sudo sh -c "echo 0 > /proc/sys/net/ipv6/conf/eth0/mtu"hat das gewünschte Ergebnis erzielt. (Nicht, dass es viel geholfen hätte, der Router hat tatsächlich größere Frames verloren.) Dieser Wert wird regelmäßig durch Router Advertisement aktualisiert/zurückgesetzt. RA kann deaktiviert werden, indem 0in accept_radenselben Ordner unter geschrieben wird /proc.

verwandte Informationen