[LARTC] Big problem :(((((
Cireasa Claudiu
mozo@home.ro
Mon, 1 Nov 2004 17:59:55 +0200
This is a multi-part message in MIME format.
------=_NextPart_000_0007_01C4C03C.980F5950
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Hello!
I have an internet connection of 64kbps garanteed in a channel of =
256kbps. On this connection the metropolitan speed is 10Mbps and in the =
provider's network the speed is 100Mbps.
I have a few clients behind my linux box and i want to set up some =
limitations because some of them are using it irrational.
I am marking the packets with 0 for internet; 1 for metropolitan 2 for =
provider's network.
Afther the mark i send the packets to the followind classes:
script for eth0 (eth0 is my local network)
#!/bin/bash
tc qdisc del dev eth0 root >/dev/null
tc qdisc add dev eth0 root handle 1: htb default 3
tc class add dev eth0 parent 1: classid 1:1 htb rate 64kbit ceil =
256kbit burst 15k quantum 1500 # Internet
tc class add dev eth0 parent 1: classid 1:2 htb rate 10Mbit =
burst 15k quantum 1500 # Metropolitan
tc class add dev eth0 parent 1: classid 1:3 htb rate 80Mbit =
burst 15k quantum 1500 # Provider
tc class add dev eth0 parent 1:1 classid 1:100 htb rate 64kbit ceil =
256kbit burst 15k
tc qdisc add dev eth0 parent 1:100 handle 100: sfq perturb 5 quantum =
1500
tc class add dev eth0 parent 1:100 classid 1:1001 htb rate 4kbit ceil =
64kbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:1001 handle 1001: sfq perturb 5 =
quantum 1500
tc class add dev eth0 parent 1:100 classid 1:1002 htb rate 4kbit ceil =
64kbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:1002 handle 1002: sfq perturb 5 =
quantum 1500
...
tc class add dev eth0 parent 1:100 classid 1:1020 htb rate 4kbit ceil =
64kbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:1020 handle 1020: sfq perturb 5 =
quantum 1500
tc class add dev eth0 parent 1:2 classid 1:300 htb rate 5Mbit prio 5 =
quantum 1500 burst 15k
tc qdisc add dev eth0 parent 1:300 handle 300: sfq perturb 5 quantum =
1500
tc class add dev eth0 parent 1:300 classid 1:3001 htb rate 8kbit ceil =
256kbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:3001 handle 3001: sfq perturb 5 =
quantum 1500
tc class add dev eth0 parent 1:300 classid 1:3002 htb rate 8kbit ceil =
256kbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:3002 handle 3002: sfq perturb 5 =
quantum 1500
...
tc class add dev eth0 parent 1:300 classid 1:3020 htb rate 5kbit ceil =
256kbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:3020 handle 3020: sfq perturb 5 =
quantum 1500
tc class add dev eth0 parent 1:2 classid 1:500 htb rate 80Mbit prio 5 =
quantum 1500 burst 15k
tc qdisc add dev eth0 parent 1:500 handle 500: sfq perturb 5 quantum =
1500
tc class add dev eth0 parent 1:500 classid 1:5001 htb rate 8kbit ceil =
8Mbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:5001 handle 5001: sfq perturb 5 =
quantum 1500
tc class add dev eth0 parent 1:500 classid 1:5002 htb rate 8kbit ceil =
8Mbit prio 5 quantum 1500 burst 15k =20
tc qdisc add dev eth0 parent 1:5002 handle 5002: sfq perturb 5 =
quantum 1500
...
iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.1 -j CLASSIFY =
--set-class 1:1001
iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.1 -m mark --mark 1 =
-j CLASSIFY --set-class 1:3001
iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.1 -m mark --mark 2 =
-j CLASSIFY --set-class 1:5001
iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.2 -j CLASSIFY =
--set-class 1:1002
iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.2 -m mark --mark 1 =
-j CLASSIFY --set-class 1:3002
iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.2 -m mark --mark 2 =
-j CLASSIFY --set-class 1:5002
...
###END SCRIPT ETH0###
the script for eth1 (the interface witch goes to provider) is:
#!/bin/bash
tc qdisc del dev eth1 root >/dev/null
tc qdisc add dev eth1 root handle 1: htb default 4
tc class add dev eth1 parent 1: classid 1:1 htb rate 64kbit ceil =
256kbit burst 15k quantum 1500
tc class add dev eth1 parent 1: classid 1:2 htb rate 10Mbit =
burst 15k quantum 1500
tc class add dev eth1 parent 1: classid 1:3 htb rate 80Mbit =
burst 15k quantum 1500
tc class add dev eth1 parent 1:1 classid 1:100 htb rate 64kbit ceil =
256kbit burst 15k
tc qdisc add dev eth1 parent 1:100 handle 100: sfq perturb 5 quantum =
1500
tc class add dev eth1 parent 1:100 classid 1:1001 htb rate 4kbit ceil =
64kbit prio 5 quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:1001 handle 1001: sfq perturb 5 =
quantum 1500
...
tc class add dev eth1 parent 1:2 classid 1:300 htb rate 5Mbit prio 8 =
quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:300 handle 300: sfq perturb 5 quantum =
1500
tc class add dev eth1 parent 1:300 classid 1:3001 htb rate 32kbit ceil =
128kbit prio 5 quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:3001 handle 3001: sfq perturb 5 =
quantum 1500
tc class add dev eth1 parent 1:300 classid 1:3002 htb rate 32kbit ceil =
128kbit prio 5 quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:3002 handle 3002: sfq perturb 5 =
quantum 1500
...
tc class add dev eth1 parent 1:3 classid 1:500 htb rate 80Mbit prio 8 =
quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:500 handle 500: sfq perturb 5 quantum =
1500
tc class add dev eth1 parent 1:500 classid 1:5001 htb rate 128kbit ceil =
8Mbit prio 5 quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:5001 handle 5001: sfq perturb 5 =
quantum 1500
tc class add dev eth1 parent 1:500 classid 1:5002 htb rate 128kbit ceil =
8Mbit prio 5 quantum 1500 burst 15k
tc qdisc add dev eth1 parent 1:5002 handle 5002: sfq perturb 5 =
quantum 1500
...
iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.1 -m mark --mark 0 =
-j MARK --set-mark 1001
iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.1 -m mark --mark 1 =
-j MARK --set-mark 3001
iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.1 -m mark --mark 2 =
-j MARK --set-mark 5001
iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.2 -m mark --mark 0 =
-j MARK --set-mark 1002
iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.2 -m mark --mark 1 =
-j MARK --set-mark 3002
iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.2 -m mark --mark 2 =
-j MARK --set-mark 5002
...
tc filter add dev eth1 protocol ip handle 1001 fw flowid 1:1001
tc filter add dev eth1 protocol ip handle 3001 fw flowid 1:3001
tc filter add dev eth1 protocol ip handle 5001 fw flowid 1:5001
tc filter add dev eth1 protocol ip handle 1002 fw flowid 1:1002
tc filter add dev eth1 protocol ip handle 3002 fw flowid 1:3002
tc filter add dev eth1 protocol ip handle 5002 fw flowid 1:5002
#END OF ETH1 SCRIPT#
After i start the scripts all the hosts encounters difficulties in =
accessing the internet... the web from the internet (class 1:1) are =
loading verry slow (20-30 seconds); i have ping timeouts... yahoo =
messenger is connecting in about 20-30 seconds... iti si a mess...
I know the bandwidth is verry small but even if there are 8 users online =
the bandwidth should divide and work much faster at least for web...
I think the script has problems in the part with the burst of 15k... can =
somebody tell me where is going wrong?
Please help,
Claudiu.
------=_NextPart_000_0007_01C4C03C.980F5950
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1458" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>Hello!</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>I have an internet connection of 64kbps =
garanteed=20
in a channel of 256kbps. On this connection the metropolitan speed is =
10Mbps and=20
in the provider's network the speed is 100Mbps.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>I have a few clients behind my linux =
box and i want=20
to set up some limitations because some of them are using it=20
irrational.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>I am marking the packets with 0 for =
internet; 1 for=20
metropolitan 2 for provider's network.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2>Afther the mark i send the packets to =
the followind=20
classes:</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>script for eth0 (eth0 is my local=20
network)</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>#!/bin/bash<BR>tc qdisc del dev eth0 =
root=20
>/dev/null<BR>tc qdisc add dev eth0 root handle 1: htb default =
3</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth0 parent 1: classid 1:1 htb rate=20
64kbit ceil 256kbit burst 15k quantum=20
1500 # =
Internet<BR>tc class add dev eth0 parent 1: classid 1:2 htb =
rate=20
10Mbit &=
nbsp; =20
burst 15k quantum=20
1500 # =
Metropolitan<BR>tc class add dev eth0 parent 1: classid 1:3 =
htb rate=20
80Mbit &=
nbsp; =20
burst 15k quantum=20
1500 # =
Provider</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth0 parent 1:1 classid 1:100 htb rate 64kbit ceil =
256kbit=20
burst 15k<BR> tc qdisc add dev eth0 parent 1:100 =
handle 100:=20
sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth0 parent 1:100 classid 1:1001 htb rate 4kbit =
ceil=20
64kbit prio 5 quantum 1500 burst=20
15k <BR> tc qdisc add dev eth0 parent =
1:1001=20
handle 1001: sfq perturb 5 quantum 1500<BR>tc class add dev eth0 parent =
1:100=20
classid 1:1002 htb rate 4kbit ceil 64kbit prio 5 =
quantum 1500=20
burst 15k <BR> tc qdisc add dev eth0 parent =
1:1002=20
handle 1002: sfq perturb 5 quantum 1500<BR>...</DIV>
<DIV>tc class add dev eth0 parent 1:100 classid 1:1020 htb rate 4kbit =
ceil=20
64kbit prio 5 quantum 1500 burst=20
15k <BR> tc qdisc add dev eth0 parent =
1:1020 handle=20
1020: sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth0 parent 1:2 classid 1:300 htb rate 5Mbit =
prio 5=20
quantum 1500 burst 15k<BR> tc qdisc add dev eth0 =
parent 1:300=20
handle 300: sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth0 parent 1:300 classid 1:3001 htb rate 8kbit =
ceil=20
256kbit prio 5 quantum 1500 burst=20
15k <BR> tc qdisc add dev eth0 parent =
1:3001 handle=20
3001: sfq perturb 5 quantum 1500<BR>tc class add dev eth0 parent 1:300 =
classid=20
1:3002 htb rate 8kbit ceil 256kbit prio 5 quantum 1500 =
burst=20
15k </DIV>
<DIV> tc qdisc add dev eth0 parent 1:3002 handle 3002: =
sfq=20
perturb 5 quantum 1500<BR>...</DIV>
<DIV>tc class add dev eth0 parent 1:300 classid 1:3020 htb rate 5kbit =
ceil=20
256kbit prio 5 quantum 1500 burst 15k
<DIV> tc qdisc add dev eth0 parent 1:3020 handle 3020: =
sfq=20
perturb 5 quantum 1500<BR></DIV></DIV>
<DIV>
<DIV>tc class add dev eth0 parent 1:2 classid 1:500 htb rate 80Mbit =
prio 5=20
quantum 1500 burst 15k<BR> tc qdisc add dev eth0 =
parent 1:500=20
handle 500: sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth0 parent 1:500 classid 1:5001 htb rate 8kbit =
ceil=20
8Mbit prio 5 quantum 1500 burst=20
15k <BR> tc qdisc add dev eth0 parent =
1:5001 handle=20
5001: sfq perturb 5 quantum 1500<BR>
<DIV>tc class add dev eth0 parent 1:500 classid 1:5002 htb rate 8kbit =
ceil=20
8Mbit prio 5 quantum 1500 burst=20
15k <BR> tc qdisc add dev eth0 parent =
1:5002 handle=20
5002: sfq perturb 5 quantum 1500</DIV>
<DIV>...</DIV>
<DIV> </DIV>
<DIV>iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.1 -j =
CLASSIFY --set-class 1:1001<BR>iptables -t mangle -A POSTROUTING -o eth0 =
-d=20
10.0.0.1 -m mark --mark 1 -j CLASSIFY --set-class 1:3001<BR>iptables -t =
mangle=20
-A POSTROUTING -o eth0 -d 10.0.0.1 -m mark --mark 2 -j CLASSIFY =
--set-class=20
1:5001</DIV>
<DIV> </DIV>
<DIV>
<DIV>iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.2 -j CLASSIFY=20
--set-class 1:1002<BR>iptables -t mangle -A POSTROUTING -o eth0 -d =
10.0.0.2 -m=20
mark --mark 1 -j CLASSIFY --set-class 1:3002<BR>iptables -t mangle -A=20
POSTROUTING -o eth0 -d 10.0.0.2 -m mark --mark 2 -j CLASSIFY --set-class =
1:5002</DIV>
<DIV>...</DIV>
<DIV> </DIV>
<DIV>###END SCRIPT ETH0###</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>the script for eth1 (the interface witch goes to provider) =
is:</DIV>
<DIV> </DIV>
<DIV>#!/bin/bash<BR>tc qdisc del dev eth1 root >/dev/null<BR>tc qdisc =
add dev=20
eth1 root handle 1: htb default 4</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1: classid 1:1 htb rate=20
64kbit ceil 256kbit burst 15k quantum 1500<BR>tc class =
add dev=20
eth1 parent 1: classid 1:2 htb rate=20
10Mbit &=
nbsp; =20
burst 15k quantum 1500<BR>tc class add dev eth1 parent =
1: classid 1:3 htb rate=20
80Mbit &=
nbsp; =20
burst 15k quantum 1500</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1:1 classid 1:100 htb rate 64kbit ceil =
256kbit=20
burst 15k<BR> tc qdisc add dev eth1 parent 1:100 =
handle 100:=20
sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1:100 classid 1:1001 htb rate 4kbit =
ceil=20
64kbit prio 5 quantum 1500 burst =
15k<BR> tc=20
qdisc add dev eth1 parent 1:1001 handle 1001: sfq perturb 5 quantum=20
1500<BR>...</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1:2 classid 1:300 htb rate 5Mbit prio =
8=20
quantum 1500 burst 15k<BR> tc qdisc add dev eth1 =
parent 1:300=20
handle 300: sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1:300 classid 1:3001 htb rate 32kbit =
ceil=20
128kbit prio 5 quantum 1500 burst 15k<BR> =
tc qdisc=20
add dev eth1 parent 1:3001 handle 3001: sfq perturb 5 quantum 1500<BR>tc =
class=20
add dev eth1 parent 1:300 classid 1:3002 htb rate 32kbit ceil =
128kbit =20
prio 5 quantum 1500 burst 15k<BR> tc qdisc add =
dev eth1=20
parent 1:3002 handle 3002: sfq perturb 5 quantum 1500<BR>...</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1:3 classid 1:500 htb rate 80Mbit prio =
8=20
quantum 1500 burst 15k<BR> tc qdisc add dev eth1 =
parent 1:500=20
handle 500: sfq perturb 5 quantum 1500</DIV>
<DIV> </DIV>
<DIV>tc class add dev eth1 parent 1:500 classid 1:5001 htb rate 128kbit =
ceil=20
8Mbit prio 5 quantum 1500 burst 15k<BR> tc =
qdisc=20
add dev eth1 parent 1:5001 handle 5001: sfq perturb 5 quantum 1500<BR>tc =
class=20
add dev eth1 parent 1:500 classid 1:5002 htb rate 128kbit ceil =
8Mbit =20
prio 5 quantum 1500 burst 15k<BR> tc qdisc add =
dev eth1=20
parent 1:5002 handle 5002: sfq perturb 5 quantum 1500<BR>...</DIV>
<DIV><BR>iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.1 -m mark =
--mark=20
0 -j MARK --set-mark 1001<BR>iptables -t mangle -A PREROUTING -i =
eth0 -s=20
10.0.0.1 -m mark --mark 1 -j MARK --set-mark 3001<BR>iptables -t =
mangle -A=20
PREROUTING -i eth0 -s 10.0.0.1 -m mark --mark 2 -j MARK --set-mark =
5001</DIV>
<DIV> </DIV>
<DIV>iptables -t mangle -A PREROUTING -i eth0 -s 10.0.0.2 -m mark --mark =
0 =20
-j MARK --set-mark 1002<BR>iptables -t mangle -A PREROUTING -i eth0 -s =
10.0.0.2=20
-m mark --mark 1 -j MARK --set-mark 3002<BR>iptables -t mangle -A=20
PREROUTING -i eth0 -s 10.0.0.2 -m mark --mark 2 -j MARK --set-mark =
5002</DIV>
<DIV>...</DIV>
<DIV><BR>tc filter add dev eth1 protocol ip handle 1001 fw flowid=20
1:1001<BR>tc filter add dev eth1 protocol ip handle 3001 fw flowid =
1:3001<BR>tc filter add dev eth1 protocol ip handle 5001 fw flowid =
1:5001</DIV>
<DIV> </DIV>
<DIV>tc filter add dev eth1 protocol ip handle 1002 fw flowid =
1:1002<BR>tc=20
filter add dev eth1 protocol ip handle 3002 fw flowid 1:3002<BR>tc =
filter=20
add dev eth1 protocol ip handle 5002 fw flowid 1:5002</DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV>#END OF ETH1 SCRIPT#</DIV>
<DIV> </DIV>
<DIV>After i start the scripts all the hosts encounters difficulties in=20
accessing the internet... the web from the internet (class 1:1) are =
loading=20
verry slow (20-30 seconds); i have ping timeouts... yahoo messenger is=20
connecting in about 20-30 seconds... iti si a mess...</DIV>
<DIV>I know the bandwidth is verry small but even if there are 8 users =
online=20
the bandwidth should divide and work much faster at least for =
web...</DIV>
<DIV>I think the script has problems in the part with the burst of =
15k... can=20
somebody tell me where is going wrong?</DIV>
<DIV> </DIV>
<DIV>Please help,</DIV>
<DIV> =
Claudiu.</DIV></DIV></DIV></DIV></FONT></BODY></HTML>
------=_NextPart_000_0007_01C4C03C.980F5950--