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/