Tc: Unterschied zwischen den Versionen
Erscheinungsbild
Keine Bearbeitungszusammenfassung |
|||
Zeile 9: | Zeile 9: | ||
=== Exit-Status === | === Exit-Status === | ||
== Anwendung == | == Anwendung == | ||
=== Linux QoS mit ”tc” === | |||
* Linux benutzt [[tc]] vom Paket [[iproute2]], um das Bandbreitenmanagement zu konfigurieren | |||
* Allgemein beschrieben in Linux Advanced Routing & Traffic Control HOWTO. | |||
==== Beispiel für eine Warteschlange mit konstanter Bitrate ==== | |||
Mit dem ”cbq” Planer können Röhren mit konstanter Bitrate definiert werden. | |||
===== Root qdisc Definition ===== | |||
* Definition einer root qdisc mit einer Bandbreite von 1000 MBit/s an eth1 | |||
===== QoS class Definition ===== | |||
* Definition einer Klasse 1:1 mit 1 MBit/s | |||
* Definition einer Klasse 1:2 mit 50 MBit/s | |||
* Definition einer Klasse 1:3 mit 10 MBit/s | |||
* Definition einer Klasse 1:4 mit 200 kBit/s | |||
===== QoS filter Definition ===== | |||
* Definition eines Filters für IPv4 (''protocol ip''), TCP (''match ip protocol 6 0xff'') Zielport 5001 (''match ip dport 5001 0xffff'') unter Benutzung der Klasse 1:2 von oben | |||
* Definition eines Filters für IPv6 (''protocol ip''), TCP (''match ip6 protocol 6 0xff'') Zielport 5001 unter der Benutzung der Klasse 1:2 von oben | |||
* Definition eines Filters für IPv6 für Pakete mit Flowlabel 12345 (''match ip6 flowlabel 0x12345 0x3ffff'') unter der Benutzung der Klasse 1:3 von oben | |||
* Definition eines Filters für IPv6 für Pakete mit der Linux iptables Markierung 32 (''handle 32 fw'') unter der Benutzung der Klasse 1:4 von oben | |||
Die letzte Filterdefinition benötigt auch einen Eintrag in ip6tables um das Paket zu markieren | |||
===== Testen der Filterdefinition mit iperf ===== | |||
Starten auf Serverseite in separaten Konsolen | |||
$ | |||
Starten auf Clientseite und Vergleichen der Ergebnisse: | |||
$ | |||
Das Ergebnis der Transferraten sollten der Definitionen von oben entsprechen, das Ergebnis auf Port 5002 sollte ziemlich identisch unabhängig von der benutzten IP-Version sein. | |||
<noinclude> | |||
=== Fehlerbehebung === | === Fehlerbehebung === | ||
== Konfiguration == | == Konfiguration == | ||
=== Dateien === | === Dateien === |
Version vom 1. November 2023, 15:15 Uhr
tc - Kurzbeschreibung
Beschreibung
Installation
Syntax
Optionen
Parameter
Umgebungsvariablen
Exit-Status
Anwendung
Linux QoS mit ”tc”
- Linux benutzt tc vom Paket iproute2, um das Bandbreitenmanagement zu konfigurieren
- Allgemein beschrieben in Linux Advanced Routing & Traffic Control HOWTO.
Beispiel für eine Warteschlange mit konstanter Bitrate
Mit dem ”cbq” Planer können Röhren mit konstanter Bitrate definiert werden.
Root qdisc Definition
- Definition einer root qdisc mit einer Bandbreite von 1000 MBit/s an eth1
QoS class Definition
- Definition einer Klasse 1:1 mit 1 MBit/s
- Definition einer Klasse 1:2 mit 50 MBit/s
- Definition einer Klasse 1:3 mit 10 MBit/s
- Definition einer Klasse 1:4 mit 200 kBit/s
QoS filter Definition
- Definition eines Filters für IPv4 (protocol ip), TCP (match ip protocol 6 0xff) Zielport 5001 (match ip dport 5001 0xffff) unter Benutzung der Klasse 1:2 von oben
- Definition eines Filters für IPv6 (protocol ip), TCP (match ip6 protocol 6 0xff) Zielport 5001 unter der Benutzung der Klasse 1:2 von oben
- Definition eines Filters für IPv6 für Pakete mit Flowlabel 12345 (match ip6 flowlabel 0x12345 0x3ffff) unter der Benutzung der Klasse 1:3 von oben
- Definition eines Filters für IPv6 für Pakete mit der Linux iptables Markierung 32 (handle 32 fw) unter der Benutzung der Klasse 1:4 von oben
Die letzte Filterdefinition benötigt auch einen Eintrag in ip6tables um das Paket zu markieren
Testen der Filterdefinition mit iperf
Starten auf Serverseite in separaten Konsolen
$
Starten auf Clientseite und Vergleichen der Ergebnisse:
$
Das Ergebnis der Transferraten sollten der Definitionen von oben entsprechen, das Ergebnis auf Port 5002 sollte ziemlich identisch unabhängig von der benutzten IP-Version sein.