Ich habe einen Linux-Router mit einer 10-GBe-Schnittstelle an der Außenseite und verbundenen Gigabit-Ethernet-Schnittstellen an der Innenseite.
Wir haben derzeit ein Budget von 2 GBit / s. Wenn wir diese Rate einen Monat lang um durchschnittlich mehr als 5% überschreiten, wird uns die gesamte Kapazität von 10 Gbit / s in Rechnung gestellt. In Dollar ausgedrückt ein ziemlicher Schritt nach oben.
Daher möchte ich dies auf 2 GBit / s auf der 10 GBe-Schnittstelle beschränken.
Der TBF-Filter ist möglicherweise ideal, aber dieser Kommentar gibt Anlass zur Sorge.
Auf allen Plattformen außer Alpha ist es möglich, bis zu 1 MBit / s normalen Datenverkehrs mit idealer minimaler Burstigkeit zu formen und Daten genau mit den konfigurierten Raten zu senden.
Sollte ich TBF oder einen anderen Filter verwenden, um diese Rate auf die Schnittstelle anzuwenden, und wie würde ich das tun? Ich verstehe das hier gegebene Beispiel nicht: Traffic Control HOWTO
Insbesondere "Beispiel 9. Erstellen einer TBF mit 256 kbit / s"
tc qdisc add dev eth0 handle 1:0 root dsmark indices 1 default_index 0
tc qdisc add dev eth0 handle 2:0 parent 1:0 tbf burst 20480 limit 20480 mtu 1514 rate 32000bps
Wie wird die 256K Bit / s Rate berechnet? In diesem Beispiel sind 32000 Bit / s = 32 KByte pro Sekunde. Da tc bps = Bytes pro Sekunde verwendet. Ich denke, Burst und Limit kommen ins Spiel, aber wie würden Sie vorgehen, um vernünftige Zahlen zu wählen, um die gewünschte Rate zu erreichen?
Dies ist kein Fehler. Ich habe dies getestet und es gab eine Rate nahe 256K, aber nicht genau das.
BEARBEITEN
Nachdem ich viel gelesen und getestet habe, bin ich zu dem Schluss gekommen, dass TBF aufgrund der Bandbreite unangemessen ist. Unabhängig von den Einstellungen, die ich ausprobiert habe, konnte TBF keine Bandbreite> ~ 50 Mbit / s bereitstellen. Laut lartc.org/lartc.pdf ist die RED-Methode besser für die Gestaltung von Bandbreiten> 100 Mbit / s geeignet, daher werde ich versuchen, diese zu verwenden.
Wählen Sie jedoch den Wert a für min (dh die durchschnittliche Warteschlangengröße, bei der eine Markierung möglich wird). Das angegebene Beispiel lautet:
Sie sollten die min einstellen, indem Sie die höchste akzeptable Wartezeit für die Basiswarteschlange berechnen und mit Ihrer Bandbreite multiplizieren. Beispielsweise möchte ich auf meiner 64-kbit / s-ISDN-Verbindung möglicherweise eine Wartezeit für die Basiswarteschlange von 200 ms, sodass ich min auf 1600 Byte einstelle.
Wie würden Sie die höchste akzeptable Wartezeit für die Basiswarteschlange wählen? Das Beispiel ist für 64 kbit / s.
Was wäre für 2 Gbit / s akzeptabel?
Nach meiner Erfahrung kann qdisc TBF die Bandbreite problemlos auf 1 Gbit / s begrenzen, sodass ich davon ausgehen würde, dass sie auch auf 2 Gbit / s skaliert. Wahrscheinlich benötigen Sie jedoch eine echte CPU für den Job anstelle eines Low-End-Edge-Routers. So etwas wie 4 GHz i3 wird sicherlich ausreichen.
Versuchen Sie etwas wie
wo
Beachten Sie, dass Sie zur Verwendung von TBF mit geringer Latenz möglicherweise den PREEMPT-Kernel (z. B. Ubuntu-
linux-lowlatency-hwe-*
Paket) ausführen müssen, da das System sonst möglicherweise nicht alle diese Pakete verarbeitet.Siehe auch: https://networkengineering.stackexchange.com/a/54404/36597
quelle