Criando delay pools (Proxy/Squid)

Neste tutorial você vai aprender a usar as delay polls, que são opções do proxy/Squid para se poder fazer controle de banda. Eu o fiz porque não achava nada realmente interessante em português. Espero que gostem.

[ Hits: 146.451 ]

Por: flipe em 25/06/2004 | Blog: http://linuxplue.blogspot.com


O que significam as opções?



acl extensoes url_regex -i .*

Esta acl que criamos está pegando tudo que é relacionado a ponto, ou seja, inclusive extensões html, jpeg, jpg, gif, php, png, htm, etc, que são usadas em páginas de internet.

Se você quer bloquear tudo menos estas extensões, faça assim:

acl extensoes url_regex -i .* !.html !.htm !.php !.jpeg !.jpg !.png !.gif

Bloqueamos tudo exceto as seguintes extensões. Mas se o seu interesse é bloquear arquivos como mp3, avi, faça o seguinte:

acl extensoes url_regex -i .exe .mp3 .vqf .tar.gz .gz .rpm .zip .rar .avi .mpeg .mpe .mpg .qt .ram .rm .iso .raw .wav .mov

Você também pode criá-las em um arquivo:

acl extensoes url_regex -i "caminho do arquivo"

Coloque as extensões dentro deste arquivo (mas apenas uma extensão por linha).

acl interno url_regex -i 192.168.1.0

delay_pools


Esta opção especifica o número de delay pools que você vai possuir, por exemplo, se você possui 2 delay pools, este número deve ser igual a 2, se você tem 3 delay pools, este número deve ser igual a 3 e assim por diante.

# delay_pools (número de delay pools)
delay_pools 2 #isto significa que nós possuímos 2 delay's pools.

# Como dito acima, o número de delay pools que vamos criar.
###################################################

#delay_class:
# Define a classe de cada delay pool. Deve haver exatamente uma classe de delay para cada delay pool.

# delay_class (número da delay pool) (número da classe da delay pool)
delay_class 1 2 #isto significa que a delay pool 1 é uma delay class 2
delay_class 2 2 #isto significa que a delay pool 2 é uma delay class 2

# Como visto acima, nós temos duas delay pools e duas delay class,
# e também podemos ver que nossas delay class são todas classe 2.
# Não esqueça, o primeiro número é sua delay pool, e o segundo é a sua delay class.
###################################################

# delay_access:
# Determina em qual delay pool uma requisição será encaixada. A primeira a combinar será utilizada, por isso verifique com #cuidado suas acls.

# delay_access (número da delay poll) allow|deny nome da acl
delay_access 1 allow palavras #estamos direcionando nossa delay pool 1(que é uma classe 2) para a acl palavras.
delay_access 2 allow interno #fazendo o mesmo que acima, porém para a acl interno(que também é uma classe 2).
###################################################

# delay_parameters:
# Define os parâmetros para uma delay pool. Cada delay pool tem um número de alocação de tráfego associado.

# delay_parameters (número da delay pool) agregado (delay_class 1)
# delay_parameters (número da delay pool) agregado individual (delay_class 2)
# delay_parameters (número da delay pool) agregado network individual (delay_class 3)

# Aqui vou mostrar apenas a saída da delay class 3 pois está engloba todas a opções.

# delay_parameters 1 -1/-1 24000/24000 1000/1000

# vamos ao significado:
# -1/-1:
# Valor AGREGADO: aqui especificamos quanto toda a banda vai utilizar, no caso -1/-1 significa
# valor ilimitado, por isso, se você quer limitar sua banda nunca coloque -1/-1.

# 24000/24000:
# Valor NETWORK(REDE):aqui especificamos quanto cada uma de nossas redes irá poder utilizar, no caso algo em torno de 23Kb/s.

# 1000/1000:
# Valor INDIVIDUAL:aqui especificamos quanto cada um de nossos usuários poderá utilizar, no caso menos de um 1K/s.

