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
>
>
>

Responder a