Incerc sa fac o limitare cu htb pentru un ip. As vrea sa-i las un canal 
limitat in internet, dar sa aiba o limita foarte mare in reteaua 
"metropolitana".

Am niste clase de ip-uri din metropolitana in fisierul /root/routes.
Am marcat cu iptables pachetele in felul asta:

#!/bin/sh

# flush PREROUTING
/sbin/iptables -t mangle -F PREROUTING

#
for i in `cat /root/routes`
{
    /sbin/iptables -A PREROUTING -t mangle -s $i -j MARK --set-mark 1
}


Dupa aceea incerc sa fac limitarile in felul asta:


# delete old root qdisc
tc qdisc  del dev eth4 root

# add root qdisc
tc qdisc  add dev eth4 root handle 1: htb default 11

# add root class
tc class  add dev eth4 parent 1:  classid 1:1 htb rate 256kbit ceil 
256kbit quantum 1536

# add classes 11 and 12
tc class  add dev eth4 parent 1:1 classid 1:11 htb rate 128kbit ceil 
256kbit quantum 1536
tc class  add dev eth4 parent 1:1 classid 1:12 htb rate 128kbit ceil 
256kbit quantum 1536
tc class  add dev eth4 parent 1:1 classid 1:13 htb rate  10mbit ceil  
10mbit quantum 1536

# add sfq
tc qdisc add dev eth4 parent 1:11 handle 11: sfq perturb 10
tc qdisc add dev eth4 parent 1:12 handle 12: sfq perturb 10
tc qdisc add dev eth4 parent 1:13 handle 13: sfq perturb 10

# add filters
tc filter add dev eth4 protocol ip parent 1:0 prio 1 u32 match ip dst 
217.156.103.249/32 match ip sport 80 0xffff flowid 1:12
tc filter add dev eth4 protocol ip parent 1:0 prio 1 u32 match ip dst 
217.156.103.249/32 match ip dport 25 0xffff flowid 1:12
tc filter add dev eth4 protocol ip parent 1:0 prio 1 handle 1 fw flowid 1:13

Am presupus ca "handle 1" inseamna pachetele marcate cu "--set-mark 1" 
mai inainte, din documentatia citita.

Problema e ca la ultima linie imi apare mesajul de eroare:
RTNETLINK answers: Invalid argument

(Ciudat e ca daca pun ultima linie inaintea celor 2 precedente, nu mai 
da eroare, in schimb celelalte 2 linii dau fiecare eroarea de mai sus. 
Sunt oare 2 chestii incompatibile?)


Nici un pachet nu ajunge pe 1:13, dupa cum se vede din comanda "tc -s -d 
qdisc show":

 qdisc sfq 13: dev eth4 quantum 1514b limit 128p flows 128/1024 perturb 
10sec
 Sent 0 bytes 0 pkts (dropped 0, overlimits 0)

 qdisc sfq 12: dev eth4 quantum 1514b limit 128p flows 128/1024 perturb 
10sec
 Sent 15154639 bytes 19763 pkts (dropped 0, overlimits 0)

 qdisc sfq 11: dev eth4 quantum 1514b limit 128p flows 128/1024 perturb 
10sec
 Sent 47149389 bytes 175348 pkts (dropped 0, overlimits 0)

 qdisc htb 1: dev eth4 r2q 10 default 11 direct_packets_stat 0 ver 3.10
 Sent 62304028 bytes 195111 pkts (dropped 0, overlimits 25484)



Care e explicatia, cu ce gresesc si cum sa fac?



--- 
Detalii despre listele noastre de mail: http://www.lug.ro/


Raspunde prin e-mail lui