[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Controle de Banda Debian Lenny



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.

# eth0 -> Rede
# eth1 -> Internet

# Limpa regras
tc qdisc del dev eth0 root
tc qdisc del dev eth1 root

# Regra padrao
tc qdisc add dev eth0 root handle 1: htb default 30
tc qdisc add dev eth1 root handle 1: htb default 30


# Controlar DOWNLOAD -> Sai de eth1 para eth0

# Classe 1 - 1024 kbps
tc class add dev eth1 parent 1: classid 1:1 htb rate 1024kbit ceil 1024kbit
# Classe 1 - Fila
tc qdisc add dev eth1 parent 1:1 sfq perturb 10

# Classe 10 - de 512 kbps, pode chegar a 1024 kbps
tc class add dev eth1 parent 1:1 classid 1:10 htb rate 512kbit ceil 1024kbit
# Classe 10 - Fila
tc qdisc add dev eth1 parent 1:10 sfq perturb 10
# Classe 20 - de 400 kbps, pode chegar a 1024 kbps
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 400kbit ceil 1024kbit
# Classe 20 - Fila
tc qdisc add dev eth1 parent 1:20 sfq perturb 10
# Classe 30 - de 112 kbps, pode chegar a 1024 kbps
tc class add dev eth1 parent 1:1 classid 1:30 htb rate 112kbit ceil 1024kbit
# Classe 30 - Fila
tc qdisc add dev eth1 parent 1:30 sfq perturb 10

# Todos os pacotes marcados com 1 vai para a fila da classe 10
tc filter add dev eth1 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 eth1 parent 1: protocol ip handle 2 fw classid 1:20

# Marcando os pacotes
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.1 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -i eth0 -s 192.168.0.1 -j RETURN

# Controlar UPLOAD -> Sai de eth1 para eth0

# Classe 1 - 100 mbit
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit ceil 100mbit
# Classe 1 - Fila
tc qdisc add dev eth0 parent 1:1 sfq perturb 10
# Classe 2 - de 1024 kbps
tc class add dev eth0 parent 1: classid 1:2 htb rate 1024kbit ceil 1024kbit
# Classe 2 - Fila
tc qdisc add dev eth0 parent 1:2 sfq perturb 10
# Classe 10 - de 512 kbps, pode chegar a 1024 kbps
tc class add dev eth0 parent 1:2 classid 1:10 htb rate 512kbit ceil 1024kbit
# Classe 10 - Fila
tc qdisc add dev eth0 parent 1:10 sfq perturb 10

tc class add dev eth0 parent 1:2 classid 1:20 htb rate 400kbit ceil 1024kbit
tc qdisc add dev eth0 parent 1:20 sfq perturb 10
tc class add dev eth0 parent 1:2 classid 1:30 htb rate 112kbit ceil 1024kbit
tc qdisc add dev eth0 parent 1:30 sfq perturb 10
tc class add dev eth0 parent 1:1 classid 1:3 htb rate 98976kbit ceil 100mbit
tc qdisc add dev eth0 parent 1:3 sfq perturb 10
tc filter add dev eth0 parent 1: protocol ip handle 3 fw classid 1:10
tc filter add dev eth0 parent 1: protocol ip handle 4 fw classid 1:20
tc filter add dev eth0 parent 1: protocol ip handle 5 fw classid 1:30

iptables -t mangle -A POSTROUTING -d 192.168.0.1 -j MARK --set-mark 3
iptables -t mangle -A POSTROUTING -d 192.168.0.1 -j RETURN
iptables -t mangle -A POSTROUTING -j MARK --set-mark 5
iptables -t mangle -A POSTROUTING -j RETURN

Tentei o HTB e o script do CBQ.init e com todos eles não bloqueou o trafego.

Se tiver alguma sujestão aguardo

Att

Em 7 de outubro de 2010 15:18, Junior Polegato - Linux <linux@juniorpolegato.com.br> escreveu:
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



--
To UNSUBSCRIBE, email to debian-user-portuguese-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Archive: 4CAE0ED9.6060504@juniorpolegato.com.br" target="_blank">http://lists.debian.org/4CAE0ED9.6060504@juniorpolegato.com.br



Reply to: