Logbuch#monitoring#netzwerk#control-center
Download oder Upload? Am LAN-Port des Routers ist alles vertauscht
Von Niclas Hennrich
Selbst gebaut und in Betrieb genommen. Gehört zum Vorhaben Homelab Control Center.
Was ich gebaut habe: Eine Live-Netzwerkkarte fürs Control Center — Topologie mit sichtbarem Datenfluss je Leitung. Angefangen hat es aber mit einem Verdacht: dass das Dashboard den Traffic eines einzelnen Servers als Gesamt-Internetverkehr ausgibt.
Der Verdacht war falsch — und das Nachprüfen hat trotzdem fünf andere Befunde zutage gefördert. Der lehrreichste davon:
„Empfangen" heißt nicht „Download". Ein Interface zählt aus seiner eigenen Perspektive. Am WAN-Port der Firewall ist das intuitiv: Was dort empfangen wird, kommt aus dem Internet, ist also Download. Am LAN-Port derselben Firewall ist es genau umgekehrt — was der Router dort empfängt, kommt aus dem Haus und ist damit Upload. Dieselbe Zählrichtung, entgegengesetzte Bedeutung.
Bei mir existierte diese Zuordnung an zwei Stellen unabhängig voneinander — einmal in den Abfragen, einmal im Live-Stream — und war durch keinen einzigen Test abgesichert. Wenn jemand eine der beiden umdreht, fällt das nicht auf: Download und Upload sehen beide nach Zahlen aus. Die Regel steht jetzt an genau einer Stelle im Code, und beide Datenwege rufen sie auf.
Zahl und Kurve kamen aus verschiedenen Pipelines. Die Zeile „WAN ↓" holte ihren Wert über ein Drei-Minuten-Mittel, die Sparkline direkt darunter aus einem Sekunden-Stream. Ohne jede Kennzeichnung. Bei einem Downloadpeak zeigte die Kurve 180 Mbit/s, während die Zahl daneben noch 40 meldete — beide korrekt, beide nebeneinander, und zusammen eine Anzeige, der man nicht trauen kann.
Die Doppelzählung, die ich fast übersehen hätte: Drei Container wiesen exakt denselben Traffic aus. Ursache: Container, die sich das Netzwerk des Hosts teilen, melden dem Überwachungswerkzeug die Zähler des Hosts. Wer Service-Traffic aufsummiert, zählt den Host also mehrfach.
Dafür gibt es ein eindeutiges Merkmal statt einer Heuristik: Container im Host-Netz melden Zahlen für alle Interfaces des Hosts, Container mit eigenem Netz genau eines. Die Abfragen filtern jetzt darauf, und die betroffenen Container werden in der Anzeige benannt statt still weggelassen — sonst sieht „kein Traffic" aus wie „nichts los".
Der Kniff, der die Karte überhaupt brauchbar macht: Mein Switch liefert keine eigenen Zahlen. Bei Punkt-zu-Punkt-Ethernet beschreibt aber ein Ende die ganze Leitung, nur eben mit vertauschter Richtung. Also wird an dem Ende gemessen, das Daten liefert — und die Oberfläche schreibt dazu, an welchem. So entsteht nicht der Eindruck, ein Switch-Port sei gemessen worden.
Was ich mitnehme: Bei Netzwerk-Metriken ist die Richtungsfrage keine Kosmetik, sondern die halbe Korrektheit — und sie gehört an genau eine Stelle, mit einem Test daneben. Und: Wenn eine Kachel eine Zahl und eine Kurve zeigt, müssen beide aus demselben Datenweg kommen. Sonst widersprechen sie sich irgendwann, und beide haben recht.
Kleine Nebenentscheidung, über die ich länger nachgedacht habe als über den Rest: Für die Karte habe ich eigenes SVG geschrieben statt eine Diagramm-Bibliothek einzubinden. Bei acht Knoten mit fester Hierarchie wären im Wesentlichen Zoom und Verschieben dazugekommen — dafür rund 55 kB Bundle und fremdes Styling gegen mein Theme. Die Animation ist reines CSS.