FreeBSD, Gentoo, openSUSE, CentOS, Ubuntu, Debian
chrystalsky
Posts: 42 Joined: 2003-02-28 14:54
Location: /Home/Chrystalsky
Post
by chrystalsky » 2006-07-15 13:02
Hallo,
nachdem ich mich in einem anderen Thread über QoS ein wenig informiert habe, habe ich mich mal an TC versucht, nur leider will das nicht so ganz, wie ich möchte...
Hier mal meine Anweisungen:
Code: Select all
## Delete all rules
/sbin/tc qdisc del dev eth0 root
/sbin/tc qdisc add dev eth0 root handle 1:0 htb default 15
/sbin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 38000kbit
/sbin/tc class add dev eth0 parent 1:1 classid 1:5 htb rate 72kbit ceil 240kbit prio 2
/sbin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 120kbit ceil 38000kbit prio 6
/sbin/tc qdisc add dev eth0 parent 1:5 handle 5:0 sfq perturb 10
/sbin/tc qdisc add dev eth0 parent 1:10 handle 10:0 sfq perturb 10
/sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 22 0xffff flowid 1:5
/sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip sport 22 0xffff flowid 1:5
/sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10
Was mir wichtig ist, dass ich Port 80 beschränken kann auf ~40 Mbit
leider rennt Port80 weiter mit ~95 Mbit.
Weiß jemand, wo mein Fehler liegt?
Grüße und Danke schonmal
lord_pinhead
Posts: 774 Joined: 2004-04-26 15:57
Post
by lord_pinhead » 2006-07-15 15:01
Hm, vielleicht kannste ja mal das mit meinem Script vergleichen, hab das zum Teil aus dem Wondershaper abgeleitet:
Code: Select all
# Löschen vorhandener qdiscs
sudo /sbin/tc qdisc del dev eth0 root
sudo /sbin/tc qdisc del dev eth0 ingress
# Root Qdisk für eth0 anlegen
sudo /sbin/tc qdisc add dev eth0 root handle 1: htb default 20
# Klassen erstellen für die Verteilung
# 1:1 100mbit
# 1:10 45 Mbit
# 1:20 22,5 Mbit (9*25/10)
# 1:30 24 Mbit (8*30/10)
sudo /sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 100Mbit burst 6k
sudo /sbin/tc class add dev eth0 parent 1:1 classid 1:10 htb rate 45Mbit burst 6k prio 1
sudo /sbin/tc class add dev eth0 parent 1:1 classid 1:20 htb rate $[9*25/10]Mbit burst 6k prio 2
sudo /sbin/tc class add dev eth0 parent 1:1 classid 1:30 htb rate $[8*30/10]Mbit burst 6k prio 2
# Qdiscs für die Klassen anlegen
sudo /sbin/tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10
sudo /sbin/tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
sudo /sbin/tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
# ICMP
sudo /sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:10
# ACKs in die interaktive Klasse 1:10 stecken für besseren Up und Download
sudo /sbin/tc filter add dev eth0 parent 1: protocol ip prio 10 u32 match ip protocol 6 0xff
match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2
match u8 0x10 0xff at 33 flowid 1:10
# Rest endet bei 24 Mbit in der Klasse 1:30 z.b. Mail
sudo /sbin/tc filter add dev eth0 parent 1: protocol ip prio 14 u32 match ip dport 25 0xffff flowid 1:30
sudo /sbin/tc filter add dev eth0 parent 1: protocol ip prio 14 u32 match ip dport 110 0xffff flowid 1:30
sudo /sbin/tc qdisc add dev eth0 root handle 1:0 htb default 10
sudo /sbin/tc class add dev eth0 parent 1: classid 1:1 htb rate 380kbit
# HTTP und SSH in die Klasse 1:10 bei 45 Mbit
sudo /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 13 u32 match ip dport 22 0xffff flowid 1:10
sudo /sbin/tc filter add dev eth0 protocol ip parent 1:0 prio 13 u32 match ip dport 80 0xffff flowid 1:10
# Restliche Sachen landen in 1:20
sudo /sbin/tc filter add dev $DEV parent 1: protocol ip prio 18 u32 match ip dst 0.0.0.0/0 flowid 1:20
chrystalsky
Posts: 42 Joined: 2003-02-28 14:54
Location: /Home/Chrystalsky
Post
by chrystalsky » 2006-07-15 17:54
tut leider auch nicht so ganz. Ich habe aber sämtliche Module in Kernel kompiliert... ich werde mir mal wondershaper anschauen, sollte noch jemand einen Vorschlag haben, als her damit
Grüße
Michael