Oi Max.
Vc poderia me dar um exemplo de como vc faz isto no Iptables ?

Em 09-11-2010 13:49, Max Miorim escreveu:
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