Qos Fallbeispiel: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
 
*Wir rechnen 100Kbit/s pro Agent mit einem 50% Puffer
 
*Wir rechnen 100Kbit/s pro Agent mit einem 50% Puffer
 
*Also haben wir etwa 150Kbit/s
 
*Also haben wir etwa 150Kbit/s
*Wir wollen 30 Mbit/s für VoIP reservieren
+
*SIP ist auf cs5 im DSCP gesetzt
=Umsetzung unter Linux=
+
*RTP ist auf ef im DSCP gesetzt
*Wir können nur die ausgehenden Schnittstelle den Traffic einschränken.
+
*Wir wollen 30 Mbit/s für VoIP(SIP und RTP) reservieren
*Als ausgehende Schnittstelle nutzen wir eth0
+
*Zusätzlichen wollen wir das RTP bevorzugt weitergeleitet wird.
*Wir nutzen unter Linux einen Traffic Shaper
+
 
 
=Vorraussetzungen=
 
=Vorraussetzungen=
 
*SIP ist auf cs5 im DSCP gesetzt
 
*SIP ist auf cs5 im DSCP gesetzt
 
*RTP ist auf ef im DSCP gesetzt
 
*RTP ist auf ef im DSCP gesetzt
 
; Wo und wie kann man das machen?
 
; Wo und wie kann man das machen?
;Unter Linux geht es so:
+
*[[DSCP setzen unter Linux]]
*iptables -t mangle -A PREROUTING -p udp --dport 10000:20000 -j DSCP --set-dscp-class ef
+
*[[DSCP setzen unter Cisco]]
*iptables -t mangle -A PREROUTING -p udp --dport 5600 -j DSCP --set-dscp-class cs5
+
 
 
;IP Telefone können solche Dinge auch
 
;IP Telefone können solche Dinge auch
  
 
=Umsetzung=
 
=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=
+
*[[Qos Fallbeispiel Umsetzung unter Linux]]
*tc qdisc show dev eth0
+
*[[Qos Fallbeispiel Umsetzung unter Cisco]]
*tc class show dev eth0
 
*tc filter show dev eth0
 

Aktuelle Version vom 5. Juli 2023, 20:47 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
  • SIP ist auf cs5 im DSCP gesetzt
  • RTP ist auf ef im DSCP gesetzt
  • Wir wollen 30 Mbit/s für VoIP(SIP und RTP) reservieren
  • Zusätzlichen wollen wir das RTP bevorzugt weitergeleitet wird.

Vorraussetzungen

  • SIP ist auf cs5 im DSCP gesetzt
  • RTP ist auf ef im DSCP gesetzt
Wo und wie kann man das machen?
IP Telefone können solche Dinge auch

Umsetzung