ubuntuusers.de

Aushandeln der MTU klappt nicht

Status: Ungelöst | Ubuntu-Version: Ubuntu 20.04 (Focal Fossa)
Antworten |

Senifor79

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Hallo zusammen,

ich habe Ubuntu auf dem Server und auf dem Client (git-Server) Ein Freund von mir hat Ubuntu auch im Dualboot installiert. Leider muss man die MTU selbst anpassen, damit er per ssh auf den Server zugreifen kann. Ich dachte über ICMP wird die MTU automatisch augehandelt. Auf meinem Laptop mit Ubuntu klappt das auch , nur bei meinem Freund nicht. Was läuft da falsch ? (wir beide haben DSL, also ist die MTU auf 1492 begrenzt ?) Hat jemand eine Idee ? Muss ich am Paketfilter was besonderes eingestellt (hab ICMP und ssh zugelassen, ansonsten Drop Policy)

Vielen Dank.

Viele Grüße Senifor

Moderiert von kB:

Aus dem Forum „Netzwerk und Internetzugang einrichten“ in einen besser passenden Forenbereich verschoben. Bitte beachte die als wichtig markierten Themen („Welche Themen gehören hier her und welche nicht?“) im jeweiligen Forum! Danke.

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18199

Wohnort: in deinem Browser, hier auf dem Bildschirm

Schalte mal den Paketfilter komplett ab. Es gibt die MTU Path Discovery, das geht über ICMP.

https://en.wikipedia.org/wiki/Path_MTU_Discovery

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Danke für den Hinweis. Ich hab zwar den Paketfilter nicht ausgeschalten .... aber ich hatte nur Ping zugelassen (Typ 0 und 8) ... ich wusste nicht, dass es verschiedene ICMP Typen gibt. Hab jetzt alle zugelassen und warte auf ein wenig Zeit von meinem Freund, dass er das testet. Wenn das funzt, wäre das wunderbar 😀

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Da ergibt sich glaub ich noch ein anderes Problem mit meinem Server:

https://www.comconsult.com/richtige-mtu-size/

Wenn ich von meinem Server Ein Projekt klone (über VPN und Handy Accesspoint) funktioniert alles. Bei meinem Freund bricht irgendwann die Verbindung ab und git kommt zum erliegen (über ssh).

Was, wenn der Server (+VPN) zu große Datenpakete schickt und der Router meines Kumpels die verwirft bzw. das oben beschriebene Problem auftaucht.

Reicht es da, wenn ich die MTU meines Servers an dem entsprechenden Interface anpasse ? Und wenn ja, wie ermittle ich da die optimale MTU ?

Vielen Dank für eure Hilfe.

LG Senifor

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

VPN wird über IPsec (FritzBox) hergestellt.

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

gehört der Fred in die Fortgeschrittene Netzwerkkonfiguration ??? Wenn ja, kann es jemand bitte dahin verschieben ? Oder soll ich wegen dem Server einen neuen Thread aufmachen ?

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18199

Wohnort: in deinem Browser, hier auf dem Bildschirm

Die passende MTU wird automatisch ermittelt, sofern man das nicht durch dumme Firewallregeln (ICMP blockieren) blockiert.

Prüfe daher mit dem Wireshark, ob Pakete ICMP-Pakete ankommen, die eine zu kleine MTU melden.

Was, wenn der Server (+VPN) zu große Datenpakete schickt und der Router meines Kumpels die verwirft bzw. das oben beschriebene Problem auftaucht.

Dann kommt von diesem Router eine ICMP-Nachricht, dass die MTU zu groß ist.

Die "optimale" MTU kann immer abweichen, je nach Route. Wie ist die MTu denn aktuell? Bei Ethernet ist die 1500, bei ADSL kommt min. 8 Byte PPPoE dazu, ergo 1492. Nutzt man aber z.B. VLAN-Tagging zum Provider (meist bei VDSL und ADSL BNG), ist die noch geringer. Wenn dann unterwegs noch anderer Kram dazukommt, eventuell noch weniger. Prüfe die MTU mal für IPv4 und IPv6 mit dem MTU-Tester: http://www.letmecheck.it/mtu-test.php Beachte dass du bei IPv4 wahrscheinlich NAT hast und damit nur die MTU zu deinem NAT-Router testest.

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Beim Server ist die MTU 1500 .... die Fritzi über DSL 1492 ... dann noch VPN ... und bei meinem Kumpel DSL wieder 1492 und als Standard haben wir da unter Ubuntu auch 1500, aber manuell angepasst bei 1280.

Er kann sich per ssh verbinden, aber beim klonen eines git-Repos bleibt er mitten drin hängen ....

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18199

Wohnort: in deinem Browser, hier auf dem Bildschirm

