brizao
(usa Debian)
Enviado em 25/04/2011 - 12:58h
Olá, apesar de não ter nenhuma resposta, consegui resolver, li trocentos tópicos pra lá e pra cá e consegui através destes links:
http://www.eriberto.pro.br/wiki/index.php?title=Controle_de_tr%C3%A1fego_com_TC%2C_HTB_e_Iptables
http://blog.edseek.com/~jasonb/articles/traffic_shaping/classflows.html
http://blog.edseek.com/~jasonb/articles/traffic_shaping/classes.html
o que deve ser feito é o seguinte:
tc qdisc del dev eth2 root
tc qdisc add dev eth2 root handle 1:0 htb default 20
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1000mbit
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 1000mbit prio 0
tc class add dev eth2 parent 1:1 classid 1:20 htb rate 200kbit prio 1
tc class add dev eth2 parent 1:1 classid 1:30 htb rate 10kbit prio 2
iptables -t mangle -A POSTROUTING -o eth2 -p tcp -m multiport --sport 80,445,137,138,139,22 -j CLASSIFY --set-class 1:10
iptables -t mangle -A POSTROUTING -o eth2 -d 192.168.1.150 -j CLASSIFY --set-class 1:20
a melhor forma de especificar a qual classe um determinado endereço/porta usará, é através do iptables -t mangle -A POSTROUTING ao invés de FORWARD e ao invés de "tc filter u32...." (assim como está no site acima).
na primeira linha do iptables, especifiquei as portas (inclusive as do samba) de toda da rede para serem limitadas na classe 1:10 (utilizando todo o tráfego);
na segunda linha, especifiquei um IP que será limitado através da classe 1:20 (somente a 200k);
e todo o resto de portas e IPs, utilizará a classe 1:30 (10k), no caso, p2p e outras portas que não forem especificados na primeira linha.
Obs.: Se usar na interface da rede local, o controle é feito pelo download, se utilizar na interface de internet, o que controlamos é o upload.
Obs2.: Parece óbvio, mas quebrei a cabeça de cara, se não colocar as portas do samba, ele fica lento, pois cairá na classe default (a que não tem nada especificado).
é isso aí,
Valeu...