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]

