Qos Fallbeispiel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
=Beispiel=
 
*Wir haben ein Callcenter mit 200 Agents
 
*Desweiteren haben wir eine Leitung von 100Mbit pro Sekunde
 
*Wir rechnen 100Kbit/s pro Agent mit einem 50% Puffer
 
*Also haben wir etwa 150Kbit/s
 
*Wir wollen 30 Mbit/s für VoIP reservieren
 
 
=Umsetzung unter Linux=
 
=Umsetzung unter Linux=
 
*Wir können nur die ausgehenden Schnittstelle den Traffic einschränken.
 
*Wir können nur die ausgehenden Schnittstelle den Traffic einschränken.

Version vom 5. Juli 2023, 20:07 Uhr

Umsetzung unter Linux

  • Wir können nur die ausgehenden Schnittstelle den Traffic einschränken.
  • Als ausgehende Schnittstelle nutzen wir eth0
  • Wir nutzen unter Linux einen Traffic Shaper

Vorraussetzungen

  • SIP ist auf cs5 im DSCP gesetzt
  • RTP ist auf ef im DSCP gesetzt
Wo und wie kann man das machen?
Unter Linux geht es so
  • iptables -t mangle -A PREROUTING -p udp --dport 10000:20000 -j DSCP --set-dscp-class ef
  • iptables -t mangle -A PREROUTING -p udp --dport 5600 -j DSCP --set-dscp-class cs5
IP Telefone können solche Dinge auch

Umsetzung

Um das Traffic Shaping auf Ihrer ausgehenden Schnittstelle eth0 umzusetzen und eine Bandbreitenbegrenzung von 30 Mbit/s für den VoIP-Datenverkehr zu erreichen, können Sie das Tool "tc" (Traffic Control) verwenden. "tc" ist ein leistungsstarkes Werkzeug zur Netzwerkverkehrskontrolle unter Linux.

Vorgehensweise

Überprüfen Sie zunächst, ob das Paket "tc" auf Ihrem Linux-Router installiert ist. Sie können dies mit dem Befehl "tc -v" überprüfen. Wenn "tc" nicht installiert ist, können Sie es mit dem Paketmanager Ihres Linux-Systems installieren.

Legen Sie eine Klasse (Class) für den VoIP-Datenverkehr fest

  • tc qdisc add dev eth0 root handle 1: htb default 10
  • tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
  • tc class add dev eth0 parent 1:1 classid 1:10 htb rate 30mbit

Erläuterung

Dieser Code erstellt eine Hierarchische Token Bucket (HTB) Warteschlange auf der Schnittstelle eth0. Die Gesamtbandbreite wird auf 100 Mbit/s festgelegt, und eine Klasse mit einer Bandbreite von 30 Mbit/s (classid 1:10) wird erstellt.

Definieren der Filterregel, um den VoIP-Datenverkehr zu kennzeichnen

  • tc filter add dev eth0 protocol ip parent 1: prio 1 u32 match ip dscp ef 0xff flowid 1:10
  • tc filter add dev eth0 protocol ip parent 1: prio 2 u32 match ip dscp cs5 0xff flowid 1:10

Diese Filterregeln identifizieren den VoIP-Datenverkehr anhand der DSCP-Markierungen. Hier werden die DSCP-Markierungen CS5 (Class Selector 5) und EF (Expedited Forwarding) verwendet, die üblicherweise für VoIP-Verkehr verwendet werden.

ef wird durch die Priorisierung vor allem anderen behandelt.

Der Rest kommt auch in die Priorisierung 2

  • tc filter add dev eth0 protocol ip parent 1: prio 2 flowid 1: default

Überprüfung

  • tc qdisc show dev eth0
  • tc class show dev eth0
  • tc filter show dev eth0