quinta-feira, 26 de julho de 2012

Implementando Controle de Banda com Delay Pool


Pessoal vou mostrar hoje como implementar o controle de banda no squid, um recurso muito interessante para limitar os espertinhos da rede, com ele você consegue limitar o trafego dos downloads na rede, impedindo que sua banda fique saturada, não vamos abordar a instalação do squid nem sua configuração básica, caso você não tenha intimidade com o squid, acesse  http://guiadoti.blogspot.com.br/2012/07/instalando-e-configurando-um-servidor.html para prosseguir com este tutorial, bem vamos ao que interessa:


Primeiro temos que criar duas acls, uma contendo os ips que não passarão pelo controle de banda e a outra contendo os ips que serão limitados, ou contendo a faixa de rede.

# pico /etc/squid/trafego_ilimitado

Neste exemplo irei adicionar o ip 192.168.0.111 e 192.168.0.150 como liberados.

# pico /etc/squid/controle_de_banda

E aqui os ips 192.168.0.200, 192.168.0.201 e 192.168.0.202 com o controle de banda.

Bem depois de criar os arquivos é hora de configurar o squid.conf

# pico /etc/squid/squid.conf

Adicione as linhas abaixo em seu squid.

acl  trafego_ilimitado src “/etc/squid/trafego_ilimitado”
acl  controle_de_banda src “/etc/squid/controle_de_banda”

delay_pools 2

delay_class 1 2
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow trafego_ilimitado

delay_class 2 2
delay_parameters 2 614400/614400  81920/819200
delay_access 1 allow controle_de_banda

Agora vamos entender o que são cada uma dessas linhas:

delay_pools 2 -> Essa linha define quantas pools o squid vai possuir, em nosso exemplo duas.

delay_class 1 2 -> Define a classe da delay_poll, existirá uma delay_class para cada delay_poll criada.

delay_parameters 1 -1/-1 -1/-1 -> Define o tráfego referente a delay_class, nesse caso especificados trafego ilimitado com a opção -1/-1.

delay_access 1 allow trafego_ilimitado -> Libera trafego total para os ips que estiverem na acl trafego_ilimitado.

delay_class 2 2 -> Declara a segunda classe a ser utilizada.

delay_parameters 2 614400/614400  81920/819200 -> Aqui definimos um tráfego de 80 kbps para cada usuário que esteja na acl controle_de_banda. O delay_parameters lê o trafego em bytes ou seja você precisa definir o limite de download da rede em bytes. Para isso é só multiplicar o valor em kbytes por 1024 (ex: 80kb x 1024 = 81920)

delay_access 1 allow controle_de_banda -> Controla o tráfego para os ips que estiverem na lista da acl controle_de_banda.

Bem é isso ai pessoal espero que esse artigo possa ajudar a todos... :)

7 comentários:

  1. otimo funcionou, mas como eu faço para ter controle de banda por logins. abraço

    ResponderExcluir
  2. Joserf você teria que configurar o squid para ter acesso por autenticação para poder interligar as ACLs, posso fazer um tutorial sobre isso, só não te prometo que vai ser rápido, to meio sem tempo, abraços.

    ResponderExcluir
  3. Ricardo,
    Na linha "delay_access 1 allow controle_de_banda" o nro "1" deve ser substituido pelo nro "2" para funcionar corretamente. Se deixar o "1" todas as conexoes serao ilimitadas pois estarao usando os parametros do delay_parameters 1.

    delay_parameters 1 ...
    delay_access 1 ...
    delay_parameters 2 ...
    delay_access 2 ...

    ResponderExcluir
  4. Respostas
    1. Cara, esse valor corresponde ao percentual que vc reservou da sua banda total para uso do squid.

      Excluir
  5. Olá amigo, gostei do tutorial, muito show! Só uma dúvida, ao limitar a 80Kbps, ficou este valor 81920/819200 (O valor da direita não está com um "0" a mais?)

    ResponderExcluir
  6. Muito bem explicado! No meu caso estou precisando limitar o upload para uma das minhas redes; se puder me dar uma dica fico agradecido...

    ResponderExcluir