Re: Controle de Banda Debian Lenny
Em 02-10-2010 09:53, gunix escreveu:
no debian etch, nos tinhamos ainda o CBQ, que faziamos nossos
controlinhos de banda, com boa eficiência.
Porem no lenny ele foi descontnuado e com isso so tenho a opção do HTB.
Alguem sabe me dizer se tenho outra alternativa? O Motivo é que com o
HTB eu to tendo um problema que nao consegui solucionar, e mesmo com
ajuda de universitarios as tentativas foram em vão.
Quando uso o HTB, quem usa o SQUID, mesmo com a internet liberada o
trafego fica em apenas 8K.
Alguem pode me judar com o HTB ou me dizer se existe outro mais simples.
Olá,
Com HTB é de certa forma simples, mas primeiro precisa desenhar
sua topologia, basicamente:
Rede Interna ------ eth1 === Firewall === eth0 ------- Internet
Bom, primeiro precisa-se deixar claro que você somente controla
o que sai de cada interface a partir do Firewall, e que você deve criar
uma fila de pacotes para cada interface, dividir essa fila em classes e
em cada classe criar uma fila, que pode ser dividida em classses, etc...
Então vamos supor que tenha uma rede 10.10.10.0/24, sua
internet seja de 1 Mbps nos dois sentidos, quero reservar banda de
download e upload de 512 kbps para o computador 10.10.10.10 e usar os
512 kbps restantes para dar garantia de banda de 400 kbps a todo tráfego
de ssh e https, ficando o restante livre:
Upload em kbps:
de 10.10.10.10 ---> classe 1:10 - 512 até 1.024 |
para ssh e https ---> classe 1:20 - 400 até 1.024 |---> eth0 até 1.024
outros ---> classe 1:30 - 112 até 1.024 |
Download em kbps:
classe 2 - 1.024 até 1.024 |
classe 3 - 98.976 até 100.000 | ---> eth1 até 100.000
para 10.10.10.10 ---> classe 1:10 - 512 até 1.024 |
de ssh e https ---> classe 1:20 - 400 até 1.024 |---> classe 2 até 1.024
de eth0 - outros ---> classe 1:30 - 112 até 1.024 |
# Pacotes que saem pela eth0, vão para a internet
# Limpar configurações
tc qdisc del dev eth0 root
# Fila da interface de internet, tudo que não tiver regra vai para classe 30
tc qdisc add dev eth0 root handle 1: htb default 30
# Classe única da fila principal de 1024 kbps - classe 1
tc class add dev eth0 parent 1: classid 1:1 htb rate 1024kbit ceil
1024kbit
# Fila da classe 1
tc qdisc add dev eth0 parent 1:1 sfq perturb 10
# Classe de 512 kbps, pode chegar a 1024 kbps - classe 10
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 512kbit
ceil 1024kbit
# Fila da classe 10
tc qdisc add dev eth0 parent 1:10 sfq perturb 10
# Classe de 400 kbps, pode chegar a 1024 kbps - classe 20
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 400kbit
ceil 1024kbit
# Fila da classe 20
tc qdisc add dev eth0 parent 1:20 sfq perturb 10
# Classe de 112 kbps, pode chegar a 1024 kbps - classe 30
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 112kbit
ceil 1024kbit
# Fila da classe 30
tc qdisc add dev eth0 parent 1:30 sfq perturb 10
# Todos os pacotes marcados com 1 vai para a fila da classe 10
tc filter add dev eth0 parent 1: protocol ip handle 1 fw classid 1:10
# Todos os pacotes marcados com 2 vai para a fila da classe 20
tc filter add dev eth0 parent 1: protocol ip handle 2 fw classid 1:20
# Os outros pacotes vão para a fila padrão definida na fila da interface
# Marcando os pacotes
# Pacotes vindos de 10.10.10.10 via eth1 marca-se com 1
iptables -t mangle -A PREROUTING -i eth1 -s 10.10.10.10 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -i eth1 -s 10.10.10.10 -j RETURN
# Pacotes para ssh e https via eth1 marca-se com 2
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --dports
ssh,https -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i eth1 -p tcp -m multiport --dports
ssh,https -j RETURN
# Pacotes que saem pela eth1, vieram da internet
# Limpar configurações
tc qdisc del dev eth1 root
# Fila da interface de internet, tudo que não tiver regra vai para classe 3
tc qdisc add dev eth1 root handle 1: htb default 3
# Classe única da fila principal de 100 Mbps - classe 1
tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit ceil
100mbit
# Fila da classe 1
tc qdisc add dev eth1 parent 1:1 sfq perturb 10
# Classe 2 de 1024 kbps - classe 2
tc class add dev eth1 parent 1: classid 1:2 htb rate 1024kbit
ceil 1024kbit
# Fila da classe 1
tc qdisc add dev eth1 parent 1:2 sfq perturb 10
# Classe de 512 kbps, pode chegar a 1024 kbps - classe 10
tc class add dev eth1 parent 1:2 classid 1:10 htb rate
512kbit ceil 1024kbit
# Fila da classe 10
tc qdisc add dev eth1 parent 1:10 sfq perturb 10
# Classe de 400 kbps, pode chegar a 1024 kbps - classe 20
tc class add dev eth1 parent 1:2 classid 1:20 htb rate
400kbit ceil 1024kbit
# Fila da classe 20
tc qdisc add dev eth1 parent 1:20 sfq perturb 10
# Classe de 112 kbps, pode chegar a 1024 kbps - classe 30
tc class add dev eth1 parent 1:2 classid 1:30 htb rate
112kbit ceil 1024kbit
# Fila da classe 30
tc qdisc add dev eth1 parent 1:30 sfq perturb 10
# Classe de quase 99 Mbps, pode chegar a 100mbps - classe 3
tc class add dev eth1 parent 1:1 classid 1:3 htb rate 98976kbit
ceil 100mbit
# Fila da classe 3
tc qdisc add dev eth1 parent 1:3 sfq perturb 10
# Todos os pacotes marcados com 3 vão para a fila da classe 10
tc filter add dev eth1 parent 1: protocol ip handle 3 fw classid 1:10
# Todos os pacotes marcados com 4 vão para a fila da classe 20
tc filter add dev eth1 parent 1: protocol ip handle 4 fw classid 1:20
# Todos os pacotes marcados com 5 vão para a fila da classe 30
tc filter add dev eth1 parent 1: protocol ip handle 5 fw classid 1:30
# Os outros pacotes vão para a fila padrão definida na fila da
interface, no caso pacotes do firewall
# Marcando os pacotes
# Pacotes com destino à 10.10.10.10, marca-se com 3
iptables -t mangle -A POSTROUTING -i eth1 -d 10.10.10.10 -j MARK
--set-mark 3
iptables -t mangle -A POSTROUTING -i eth1 -d 10.10.10.10 -j RETURN
# Pacotes vindos de requisições ssh e https via eth1 marca-se com 4
iptables -t mangle -A POSTROUTING -i eth1 -p tcp -m multiport --sports
ssh,https -j MARK --set-mark 4
iptables -t mangle -A POSTROUTING -i eth1 -p tcp -m multiport --sports
ssh,https -j RETURN
# Pacotes com destino diferente de 10.10.10.10, ssh e https, os outros,
marca-se com 5
iptables -t mangle -A POSTROUTING -i eth1 -j MARK --set-mark 5
iptables -t mangle -A POSTROUTING -i eth1 -j RETURN
[]'s
Junior Polegato
Reply to: