Die Regel der zusätzlichen dreißig Byte für MTU scheitert an MPLS-Pseudowires
Eine feste Overhead-Zahl verbirgt ihre Annahmen. Zählen Sie Ethernet-Header, VLAN-Tags, Label-Einträge und Control Word, und vergleichen Sie dann mit dem richtigen Feld.
Fragen Sie einen Ingenieur, wie viel für MPLS hinzuzurechnen ist, und Sie hören eine Zahl, meist dreißig, selbstsicher vorgetragen. Die Zahl ist weniger falsch als vielmehr losgelöst: Sie hängt ganz davon ab, was die Ausgangsgröße zählt und was der Provider-Edge tatsächlich überträgt. Auf einem Ethernet-Pseudowire sind die Annahmen sichtbar, und sobald man sie aufschreibt, ersetzt die Arithmetik die Folklore.
Drei verschiedene Dinge werden unter einem Namen gemessen. Es gibt das IP-Paket des Kunden, den über das Pseudowire transportierten Ethernet-Rahmen und die eigene äußere Link-Rahmung des Providers. Ein Budget, das sie vermischt, ergibt einen Wert, den kein Gerätefeld erwartet.
Ein durchgerechnetes Budget mit allen genannten Annahmen
Nehmen Sie ein Kunden-IP-Paket von 1500 Byte, einen gewöhnlichen Ethernet-Header, der ohne den FCS des Kunden über das Pseudowire läuft, kein beibehaltenes VLAN-Tag, einen Label-Stack mit zwei Einträgen und ein vier Byte großes Control Word. Der transportierte Ethernet-Header fügt 14 hinzu, beibehaltene Tags fügen nichts hinzu, die zwei Label-Einträge fügen 8 hinzu, weil jeder Eintrag 4 Byte groß ist, und das Control Word fügt 4 hinzu. Das ergibt 1526 Byte MPLS-gekapseltes Paket.
Lesen Sie das Ergebnis sorgfältig. Es schließt den äußeren Ethernet-Header des Provider-Links und dessen FCS aus, und es ist ein Beispiel, keine Konstante zum Eintippen in ein Feld namens MTU. Auch zwei Labels sind eine Annahme: Der echte Stack kann ein Transport-Label, ein Service-Label und gelegentlich mehr tragen, und jeder Eintrag kostet dieselben 4 Byte.
Was tatsächlich über das Pseudowire läuft
RFC 4448 definiert, wie Ethernet-Rahmen innerhalb von MPLS reisen, und in ihrem gewöhnlichen Modell werden die Präambel und der FCS des Kunden am Eingang entfernt und am Ausgang neu erzeugt. Deshalb erscheint der FCS nicht im obigen Budget. Die VLAN-Behandlung hängt vom Dienstmodus ab: Ein Modus, der Kundentags beibehält, fügt deren Byte wieder hinzu, und ein Modus, der sie abbildet, tut das nicht. Zusätzliche Beibehaltung oder zusätzliche Kapselung muss obendrauf gezählt werden.
Das Control Word gehört zur Arithmetik, wann immer es verwendet wird. RFC 8469 empfiehlt es für Ethernet-Pseudowires, ein älterer Text, der es als optional beschreibt, ist also kein Beleg dafür, dass Ihr Pfad es weglässt. Bestätigen Sie den tatsächlichen Dienstmodus beim Provider, statt ihn aus einem Diagramm abzuleiten.
Vergleichen Sie die Zahl mit dem richtigen Feld
Halten Sie nun die erforderliche gekapselte Größe neben jeden relevanten Link und neben die Definition des Herstellers für das Limit, das Sie konfigurieren. Manche Felder beschreiben ein IP-Paket, andere einen Rahmen oder eine andere Kapselungsgrenze. Zwei Zahlen können identisch aussehen und unterschiedliche Kapazitäten beschreiben, und so erzeugt eine Konfiguration, die zu passen scheint, Verluste im Produktivbetrieb.
Deshalb ist es auch riskant, einen Wert zwischen nicht verwandten Plattformen zu kopieren. Der Name des Feldes ist die Spezifikation, nicht die Dezimalzahl, die Sie von der Konsole eines anderen Herstellers kennen.
Ping-Nutzlasten sind keine MTU-Werte
Eine IPv4-Ping-Nutzlast ist keine IP-MTU. Der IP-Header und der ICMP-Header verbrauchen ebenfalls Byte, eine erfolgreiche Nutzlastgröße entspricht also einem größeren Paket auf der Leitung. Eine Sonde, die bei einer Größe durchgeht, sagt auch nichts über einen Dienst mit einem anderen VLAN-Modus oder einem tieferen Label-Stack aus. Der Test misst einen Pfad, eine Größe und eine Nutzlastform, und der Dienst kann alle drei variieren.
Schlimmer noch, ein Ping kann gelingen, während große Rahmen scheitern, weil die Sonde einen Pfad und eine Größe getestet hat, die der echte Verkehr nie nutzt. Betrachten Sie ihn als einen Datenpunkt zur Erreichbarkeit, nicht als Spezifikation eines Layer-2-Dienstes.
Wenn der Rahmen nicht passt
Können übergroße Rahmen nicht transportiert werden und gibt es keinen unterstützten Fragmentierungs- oder Reassemblierungsmechanismus, werden sie verworfen, meist ohne sauberen Fehler an beiden Enden. Anwendungen zeigen dann Timeouts bei Massentransfers, während interaktive Sitzungen gesund bleiben, was die Leute zu Firewalls und Routen statt zu Byte-Zählungen schickt.
Klären Sie das tatsächliche Budget mit dem Provider: Dienstmodus, Tag-Behandlung, Label-Tiefe, Control Word und das genaue Limit, das Ihr Gerät durchsetzt. Schreiben Sie die Annahmen neben die Zahl, denn sonst erbt der nächste Ingenieur die Dreißig-Byte-Regel und ein Rätsel.