# Cada valor tem duas áreas, uma antes da barra e outra depois. Vamos lá.
# RESTORE:O antes da barra.
# Especifica quantos bits poderá ser trafegado por segundo.

# MAX:E lógico, o depois da barra.
# Especifica quantos bits poderá trafegar no total.

# Delay pools sempre trabalham com bits, não se esqueça.
delay_parameters 1 -1/-1 500/1000 #leia acima para entender.
delay_parameters 2 -1/-1 15000/25000 #leia acima para entender.
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O que significam as opções?
   3. O resultado
Outros artigos deste autor

Servidor NIS/NFS

Configurando Postfix + MySQL + Courier + SPF + Clamav + SpamAssassin + Greylist + TLS

ICINGA - Monitorando máquinas remotas com NRPE

Conhecendo o LXDE

Reforçando a segurança do MTA Postfix com o Apolicy

Leitura recomendada

Gerando relatórios no Sarg com nome da máquina/usuário ao invés do IP

Squid - Autenticação e controle de acesso a base de dados Firebird

SquidGuard: Bloqueando o acesso a Web

Proxy transparente com Squid, com controle de banda e bloqueio por horários

Squid3 + Ubuntu Lucid 10.04 + Kerberos Auth + AD

  
Comentários
[1] Comentário enviado por gustavo_marcon em 25/06/2004 - 14:38h

O squid só controla o que vêm das portas 80 e 21 (http e ftp), ou faz controle geral, como o CBQ e o BandLimit??

Ah, legal o artigo. Parabéns

[2] Comentário enviado por flipe em 25/06/2004 - 16:12h

o squid só trabalha com http, ftp e gopher(nem sei pra que :) )

[3] Comentário enviado por carlos.ninho em 27/06/2004 - 02:52h

aumentando o delay de pacotes vc nao limita o uso de banda, mas sim o tempo de respota a quem o requisitou na rede.
nao vejo vantagens em utilizar esse tipo de parametro...

[4] Comentário enviado por flipe em 27/06/2004 - 10:49h

bem... muita gente gosta de utilizar a opção assim... é uma questão de ocasião e de que vc está precisando.. mas porém pode-se ver que na maoiria dos tutoriais eles recomendam assim.. mas não significa que esteja certo... :)

[5] Comentário enviado por ranho em 30/06/2004 - 09:22h

Olha, achei legal o seu tutorial, só acho que dava prah detalhar um pouco mais. Ae ia ficar nota 10... mas do geito que está vale um 8,5 dá prah ter uma boa noção de delay pools soh com o que vc escreveu.

[6] Comentário enviado por flipe em 30/06/2004 - 12:40h

da idéia ai no q detalhar para q no próximo eu possa melhorar.....!!

e valeu pelos comentarios...!!

:)

[7] Comentário enviado por juarysantos em 24/03/2005 - 00:30h

Teria como fazer o controle do squid(controle de banda) remotamente? ou seja, controle web(ex: através de php) dele?

[8] Comentário enviado por flipe em 24/03/2005 - 00:58h

tu teria que ter uma ferramenta que faça isso, eu(felizmente) sou um fã de terminal e editor de texto!!!

da uma olhada ai... quem sabi acha algu!!....

http://freshmeat.net/search/?q=squid§ion=projects&Go.x=0&Go.y=0

falo!!!

[9] Comentário enviado por thomaz.victor em 16/01/2006 - 16:15h

Como saber o quanto eu devo limitar de trafego na rede.....
eu tenho uma conexão de 500k com o speed....
eh uso de escritorio.... nada de mais....
mas sao varios micros....
gostaria de saber se existe alguma matematica....pois acabei de implantar o squid aqui e a internet ja deu uma melhorada....
valeu....

[10] Comentário enviado por flipe em 16/01/2006 - 17:46h

por byte, tipo.... se tu quer limitar a 1k tu adiciona na regra 1024!

eu faço assim e funfa blz!

falo!

[11] Comentário enviado por daniel_rg em 14/02/2006 - 19:32h