Der kleinste Wert auf der Strecke ist hier maßgeblich. Es gibt aber da ja die MTU Path Discovery. Somit nimmt man überall die höchsten MTU-Werte und dann wird die kleinste MTU für eine Verbindung ermittelt. Wenn du die MTU am Interface festlegst, gilt dir für alle Pakete, wenn du also nur in deinem internen Ethwernet-Netzwerk was überträgst könntest du die 1500 problemlos nutzen, du nimmst aber dann 1280.

Sagen wir mal du änderst die IPv4-MTU auf 1000 (da sollte dann der Overhead der meisten Tunnel usw. abgedeckt sein), dann sollte das mit dem Repo funktionieren. Mache das bitte mal auf dem Client und auf dem Server. Dann testest du. Wenn es dann klappt ist es ein MTU-Problem.

Ist es denn IPv4 oder IPv6, wo das Problem auftritt? Tritt das auch ohne VPN auf?

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Vielen Dank für Deine Hilfe .... Wir werden das Testen.

(und nutze n IPv4)

ohne VPN haben wir es nicht probiert.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7782

Evtl. auch mal sysctl -a | grep mtu vergleichen ( net.ipv4.tcp_mtu_probing u.a. )

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9629

Wohnort: Münster

Senifor79 schrieb:

[…] Leider muss man die MTU selbst anpassen, damit er per ssh auf den Server zugreifen kann.

Das ist ein absolut ungewöhnliches Verhalten. Nur denkbar bei einer ungewöhnlicher und zudem falschen Konfiguration des Netzwerks.

Ich dachte über ICMP wird die MTU automatisch augehandelt.

Da wird nichts ausgehandelt und es muss auch nichts ausgehandelt werden. Die MTU gibt an, wie viele Nutz-Bytes in ein Paket der jeweils verwendeten Übertragungstechnik (z.B. Ethernet, WLAN, PPP, VPN, X.25) maximal passen. Wenn man längere Einheiten übertragen will, funktioniert es bei IP trotzdem, weil dann die IP-Pakete fragmentiert werden, d.h. in mehrere kleinere Einheiten für die Übertragung zerlegt und beim Empfänger wieder zusammengesetzt werden. Das kostet natürlich Performance, aber eben nicht die grundsätzliche Funktionsfähigkeit. Bei jedem Wechsel der Übertragungstechnik, also im Prinzip bei jedem Router, kann sich die MTU ändern. Lediglich beim Routing IPv4 ←→ IPv4 werden manchmal IP-Fragmente weitergegeben.

Die MTU auf Deiner Seite hat also nichts mit der MTU auf der Seite Deines Freundes zu tun, selbst wenn die beiden Zahlen gleich sind.

In der Regel muss man also bei IP die MTU gar nicht einstellen, sondern mit den üblichen Voreinstellungen ist immer eine Funktion möglich. Gelegentlich stellt man sie bei IPv4 ein, lediglich um die Fragmentierung zu verhindern und damit das Zeitverhalten zu optimieren. Dafür gibt es keine allgemeingültigen Regeln. Bei IPv6 ist eine automatische Erkennung der möglichen Ende-zu-Ende-Paketgröße ohne Fragmentierung eingebaut, dafür braucht es allerdings ICMPv6. Bei IPv4 gibt es einen solchen Mechanismus nicht; ICMPv4 transportiert allerdings auch Fehlermeldungen, die das Zeitverhalten verschlechtern können, wenn man sie unterdrückt.

Auf meinem Laptop mit Ubuntu klappt das auch , nur bei meinem Freund nicht.

Dann ist es naheliegend zu vermuten, dass der Fehler nicht auf Deinem Server zu finden, sondern in der Netzwerk-Konfiguration Deines Freundes zu suchen ist.

Probiere es zuerst mit den Voreinstellungen für die MTU auf beiden Seiten, schalte auf beiden Seiten die Firewall aus und verwende kein VPN. Wenn es dann funktioniert, schalte das VPN wieder ein und teste weiter.

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Danke für die Hilfe.

Ich habe gestern die MTU am Server auf 1000 eingestellt ... so hat es funktioniert und git hat das Projekt geklont.

VPN läuft über die FritzBox und MyFritz. Wenn ich VPN ausschalte, müsste ich eine Portweiterleitung auf der FritzBox einrichten.

1000 ist sicher nicht optimal, aber wenn es so funktioniert.

(es kann ja sein, dass der Router meines Freundes ein ICMP Paket zu große MTU schickt und der Server trotzdem wieder zu große Pakete schickt (nach einem gewissen Timeout).

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

Ich denke das hier ist das Problem:

https://www.comconsult.com/richtige-mtu-size/

(oder?)

Senifor79

(Themenstarter)

Anmeldungsdatum:
22. Februar 2012

Beiträge: 424

net.ipv4.ip_forward_use_pmtu = 0
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.route.min_pmtu = 552
net.ipv4.route.mtu_expires = 600
net.ipv4.tcp_mtu_probe_floor = 48
net.ipv4.tcp_mtu_probing = 0

Heißt MTU Path Discovery ist disabled , oder ?

Antworten |