Hi
I have the following problem:
I''ve created qos script which shapes traffic
on outgoing interface eth1. More - less it looks like this :
------------------------CUT------------------------------------------------------
#root qdisc and class for eth1
$tc qdisc add dev eth1 root handle 1:0 htb default 19
$tc class add dev eth1 parent 1:0 classid 1:1 htp ratel ${CEIL_UP}kbit
ceil ${CEIL_UP}kbit
#classes, qdiscs and filters for services
$tc class add dev eth1 parent 1:1 classid 1:11 htb rate 90kbit ceil
150kbit prio 0
$tc class add dev eth1 parent 1:1 classid 1:12 htb rate 100kbit ceil
250kbit prio 0
$tc class add dev eth1 parent 1:1 classid 1:13 htb rate 90kbit ceil
1250kbit prio 2
$tc qdisc add dev eth1 parent 1:11 handle 111: sfq perturb 10 #
$tc qdisc add dev eth1 parent 1:11 handle 112: sfq perturb 10 #
Typical
$tc qdisc add dev eth1 parent 1:11 handle 113: sfq perturb 10 #
$tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 1 fw
classid 1:11
$tc filter add dev eth1 parent 1:0 protocol ip prio 0 handle 1 fw
classid 1:12
$tc filter add dev eth1 parent 1:0 protocol ip prio 2 handle 1 fw
classid 1:13
the same thing goes for imq
#root qdisc and class for imq0
$tc qdisc add dev imq0 root handle 2:0 htb default 29
$tc class add dev imq0 parent 2:0 classid 2:1 htp ratel ${CEIL_DN}kbit
ceil ${CEIL_DN}kbit
#classes, qdiscs and filters for services
$tc class add dev imq0 parent 2:1 classid 2:21 htb rate 90kbit ceil
150kbit prio 0
$tc class add dev imq0 parent 2:1 classid 2:22 htb rate 100kbit ceil
250kbit prio 0
$tc class add dev imq0 parent 2:1 classid 2:23 htb rate 90kbit ceil
1250kbit prio 2
$tc qdisc add dev imq0 parent 2:11 handle 211: sfq perturb 10 #
$tc qdisc add dev imq0 parent 2:11 handle 212: sfq perturb 10 #
$tc qdisc add dev imq0 parent 2:11 handle 213: sfq perturb 10 #
$tc filter add dev imq0 parent 2:0 protocol ip prio 0 handle 0xb fw
classid 2:21
$tc filter add dev imq0 parent 2:0 protocol ip prio 0 handle 0xc fw
classid 2:22
$tc filter add dev imq0 parent 2:0 protocol ip prio 2 handle 0xd fw
classid 2:23
-----------------------CUT--------------------------------------------------------------------------------
There are more of these classes - up to 19 (or 29 on imq0).
When I stat classes and qdiscs everything looks fine : traffic goes
smoothly
through every class. Class 1:11 , and 2:21 are for icmp packets only.
The problem is - when I try to download some large file using http which
goes
through 1:13 and 2:23 classes pings rise to very high values (~350 - 600
, while normally it should be something ~5-25 ms).
The situation is getting much worse when I allow p2p traffic (1:15,
2:25) to pass through. Although schedulers
seem to work ,because I can browse web pages, the whole interactivity is
lost and output (and input)
bandwidth is consumed almost totally.
my system is : 2.4.29-ow1 , additional schedulers : esfq and wrr
p2p packets are `intercepted'' by p2p and ipp2p modules.
Other packets are marked this way :
--------------CUT--------------------
$IPTABLES -A PREROUTING -t mangle -i eth1 -j IMQ --todev 0
[...]
$IPTABLES -A PREROUTING -t mangle -i eth1 -p icmp -j MARK --set-mark 0xb
$IPTABLES -A POSTROUTING -t mangle -o eth1 -p icmp -j MARK --set-mark 0x1
[...]
$IPTABLES -A PREROUTING -t mangle -i eth1 -m multiport --sport 80,443 -j
MARK --set-mark 0xd
$IPTABLES -A POSTROUTING -t mangle -o eth1 -m multiport --dport 80,443
-j MARK --set-mark 0x3
[....]
-------------CUT----------------------------
any idea what might be wrong ?
thanks in advance
Wlodek