maio 062010
 

Olá!

Neste post vou passar rapidamente como implementar controle de banda, para limitar a velocidade utilizada por downloads, utilizando o proxy squid.

Primeiramente, é necessário adicionar o parâmetro “–enable-delay-pools” na hora de configurar/compilar o squid. Por exemplo:

./configure –prefix=/usr/local/squid –enable-delay-pools
(Observação: antes do “prefix” e do “enable”, são dois sinais “-“, não sei porque o WordPress só mostra um :P)

O comando acima fará com que o squid se instale, posteriormente, na pasta “/usr/local/squid”, além de habilitar a funcionalidade que precisaremos para o controle de banda (os “delay pools”).

Após a configuração ter sido concluída, basta continuar normalmente com a compilação (os tradicionais “make” e “make install”).

Ao configurar as regras de acesso, no arquivo “squid.conf” (no nosso exemplo, localizado em “/usr/local/squid/etc”), poderemos criar “canais” (os “pools”) com limites de velocidade, e regrar que “tal acesso” será feito por “tal pool”. Vamos ao exemplo de como ficam as linhas no arquivo de configuração (lembrando que linhas iniciadas por “#” são consideradas “comentários”, e são ignoradas pelo squid):

#Tipos de arquivos para os quais limitaremos a banda
#acl nome_regra tipo_regra regra-propriamente-dita
#”url_regex -i” analisará todo o endereço sendo acessado, utilizando expressões regulares,
#e ignorando maiúsculas/minúsculas (isto quem faz é o “-i”)
acl limite_banda url_regex -i \.exe \.zip \.rar \.tar \.tar\.(gz|bz2)

#Quantidade de pools que iremos criar
delay_pools 1

#Classe para acesso com restricao de banda
#O primeiro “1” define que estamos informando a classe (digamos, o “tipo da limitação”) para o delay_pool 1
#O segundo “1” define o tipo da classe. Para mais detalhes, acesse este link para o manual do squid
delay_class 1 1

#Definição da largura da banda, em bytes
#O “1” informa que estamos parametrizando o delay_pool 1
#Por ser classe 1, estamos colocando todos os acessos dentro do mesmo “canal”, significando que todos irão
#compartilhar a banda definida (quanto mais downloads simultâneos, mais lento todos ficarão, pois a banda será
#dividida entre todos). Caso esteja utilizando outra classe, serão necessários mais parâmetros
#(veja o manual do squid)
#Aprox. 300kbps
delay_parameters 1 37500/37500

#Agora, associamos a regra ao delay_pool
delay_access 1 allow limite_banda

#E depois temos que liberar o restante, fora do limite de banda
http_access allow seus-parametros-de-acesso

Pronto! 🙂

Ao efetuar download de qualquer arquivo “exe”, “zip”, “rar”, “tar”, “tar.gz” ou “tar.bz2”, o mesmo entrará no canal com banda limitada.

Demais acessos serão feitos sem o limite.

 Posted by at 14:31

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.