MTU und MSS optimieren in OPNsense: Ein Leitfaden für eine effiziente Netzwerkkonfiguration

Optimale Netzwerkkonfiguration ist entscheidend für eine reibungslose und effiziente Netzwerkkommunikation. Zwei wichtige Parameter, die dabei eine Rolle spielen, sind die Maximum Transmission Unit (MTU) und die Maximum Segment Size (MSS). In diesem Blogpost erfahren Sie, wie Sie MTU und MSS in OPNsense optimieren können, um die Netzwerkleistung zu verbessern und Fragmentierung zu vermeiden.

OPNSENSER-SPARTA

Benjamin Mönius

12/16/20244 min lesen

Erfahre mehr auf YouTube

Erfahre mehr auf der Tonspur im Video zu diesem Thema.

Hinweis: Falls das YouTube Video zu diesem Thema noch nicht vorhanden ist, wird das Intro abgespielt.

Was sind MTU und MSS?

MTU (Maximum Transmission Unit) ist die größte Größe eines einzelnen Netzwerkpakets, das über ein Netzwerksegment übertragen werden kann, ohne fragmentiert zu werden. Eine optimale MTU stellt sicher, dass Pakete in der größtmöglichen Größe gesendet werden, ohne die Notwendigkeit der Fragmentierung, die die Leistung beeinträchtigen kann. Standardmäßig beträgt die MTU für Ethernet 1500 Bytes.

MSS (Maximum Segment Size) bezieht sich auf die maximale Größe eines TCP-Segments, das gesendet werden kann, ohne fragmentiert zu werden. MSS wird normalerweise durch die MTU des Netzwerks minus der Header-Größen für IP und TCP bestimmt.

Layer der Pakete:

Die Begriffe MTU und MSS beziehen sich auf unterschiedliche Schichten des OSI-Modells:

  • MTU (Maximum Transmission Unit):

    • Bezieht sich auf die maximale Größe eines Netzwerkpakets auf dem Data Link Layer (Schicht 2).

    • Dieser Layer kümmert sich um die physische Übertragung von Datenrahmen über das Netzwerk (z. B. Ethernet).

    • MTU beschreibt, wie groß ein Frame sein darf, einschließlich des Payloads (Daten) und des Layer-2-Headers.

  • MSS (Maximum Segment Size):

    • Bezieht sich auf den Transport Layer (Schicht 4), speziell auf TCP (Transmission Control Protocol).

    • MSS definiert die maximale Datenmenge innerhalb eines TCP-Segments, ohne die TCP- und IP-Header.

    • Die MSS wird aus der MTU berechnet, indem die Größen des IP-Headers (20 Bytes) und des TCP-Headers (20 Bytes) abgezogen werden.

    • Beispiel: Bei einer MTU von 1500 Bytes beträgt die MSS typischerweise 1460 Bytes (1500 - 20 - 20).

MTU

Gilt für den Data Link Layer (Schicht 2)

Bezieht sich auf die maximale Größe eines Frames

Enthält den gesamten Layer-2-Header und die Nutzlast

Beispiel: Ethernet-MTU = 1500 Bytes

MSS

Gilt für den Transport Layer (Schicht 4)

Bezieht sich auf die maximale Größe eines TCP-Segments

Nur Nutzlast der TCP-Daten ohne IP- und TCP-Header

Beispiel: MSS = 1460 Bytes bei einer MTU von 1500 Bytes

Unterschiede zwischen MTU und MSS:

Warum MTU und MSS wichtig sind

Eine nicht optimal konfigurierte MTU oder MSS kann Netzwerkprobleme verursachen:

  • Fragmentierung: Ist die MTU zu groß für den nächsten Hop im Netzwerk, müssen Pakete fragmentiert werden, was die Leistung beeinträchtigen und zu Verzögerungen führen kann.

  • MTU Blackholes: Wenn Fragmentierung verboten ist (z. B. durch das "Don't Fragment"-Bit), können zu große Pakete einfach verworfen werden, was Verbindungsprobleme verursacht.

  • Effizienz: Eine zu kleine MTU/MSS erhöht den Overhead, da mehr Pakete übertragen werden müssen.

Die richtige MTU/MSS verbessert die Netzwerkauslastung, reduziert Fragmentierung und sorgt für reibungslose Verbindungen, insbesondere bei VPNs, DSL oder LTE, wo MTU-Werte häufig angepasst werden müssen.

MTU-Bestimmung mit ping für IPv4 (Linux)

