segunda-feira, 9 de fevereiro de 2009

Squid - parte 06


Controle de banda


O squid oferece uam forma simples de gerenciar a banda disponível e definir o quanto cada usuário pode usar ( mantendo parte do link livre para os demais ), utilizando um recurso chamado “delay pools”. Imagine um link de 2 megabits para uma rede de 20 usuários. Se cada um puder ficar baixando o que quiser, é provável que a rede fique saturada em determinados horários, deixando a navegação lenta para todos usuários.


Pode-se evitar isso, limitando o uso da banda. É recomendado que o proxy (que combina todos os acessos via http) consuma um pouco menos do que a banda total, deixando uma parte para outros protocolos.


Um link de 2 mega (2048 kbits) corresponde a 262144 byes por segundo. Nas regras do squid, sempre usamos bytes por isso sempre temos que fazer a conversão.


Entendo a conversão


2 megabit são quantos bytes por segundo?


2048 k bits / s


2 megabit = 2048 kbits


agora em bytes


2 x 1024 = 2048 / 8 = 256 kbytes


Porque eu divido por 8?


Porque 1 byte = 8 bits


Mas eu quero em bytes...


256 kilobytes = 256 x 1024 bytes = 262144 bytes por segundo


O SQUID trabalha com bytes!!!


Como ficaria o cálculo para 3 megabits???


3 megabits = 3 x 1024 = 3072 / 8 = 384 kbytes x 1024 = 393216 bytes por segundo


Podemos então limitar a banda utilizada pelo squid em 229376



acl localhost src 127.0.0.1/255.255.255.255

acl rede_interna src 192.168.0.0/24


delay_pools 1

delay_class 1 2

delay_parameters 1 229376/229376 32768/32768

delay_access 1 allow rede_interna


http_access allow localhost

http_access allow rede_interna

http_access deny all


Eu reservei 229376 bytes por segundo para o Squid


Eu reservei 32768 bytes por segundo para outros protocolos


87% para o squid

13% para outros protocolos


A acl rede_interna está agora condicionada o três novas regras, que aplicam o uso do limite de banda. O acesso continua sendo permitido, mas agora dentro das condições especificadas na linha “delay_parameters 1 229376/229376 32768/32768”, onde vão os valores com a banda total disponível para o squid, e a banda disponível para cada usuário.


Observe que a regra só é aplicada a rede_interna atuando somente nas estações e não ao localhost (127.0.0.1) podendo assim fazer download na velocidade máxima permitida pelo link, quando acessado pelo servidor.


É possível também criar regras de exceção para determinados endereços, essas acl's não passarão pelo filtro de banda. Neste caso criamo uma acl com os endereços desejados.


acl localhost src 127.0.0.1/255.255.255.255


acl diretoria src 192.168.0.2

http_access allow diretoria


acl rede_interna src 192.168.0.0/24


delay_pools 1

delay_class 1 2

delay_parameters 1 229376/229376 32768/32768

delay_access 1 allow rede_interna


http_access allow localhost

http_access allow rede_interna

http_access deny all


Essa regras vale para as demais configurações vista acima, basta colocar a regras antes de qualquer acl,


acl diretoria src 192.168.0.2

http_access allow diretoria


Finalizando


# squid -k parse

# squid -k reconfigure


Obs: Evite usar “#/etc/init.d/squid restart” em ambientes em produção, pois ele força um reinício completo do squid, onde p proxy precisa finalizar todas as conexões abertas, finalizar todos os processos de desativar o cache, para só então ler a configuração e recarregar todos os componentes novamente. Isso faz com que o proxy fique um tempo sem responder as conexões, fazendo qom que o acesso fique fora do ar.


Obrigado pela atenção de todos, sugestões serão sempre bem vindas.


Até o próximo material


Squid - parte 05


Auditando os acessos com o SARG


O SARG Squid Analysis Report Generator é uma ferramenta desenvolvida pelo brasileiro Pedro Lineu Orso, cujo objetivo é analisar o arquivo /var/squid/log/access.log e gerar um relatório de acesso baseado no conteúdo acessado pelos usuários.


Sua instalação é bem simples, bastando apenas, no Debian, executar um aptitude:


# aptitude install sarg


Vamos observar seu arquivo de configuração. Fique a vontade e leia alguns comentários para entende as funções do SARG.


# vi /etc/squid/sarg.conf


Configure o arquivo como de acordo com sua preferencia. Aqui podemos editar as fontes, nome do arquivo gerado.

Exemplo de algumas sessoes do arquivo


# linguage exibida

language Portuguese


# titulo do relatório

title "Squid User Access Reports"


# nome do arquivo e saida

output_dir /var/www/squid


Saia do arquivo e execute o sarg:


# sarg


http://192.168.0.3/squid/


O sarg pode ser configurado no crontab para ser executado varias vezes ao dias, analisando assim o log de acessos do Squid.