- Mitglied seit
- 17 Jul 2004
- Beiträge
- 263
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo,
ich habe Asterisk auf meinem DSL-Router laufen und möchte nun mit QoS Folgendes realisieren:
Wenn jemand über VoIP telefoniert, soll der restliche Upstream so viel wie nötig gedrosselt werden.
Es gibt hier doch bestimmt jemanden, der genau sowas realisiert hat oder mir zumindest an Hand eines einfachen Beispiels erklären kann, wie man so etwas aufbaut.
Mit http://www.voip-info.org/wiki-QoS+Linux komme ich jedenfalls nicht zum Ziel.
Mein erster Versuch sieht so aus:
So funktioniert es aber nicht. Die VoIP-Pakete landen in der Rest-Klasse mit classid 1:12. Wenn ich die Doku bei Sipgate richtig interpretiere, sollte doch der Port-Bereich 5004:5007 für die Sprachdaten verwendet werden. Stimmt das? Wo könnte sonst noch der Fehler sein?
Viele Grüße!
Benno
ich habe Asterisk auf meinem DSL-Router laufen und möchte nun mit QoS Folgendes realisieren:
Wenn jemand über VoIP telefoniert, soll der restliche Upstream so viel wie nötig gedrosselt werden.
Es gibt hier doch bestimmt jemanden, der genau sowas realisiert hat oder mir zumindest an Hand eines einfachen Beispiels erklären kann, wie man so etwas aufbaut.
Mit http://www.voip-info.org/wiki-QoS+Linux komme ich jedenfalls nicht zum Ziel.
Mein erster Versuch sieht so aus:
Code:
#!/bin/sh
/usr/sbin/tc qdisc add dev ppp0 root handle 1:0 htb default 12
# Hauptklasse
/usr/sbin/tc class add dev ppp0 parent 1:0 classid 1:1 htb rate 125kbit ceil 125kbit
# Klasse für ACK
/usr/sbin/tc class add dev ppp0 parent 1:1 classid 1:10 htb rate 10kbit ceil 125kbit prio 0
# Klasse für VoIP (Für Test erst mal auf 1kbit gedrosselt)
/usr/sbin/tc class add dev ppp0 parent 1:1 classid 1:11 htb rate 1kbit ceil 1kbit prio 1
# Klasse für Rest
/usr/sbin/tc class add dev ppp0 parent 1:1 classid 1:12 htb rate 5kbit ceil 125kbit prio 2
/sbin/iptables -A POSTROUTING -t mangle -o ppp0 -p tcp -m length --length :64 -j MARK --set-mark 10
/sbin/iptables -A POSTROUTING -t mangle -o ppp0 -p udp --dport 5004:5007 -j MARK --set-mark 11
/usr/sbin/tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
/usr/sbin/tc filter add dev ppp0 parent 1:0 prio 0 protocol ip handle 11 fw flowid 1:11
So funktioniert es aber nicht. Die VoIP-Pakete landen in der Rest-Klasse mit classid 1:12. Wenn ich die Doku bei Sipgate richtig interpretiere, sollte doch der Port-Bereich 5004:5007 für die Sprachdaten verwendet werden. Stimmt das? Wo könnte sonst noch der Fehler sein?
Viele Grüße!
Benno