Ola Junior, te agradeço pela ajuda com o HTB, realmente o que me passou acrescemtpui muito, pois melhor que conhecer algumas ferramentas é conhecer tudo como funciona na unha.
O problema é que, mesmo usando os comandos que me passou, usando a ferramenta HTBtools e alternativa CBQ, o controle de banda não funciona na mihna rede. depois de todos os comandos, meu download continuou a 300 kbps. o resultado do comando foi: Every 1,0s: tc -s class show dev eth1 Sat Oct 9 22:06:40 2010 class htb 1:11 parent 1:1 rate 50000bit ceil 50000bit burst 1599b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 6250 ctokens: 6250 class htb 1:111 parent 1:11 leaf 8027: prio 0 rate 40000bit ceil 50000bit burst 1600b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 312500 ctokens: 249999 class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 1600b cburst 1600b Sent 3750802 bytes 68827 pkt (dropped 0, overlimits 0 requeues 0) rate 79776bit 183pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 122 ctokens: 122 class htb 1:112 parent 1:11 leaf 8028: prio 0 rate 10000bit ceil 50000bit burst 1600b cburst 1599b Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0) rate 0bit 0pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 1250000 ctokens: 249999 class htb 1:12 parent 1:1 leaf 8026: prio 0 rate 98000Kbit ceil 100000Kbit burst 1580b cburst 1600b Sent 3750802 bytes 68827 pkt (dropped 0, overlimits 0 requeues 0) rate 79776bit 183pps backlog 0b 0p requeues 0 lended: 68827 borrowed: 0 giants: 0 tokens: 123 ctokens: 122 no que vc me passou, mudei o eth0 pelo eth1 pois o eth1 é minha interface de rede e pelo que entendi o HTB funciona pela saida da interface. DE: eth1 para eth0 -> Download DE eth0 para eth1 -> UPLOAD Mesmo nõa funiocnando, usei o inverso. troquei eth1 por eth0 e mesmo assim nada. Se tiver alguma dico onde posso procurar o problema agradeço. PS Controlar o upload funciona normal. att Gustavo Em 9 de outubro de 2010 10:19, Junior Polegato - Linux < li...@juniorpolegato.com.br> escreveu: > Em 08-10-2010 18:43, gunix escreveu: > > Eu tenho a TOPOLOGIA >> eth0 : REDE >> eth1 : Internet >> Fiz exatamento como passou, apenas nos ultimos comando iptables que tive >> que tirar o -i INTERFACE , pois o POSTROUTING não funciona com o paramentro >> -i >> Ficou assim o comando: Mesmo assim não funcionou as regras de download. >> Meu link é 2 Mb. Apos o script coninuou consumindo a mesma banda que >> antes. 154 k >> Ao limpar as regras o download continua na mesma velocidade. >> > > Olá, > > Vamos por parte então... > > Quanto ao "-i" do POSTROUTING, realmente está errado, coisa do > copia, colar e adaptar, deveria ser "-o". > > Bom, se a eth0 está conectada na sua rede, então tudo que é enviado > para ela é o download da rede, então vamos controlar o que é enviado (sai) > via eth0. > > Primeiramente, vamos limpar o controle de tráfego (tc) e criar a > classe principal 1:1 e duas classes abaixo, uma classe 1:11 que vai passar > tudo o vem da eth1 (internet), marcado com 1, e outra classe 1:12 para o > resto (firewall): > > # Limpar controle de tráfego e definir htb com fluxo para 1:12 > > tc qdisc del dev eth0 root > tc qdisc add dev eth0 root handle 1: htb default 12 > > # Classe principal 1:1 > tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit > tc qdisc add dev eth0 parent 1:1 sfq perturb 10 > > # Subclasses 1:11 e 1:12 > tc class add dev eth0 parent 1:1 classid 1:11 htb rate 2mbit ceil 2mbit > tc class add dev eth0 parent 1:1 classid 1:12 htb rate 98mbit ceil 100mbit > tc qdisc add dev eth0 parent 1:11 sfq perturb 10 > tc qdisc add dev eth0 parent 1:12 sfq perturb 10 > > Agora podemos monitorar a velocidade com: > > watch -n 1 tc -s class show dev eth0 > > Deixando o watch acima rodando e fazendo download de dentro rede, > como ficam os valores de rate mostrados de segundo a segundo em cada classe? > Aqui teoricamente todo o tráfego está passando por 1:12 e então por 1:1. > > Ainda com o watch rodando, vamos passar o tráfego da rede local por > 1:11: > > # Marcar o tráfego que entra pela eth1, download, com 1 > iptables -t mangle -A PREROUTING -i eth1 -j MARK --set-mark 1 > iptables -t mangle -A PREROUTING -i eth1 -j RETURN > > # Direcionar todo o tráfego marcado com 1, download, para a classe 1:11 > tc filter add dev eth0 parent 1: protocol ip handle 1 fw classid 1:11 > > E agora, como estão os valores de rate no watch para cada classe? > > Agora vamos diminuir o a banda de download para 50 kbps, conexão > discada, rsrsrs: > > tc class change dev eth0 parent 1:1 classid 1:11 htb rate 50kbit ceil > 50kbit > > E agora, como estão os valores de rate no watch para cada classe? > Espera-se que em menos de 10 segundos a banda caia para o valor estipulado, > mas no watch vai cair gradativamente devido à janela grande para > estatística. > > Legal, agora vamos criar duas sub classes sob a classe reduzida > acima, a 1:111 para a máquina (192.168.0.111 no caso) que está sendo fazendo > download e outra para o resto da rede, lembrando que temos que marcar o > tráfego e refazer o filtro: > > tc class add dev eth0 parent 1:11 classid 1:111 htb rate 40kbit ceil 50kbit > tc class add dev eth0 parent 1:11 classid 1:112 htb rate 10kbit ceil 50kbit > tc qdisc add dev eth0 parent 1:111 sfq perturb 10 > tc qdisc add dev eth0 parent 1:112 sfq perturb 10 > > # Download já é marcado com 1 e vai para a classe 1:112 > tc filter add dev eth0 parent 1: protocol ip handle 1 fw classid 1:112 > > # Download para 192.168.0.111 marcado com 2 e vai para a classe 1:111 > # O destino local é atribuído depois do roteamento, então usa-se > "POSTROUTING" > # A marção de ser antes da outra geral, então usa-se "-I" em vez de "-A" > iptables -t mangle -I POSTROUTING 1 -o eth0 -d 192.168.0.111 -j MARK > --set-mark 2 > iptables -t mangle -I POSTROUTING 2 -o eth0 -d 192.168.0.111 -j RETURN > tc filter add dev eth0 parent 1: protocol ip handle 2 fw classid 1:111 > > E agora, como estão os valores de rate no watch para cada classe? A > classe 1:11 deve estar com 50 kbps no talo, a classe 1:111 deve estar com 40 > kbps ou mais, sendo esse "mais" o que está ocioso na classe 1:112 para > chegar nos 10 kbps. Se colocar outra máquina para fazer download, vai então > ter a 1:11 com 50 kbps, 1:111 com 40 kbps e 1:112 com 10 kbps. Se matar o > dowload da máquina com 40 kbps, a classe 1:112 vai chegar nos 50 kbps. > > Creio que tenha pego o espírito do coisa. Basta agora seguir a mesma > lógica > > Bom isso é o máximo que posso contribuir, boa sorte! > > > []'s > Junior Polegato > > >