2010/11/5 Keppler <[email protected]>:
> Bom dia Renato.
> Estava olhando seu script, mas me surgiram algumas dúvidas e gostaria que se
> possível vc me ajudasse a entender melhor.
> Por favor veja abaixo meus comentários:
>
> Em 03-11-2010 09:52, renator escreveu:
>>
>> Keppler, eu acho mais complicado fazer o controle de banda utilizando
>> esse tipo de script. Como o Max disse, é mais fácil fazer na mão, mas
>> isso é questão de gosto. Abaixo estou colocando o modelo que eu ja
>> utilizei em um cliente. Da uma olhada nele que acho que tá bem fácil
>> de entender. Eu só coloco isso no rc.local e sou feliz :)
>>
>> #!/bin/sh
>> # Remove qualquer qdisc associado a interface eth0.
>> #eth1 é interface externa, enquanto eth0 é interface interna
>> tc qdisc del dev eth0 root
>> tc qdisc del dev eth1 root
>>
>> #associa uma regra de enfileiramento a eth1 e utiliza como classe
>> default a classe 10
>> tc qdisc add dev eth1 root handle 1: htb default 10
>>
>> #total de banda - clase pai
>> tc class add dev eth1 parent 1: classid 1:1 htb rate 1000000kbit ceil
>> 1000000kbit
>>
>> #classe filho - garantia de banda de 1500kbps -  Se a outra classe
>> (1:11) nao ocupar todo link, ela pode chegar a 2000kbps)
>> tc class add dev eth1 parent 1:1 classid 1:10 htb rate 1000000kbit
>> ceil 1000000kbit
>>
>> #classe filho - garantia de banda de 500kbps
>> tc class add dev eth1 parent 1:1 classid 1:11 htb rate 500kbit ceil
>> 500kbit
>>
>>
>> #aqui eh definido quem estara em qual classe
>> tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src
>> 201.86.236.226 flowid 1:10
>>
>
> Aqui, o IP=201.86.236.226 navegará no mínimo a 1500kbps e no máximo a
> 2000kbps desde que os 500kbps da classe 1:11 não estejam sendo utilizados ??

Na verdade não é o minimo de 1500. Ele vai usar _até_ 1500 e se tiver
banda livre na classe pai, ele usa _até_ 2000kbps.



>> tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src
>> 201.86.236.227 match ip sport 80 0xffff flowid 1:11
>> tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src
>> 201.86.236.227 match ip sport 3128 0xffff flowid 1:11
>>
>
> Por que nestas duas linha acima vc define as portas 80 e 3128 ??

São filtros, particularmente, eu prefiro fazer os filtros no iptables
usando -j CLASSIFY --set-class classe do que usar o tc para isso. No
caso ai em cima, ele jogou as conexões nas portas 80 e a 3128 na
classe 1:11 (a classe de "menor" prioridade)



>> tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip src
>> 201.86.236.227 flowid 1:11
>>
>
> Aqui na verdade é um complemento da pergunta anterior. Porque na linha acima
> vc definiu (pelo menos foi o que entendi) uma "regra geral" para o
> IP=201.86.236.227 se nas outras duas linha acima vc define portas??

É uma regra reduntante mesmo, eu não sei porque ele fez isso. :)


>> tc filter add dev eth1 protocol ip parent 1:0 prio 1 u32 match ip dst
>> 201.86.236.227 flowid 1:11
>>
>
> E nesta linha acima, o que significa "dst 201.86.236.227" ?? Por que vc
> define como "destino", pois nas regras para o IP=201.86.236.226 vc só
> definiu como "src" e não colocou nenhuma regra para "dst"

Eu também não sei porque ele fez isso. A minha suspeita é que este
host não é dele (uma filial, um servidor em datacenter e etc.) e o
objetivo das regras é garantir que sempre tenha pelo menos 500kbps
para acessos ao mesmo.

-- 
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br

Antes de perguntar:
http://www.istf.com.br/perguntas/

Para sair da lista envie um e-mail para:
[email protected]

Responder a