Zum Inhalt springen

tc

Aus Foxwiki

tc - show / manipulate traffic control settings


Beschreibung

Installation

Syntax

tc [ OPTIONS ] qdisc [ add | change | replace | link | delete ] dev DEV [ parent qdisc-id |
root ] [ handle qdisc-id ] [ ingress_block BLOCK_INDEX ] [ egress_block BLOCK_INDEX ] qdisc [
qdisc specific parameters ]
tc [ OPTIONS ] class [ add | change | replace | delete | show ] dev DEV parent qdisc-id [
classid class-id ] qdisc [ qdisc specific parameters ]
tc [ OPTIONS ] filter [ add | change | replace | delete | get ] dev DEV [ parent qdisc-id |
root ] [ handle filter-id ] protocol protocol prio priority filtertype [ filtertype specific
parameters ] flowid flow-id
tc [ OPTIONS ] filter [ add | change | replace | delete | get ] block BLOCK_INDEX [ handle
filter-id ] protocol protocol prio priority filtertype [ filtertype specific parameters ]
flowid flow-id
tc [ OPTIONS ] chain [ add | delete | get ] dev DEV [ parent qdisc-id | root ] filtertype [
filtertype specific parameters ]
tc [ OPTIONS ] chain [ add | delete | get ] block BLOCK_INDEX filtertype [ filtertype specific
parameters ]
tc [ OPTIONS ] [ FORMAT ] qdisc { show | list } [ dev DEV ] [ root | ingress | handle QHANDLE |
parent CLASSID ] [ invisible ]
tc [ OPTIONS ] [ FORMAT ] class show dev DEV
tc [ OPTIONS ] filter show dev DEV
tc [ OPTIONS ] filter show block BLOCK_INDEX
tc [ OPTIONS ] chain show dev DEV
tc [ OPTIONS ] chain show block BLOCK_INDEX
tc [ OPTIONS ] monitor [ file FILENAME ]
OPTIONS := { [ -force ] -b[atch] [ filename ] | [ -n[etns] name ] | [ -N[umeric] ] | [ -nm |
-nam[es] ] | [ { -cf | -c[onf] } [ filename ] ] [ -t[imestamp] ] | [ -t[short] | [ -o[neline] ]
}
FORMAT := { -s[tatistics] | -d[etails] | -r[aw] | -i[ec] | -g[raph] | -j[json] | -p[retty] |
-col[or] }

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.




Fehlerbehebung

Konfiguration

Dateien

Anhang

Siehe auch

Sicherheit

Dokumentation

RFC
Man-Pages
Info-Pages

Links

Projekt
Weblinks

Manpage