filipe
Valeu pelo tutorial, rápido e prático...
Mas parece que contém um erro: as acls "palavras" e "extensões" não deveriam ser sinônimos ?!

---

carlos.ninho...

cara, acho que você entendeu errado. O "delay pools" serve SOMENTE para controlar a banda.

Explicando como funciona o recebimento de uma página que está no servidor A, pelo cliente B:

1."A" envia um pacote com dados e um número sequencial
2."B" recebe este pacote e reenvia apenas o número sequencial (esta etapa é conhecida como "acknowledgement")
3.Ao receber o "acknowledgement", "A" envia o próximo pacote. Se "A" não receber o pacote em tempo hábil (RTT), então "A" presume que o pacote foi perdido e reenvia.
...

Perceba que o servidor só envia o próximo pacote ao receber a confirmação que o primeiro foi recebido.
Aliás, esta é uma das principais diferenças entre TCP e UDP: o TCP garante que o pacote foi recebido, embora seja "mais lento".

Quanto mais tempo demorar para enviar a confirmação, menos pacotes por segundo o servidor irá enviar, o que nós leva a uma forma eficiente de controlar a largura da banda.

Assim, sua dedução não foi totalmente errada: ele realmente serve para atrasar os pacotes. Mas esta é a lógica por trás de qualquer "estrangulador de banda".

Ou seja, pode usar sem medo que é EXTREMAMENTE útil....

Eu mesmo uso para garantir uma banda mínima para o setor de TI (no qual eu me incluo :)), outra para garantir alta velocidade no acesso de páginas essenciais (bancos, .gov, etc.), e outra para que o resto do pessoal não fiquem se degladiando entre si.


Abração...

[12] Comentário enviado por malacker em 20/02/2006 - 09:02h

Já utilizei também estas delay_pools no squid, mas tive problemas. Na verdade o squid não faz um controle de banda. Ele faz pausas na conexão de acordo com o tempo (delay) que você escolheu e estas pausas acabam por danificar alguns arquivos em cache. Quando os demais usuários baixarem o arquivo que já está em cache, não consegirão instalar, ou virá com problemas. Para verificar como o squid trabalha, instale numa máquina XP (infelizmente) o programa MyVitalAgent.exe e faça um download controlado pelas delay_pools. Veja que ele causa um atraso devido as pausas na conexão. Depois experimente fazer um download sem passar pelas delay_pools e veja a diferença.
Não sei se você terá este problema, mas no meu caso, tive até que limpar os caches do squid para baixar um programa que funcionasse corretamente, afinal o cache ainda era do "squid quebrado".
Resolvi então fazer controle de banda apenas com cbq e pronto.

Flw!!!

[13] Comentário enviado por pcnmota em 16/03/2006 - 10:30h

Bom artigo, parabens!

[14] Comentário enviado por rodrigobassani em 28/07/2006 - 21:54h

Bom artigo para iniciantes, bem simples!

[15] Comentário enviado por interconections em 17/11/2008 - 12:17h

Ola amigo tenho um mikrotik com proxy em paralelo em um debian rodando o squid logicamente, e qria q esse servidor fizesse cache dos vidos do youtube, teria como vc postar essas regras pra mim adiconar no squid.conf?????

[16] Comentário enviado por laser.net em 09/02/2009 - 01:00h

Amigos uma duvida, tenho 15 makinas na rede, quero que 14 delas passem por esta regra e a 15ª não, como deverei fazer nesta regra?
Obrigado!

[17] Comentário enviado por thiagosc em 26/08/2009 - 18:25h

Ola amigo, como usaria se quisesse limitar a banda para apenas um ip dentro de minha rede?

[18] Comentário enviado por psfdeveloper em 27/03/2011 - 04:25h

Excelente artigo.

[19] Comentário enviado por arianevsf em 13/11/2011 - 13:09h

Material muito bom ...
So fiquei com uma duvida, acho que simples.

Como faria o limite de banda pra toda rede execeto pra duas maquinas especificas?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts