Qos Fallbeispiel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 15: Zeile 15:
 
;IP Telefone können solche Dinge auch
 
;IP Telefone können solche Dinge auch
  
=Umsetzung unter Linux=
+
*[[Qos Fallbeispiel 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
 
=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
 

Version vom 5. Juli 2023, 20:09 Uhr

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

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