Grundsätzliche Syntax:

  • -M do: Verhindert Fragmentierung (Do not Fragment).

  • -s: Gibt die Größe des ICMP-Payloads an (in Bytes).

  • <ZIEL>: Die Zieladresse (z. B. IP-Adresse oder Domain).

MTU ermitteln:

  • Die MTU ist die Größe des gesamten Pakets, inklusive Header. Bei IPv4 ist die maximale Größe eines Pakets in der Regel 1500 Bytes

    (Standard für Ethernet).

  • Berechnung: MTU = Payload-Größe + Header-Größen


    Header-Größen:

    • IPv4-Header: 20 Bytes

    • ICMP-Header: 8 Bytes

Beispiel:

  • Hier testen wir mit einer Payload-Größe von 1472 Bytes.

  • Wenn das Paket nicht fragmentiert wird (kein Fragmentation needed), dann ist die MTU mindestens 1500 Bytes (1472 + 20 + 8).

Iteratives Testen:

  • Starte mit einer hohen Payload-Größe (z. B. 1472) und verringere sie iterativ, bis der Ping erfolgreich ist.

  • Die höchste funktionierende Payload-Größe ergibt die MTU.

MTU-Bestimmung mit ping für IPv6 (Linux)

Grundsätzliche Syntax:

  • Für IPv6 ist die maximale MTU normalerweise 1280 Bytes oder höher.

Berechnung:

  • Header-Größen bei IPv6:

    • IPv6-Header: 40 Bytes

    • ICMPv6-Header: 8 Bytes

  • Beispiel:

  • Hier testen wir mit einer Payload-Größe von 1232 Bytes.

  • Wenn das Paket durchkommt, dann ist die MTU mindestens 1280 Bytes (1232 + 40 + 8).

Iteratives Testen:

  • Wie bei IPv4 iterativ Payload-Größen testen, bis ein Fragmentierungsfehler (Packet too big) verschwindet.

MSS-Berechnung

Die MSS (Maximum Segment Size) gibt an, wie viel Nutzlast TCP in einem Segment senden kann.
Sie ist von der MTU abhängig:

MSS=MTU−IP-Header-Größe−TCP-Header-Größe

  • IPv4:

    • Standard-MTU: 1500 Bytes

    • IPv4-Header: 20 Bytes

    • TCP-Header: 20 Bytes

    • Standard-MSS: 1460 Bytes

  • IPv6:

    • Standard-MTU: 1280 Bytes

    • IPv6-Header: 40 Bytes

    • TCP-Header: 20 Bytes

    • Standard-MSS: 1220 Bytes

Optimierung in OPNsense

Nachdem du die optimalen Werte ermittelt hast:

  • MTU setzen:

    • In OPNsense kannst du die MTU unter Interfaces → [Interface Name] → Settings einstellen.

  • MSS Clamping aktivieren:

    • Unter Firewall → Settings → Advanced findest du die Option "Enable MSS clamping".

    • Gib dort die berechnete MSS ein (basierend auf deiner MTU).

Verifikation MTU:

Payload-Größe = MTU (1484) - IPv4-Header (20) - ICMP-Header (8) = 1456.

Payload-Größe = MTU (1484) - IPv6-Header (40) - ICMPv6-Header (8) = 1436.

Ergebnis MSS:

Die MSS bei einer MTU von 1484 beträgt 1424 Bytes für IPv6.

MSS=1484−40−20=1424

Zusammenfassung der Schritte

  1. Für IPv4 und IPv6 mit ping die maximal fragmentierungsfreie Payload-Größe finden.

  2. MTU berechnen (Payload + Header).

  3. MSS berechnen (MTU - IP-Header - TCP-Header).

  4. Werte in OPNsense konfigurieren.

Hinweis:

  • Die MSS für IPv6 ist kleiner als bei IPv4, weil der IPv6-Header größer ist (40 Bytes im Vergleich zu 20 Bytes bei IPv4).

  • Stelle sicher, dass die MTU im gesamten Netzwerkpfad einheitlich ist, da sonst Probleme auftreten können, wie z. B. die Fragmentierung von Paketen oder Verbindungsabbrüche.

Sellandy

kontakt@sellandy.de

+49 (0)15678 133840

qr code of the website sellandy.de
qr code of the website sellandy.de

Copyright © 2026 Benjamin Mönius

a spartan warrior with logo text sellandy
a spartan warrior with logo text sellandy

Entdecke die fesselnde Welt aus IT Cybersecurity und Privatsphäre für Heimanwender. Erweitere deinen IT Background oder lass dich einfach unterhalten.

Schnellzugriff

Rechtlich

Fingerprint:
454A 7836 8CDD 3ACF 734C
0DBF 8165 DD5B 0346 00F4