Bandbreiten-Verwaltung im Homeoffice

Wer normalerweise größere Datenmengen hochlädt, während er nicht zuhause ist, bekommt mit dem Cloud-Uploud oder der Backup-Replikation in Zeiten von Homeoffice ggf. ein Problem. Genauso kann es zu Problemen führen, wenn Familienmitglieder größere Datenmengen parallel hochladen wollen.

Um das zu vermeiden, gibt es verschiedene Ansätze, wie die zur Verfügung stehende Bandbreite bestmöglich aufgeteilt werden kann, ohne das es zu Engstellen im Heimnetz kommt.

Traffic-Shaping

Mittels Traffic-Shaping können Anwendungen oder Netzwerk-Clients priorisiert werden. So können z.B. den PCs, die fürs Homeoffice genutzt werden, im Router eine hohe Priorität eingeräumt werden, anderen Geräten (in meinem Setup z.B. dem NAS) geringere Priorität.

Wer eine Fritz!Box verwendet, kann diese Einstellungen unter Internet -> Filter -> Priorisierung vornehmen – per Default ist dort nur die Telefonie als Echtzeitanwendung definiert, das sollte man auch nicht ändern.

Priorisierungs-Einstellung in der Fritz!Box

Traffic-Limitierung auf den einzelnen Clients

In meinem Setup gibt es eine regelmäßige Replication zwischen meinem NAS zuhause und einem zweiten NAS, welches an einem anderen Standort steht. Verbunden sind die beiden FreeNAS-Boxen mittels einer Wireguard-Verbindung, die auf einem Raspberry Pi konfiguriert ist (der auch FreeNAS automatisch startet bei Bedarf). Normalerweise läuft die Replication in wenigen Minuten durch, sodass der restliche Netzwerk-Verkehr davon nicht betroffen ist.

Stehen jedoch größere Änderungen an oder kommen sogar Daten ganz frisch hinzu (in meinem Szenario sind jetzt gut 300 Gigabyte angefallen, die das erste Mal synchronisiert werden) bedeutet das eine stärkere Belastung des Uploads.

Das Traffic-Shaping der Fritzbox scheint hier nicht perfekt zu arbeiten, zumindest hat der voll ausgelastete Upload dazu geführt, dass auch der Download langsamer geworden ist – obwohl die Wireguard-Verbindung eine geringe Priorität hat. Die Lösung: die Bandbreite des Wireguard-Peers zu limitieren. Das hat gleichzeitig den Vorteil, dass am anderen Ende das Internet nicht vollkommen durch den Download der Daten überlastet wird (der Upload mit 46 MBit/s fast so schnell wie Download der Gegenstelle mit 50 MBit/s).

Hierfür habe ich das Tool „tc“ verwendet, welches Bestandteil des Pakets „iproute2“ ist. Die Grundlegende Funktionsweise ist direkt in der Debian-Wiki beschrieben: https://wiki.debian.org/TrafficControl. Der sinnvollste Modus (und der einfachste für diesen Zweck) ist „Token Bucket Filter“ (TBF, zur Erklärung), womit schlicht die Bandbreite eines Interfaces beschränkt wird, unabhängig von der Anwendung. Konkret habe ich folgende Einstellungen verwendet:

tc qdisc add dev eth0 root tbf rate 35mbit latency 10ms burst 1540

eth0“ muss natürlich durch das jeweilige Interface ersetzt werden – die Liste der Interfaces bekommt man unter Linux mittels „ip a“ einfach heraus. Die zur Verfügung stehende Bandbreite sollte natürlich immer auf die eigenen Gegebenheiten angepasst werden, ich würde nicht mehr als 80% der Gesamt-Uploadrate für ein einzelnen PC verwenden.

Das Ergebnis: die Bandbreite, die für den Upload verwendet wird, ist gesunken. Dies lässt sich auch im Traffic-Monitor der Fritz!Box gut nachvollziehen:

Verwendete Upload-Bandbreite: gut zu erkennen, wenn die Bandbreiten-Limitierung aktiviert bzw. deaktiviert wird

Ergebnis: genug Bandbreite für alle

Mit der konfigurierten Traffic-Priorisierung in der Fritz!Box sowie der Limitierung besonders Bandbreiten-Intensiver Anwendungen wie der Synchronisation der ZFS-Snapshots steht am Ende genug Bandbreite zur Verfügung, um insgesamt 26 Geräte im Heimnetz mit Internet zu versorgen, ohne das es zu Engpässen kommt – jetzt bleibt nur zu hoffen, dass die Anbindung insgesamt stabil bleibt.

Wenn ihr noch Ideen & Tipps für ein stabiles Heimnetz in den Zeiten von Ausgangssperre und Homeoffice habt würde ich mich über einen Kommentar freuen!