Projet

Général

Profil

Buffer Bloat » Historique » Version 8

Laurent GUERBY, 07/12/2011 11:55

1 1 Laurent GUERBY
h1. Buffer Bloat
2 1 Laurent GUERBY
3 1 Laurent GUERBY
* http://bufferbloat.net
4 1 Laurent GUERBY
* http://queue.acm.org/detail.cfm?id=2071893
5 2 Laurent GUERBY
6 2 Laurent GUERBY
h2. QoS
7 2 Laurent GUERBY
8 2 Laurent GUERBY
* tc qdisc par IP source
9 2 Laurent GUERBY
http://lists.tetalab.org/pipermail/tetaneutral/2011-April/000129.html
10 1 Laurent GUERBY
* ebtable packet flow chart http://ebtables.sourceforge.net/br_fw_ia/PacketFlow.png
11 5 Laurent GUERBY
* tc openwrt theory http://wiki.openwrt.org/doc/howto/tc/tc.theory
12 4 Laurent GUERBY
* tc openwrt howto http://wiki.openwrt.org/doc/howto/tc
13 8 Laurent GUERBY
* doc HTB http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm
14 8 Laurent GUERBY
* http://www.faqs.org/docs/Linux-HOWTO/ADSL-Bandwidth-Management-HOWTO.html
15 8 Laurent GUERBY
16 6 Laurent GUERBY
17 6 Laurent GUERBY
Partage de bande passante ADSL
18 6 Laurent GUERBY
19 6 Laurent GUERBY
<pre>
20 7 Laurent GUERBY
# Version du 20111207
21 6 Laurent GUERBY
function do_qos {
22 6 Laurent GUERBY
  tc qdisc add dev $DEV root handle 1: htb default 1
23 6 Laurent GUERBY
  tc class add dev $DEV parent 1: classid 1:1 htb rate $RATE
24 1 Laurent GUERBY
  for IP in $IP_LIST; do
25 7 Laurent GUERBY
    tc class add dev $DEV parent 1:1 classid 1:$IP htb rate 1kbit ceil $RATE
26 6 Laurent GUERBY
    tc filter add dev $DEV protocol ip parent 1:0 prio 1 u32 match ip $DIR 91.224.148.$IP flowid 1:$IP
27 6 Laurent GUERBY
  done
28 6 Laurent GUERBY
}
29 6 Laurent GUERBY
30 6 Laurent GUERBY
DIR=dst #on gw then RATE= ADSL download speed
31 6 Laurent GUERBY
#DIR=src #on local machine then RATE= ADSL upload speed
32 1 Laurent GUERBY
33 6 Laurent GUERBY
DEV=tapstg
34 7 Laurent GUERBY
RATE=11000kbit # src 700kbit
35 6 Laurent GUERBY
IP_LIST=$(seq 129 144)
36 1 Laurent GUERBY
do_qos
37 6 Laurent GUERBY
38 6 Laurent GUERBY
DEV=tapthd
39 7 Laurent GUERBY
RATE=5500kbit # src TODO
40 1 Laurent GUERBY
IP_LIST=$(seq 194 207)
41 6 Laurent GUERBY
do_qos
42 6 Laurent GUERBY
43 6 Laurent GUERBY
DEV=tapmon
44 7 Laurent GUERBY
RATE=480kbit # src 96kbit
45 1 Laurent GUERBY
IP_LIST=$(seq 114 115)
46 1 Laurent GUERBY
do_qos
47 1 Laurent GUERBY
48 7 Laurent GUERBY
</pre>
49 7 Laurent GUERBY
50 7 Laurent GUERBY
Pour supprimer un qdisc :
51 7 Laurent GUERBY
52 7 Laurent GUERBY
<pre>
53 7 Laurent GUERBY
tc qdisc del dev tapxxx root
54 7 Laurent GUERBY
</pre>
55 7 Laurent GUERBY
56 7 Laurent GUERBY
Pour afficher :
57 7 Laurent GUERBY
58 7 Laurent GUERBY
<pre>
59 7 Laurent GUERBY
tc -p -s -d qdisc show dev tapxxx
60 7 Laurent GUERBY
tc -p -s -d class show dev tapxxx
61 7 Laurent GUERBY
tc -p -s -d filter show dev tapxxx
62 6 Laurent GUERBY
</pre>