Sprunghafter Packetverlust
Letzte Woche gab es einen interessanten Fall von Paketverlust, der sich in kein bisher bekanntes Schema passen wollte. Normalerweise hat man bei Leitungsstörungen (DSL) eine bestimmte Rate an defekten Paketen. Und dann gibt es Bandbreitenbegrenzungen, die schlagartig zu erhöhtem Paketverlust führen. In diesem Fall stieg aber die nutzbare Bandbreite weiter an, nur der Paketverlust steigt massiv.
Überraschung
Auf einer Kundenleitung trat ein erhöhter Paketverlust auf, sobald mehr Last auf die Leitung geschoben wurde.
Ein zentraler Server liefert über diese Leitung an Endgeräte Daten aus. Er misst die Bandbreiten und Paketverluste in aggregierter Form.
Man sieht deutlich, dass bis knapp 2Gbps die Paketverluste nahezu konstant sind, was auf sporadische Fehler auf einer ungeschirmten Leitung hindeutet. Die meisten Endgeräte befinden sich hinter DSL Anschlüssen, das passt also ganz gut.
Der Rest der Graphik, der danach folgt, ist allerdings seltsam: Die Kurve knickt ziemlich plötzlich ab und steigt dann fast linear an.
Was kann das sein?
Fehlersuche
Die erste Annahme ist selbstverständlich eine Bandbreitenbegrenzung. Allerdings sollte dann die Bandbreite auch nicht weiter ansteigen.
Testweise habe ich mal eine solche Leitung bei 2Gbps per QoS-Policy limitiert und dann durch gemessen:
Sobald die Ziel-Bandbreite erreicht wird, steigt der Paketverlust an. Aber es geht nicht mehr durch die Leitung durch als konfiguriert wurde.
Eine einfache QoS-Policy ist es also nicht.
Beim genauen Ablaufen des Leitungsweges stellt sich heraus, dass der Kunde folgendes gebaut hat.
Interessanterweise treten die Probleme nur auf, wenn das LACP-Bündel aus Leitung 3 und Leitung 4 im Spiel sind. Werden die Strecken 5, 6 oder 7 anders zugeführt, so treten dort bei gleichem Lastverhalten keine Probleme auf.
Dafür gibt es keine gute Erklärung, weil die Bandbreite mit 2x10Gbps mehr als ausreichend ist, um die Daten durch zu schieben. Trotzdem muss der Fehler an einem der an diesem Tunnel beteiligten Switche liegen.
Eine explizite Messung über diese Strecke 2-(3,4) mit 8 Gbps ergab einen Paketverlust von fast 50%. Damit ist die Eingrenzung auf diese Strecke definitiv. Offenbar gibt eine der beiden Leitungen 3 oder 4 unter Last den Geist auf.
Bei einer gründlichen Untersuchung der Konfiguration stellte sich heraus, dass auf dem zentralen, linken Switch eine QoS-Konfiguration vorliegt, die auf Leitung 4 aktiv ist. Auf Leitung 3 fehlt diese QoS-Einstellung. Diese QoS-Policy definiert eine maximale Bandbreite von 1Gbps für den betroffenen Datenverkehr.
Nach Deaktivierung der Policy läuft die explizite Messung problemlos durch.
Erklärung
Das LACP-Bündel verteilt ziemlich gleichmäßig die Datenpakete auf die beiden Leitungen. Die QoS-Policy schmeißt dann alle Pakete, die das Gigabit überschreiten einfach weg.
Das lässt sich einfach modellieren und mit den Messwerten vergleichen:
Bei kleinen Bandbreiten ist der Abknick-Effekt sowohl im Modell als auch in der Messung in deutlicher Übereinstimmung.
Aber auch bei 8 Gbps Durchsatz ist der Paketverlust im Modell über 40%, was der realen Messung sehr nahe kommt. Das Modell passt also für kleine und große Werte sehr gut.