Squid - Implementando controle de banda

Publicado por Kleber Pardal em 13/04/2005

[ Hits: 83.205 ]

 


Squid - Implementando controle de banda



Com o recurso de limite de banda no Squid você pode priorizar a banda para certo grupo de usuários. Dessa forma não corremos o risco de um diretor da empresa estar necessitando baixar um email importantíssimo pelo link, enquanto um estagiário puxa o último episódio de sua mini-série favorita.

Edite o arquivo de configuração do Squid (squid.conf) e adicione as seguintes linhas:

# Crie uma acl com as extensões que serão aplicadas o filtro
acl download url_regex -i ftp .mov .mpeg .wav .tar .mp3 .exe .zip .rar

# Crie outra acl com os IPs que serão aplicados à regra
acl chefes src 192.168.0.22
acl estagiario src 192.168.0.30

delay_pools 2
# Significa que teremos dois controles de banda

# Primeiro controle
delay_class 1 2

# -1/-1 significa que não teremos limites para a delay pool 1
delay_parameters 1 -1/-1 -1/-1
delay_access 1 allow chefes

# Segundo controle
delay_class 2 2

# Limita a sua banda para +- 64Kbits
delay_parameters 2 3000/3000 3000/3000
delay_access 2 allow estagiario

Se você não quer que a pessoa faça download da net é só trocar:

delay_parameters 2 3000/3000 3000/3000

Por:

delay_parameters 2 0/0 0/0
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Velox no Debian

Abrindo várias instâncias do Firefox simultaneamente

Para os fãs de cinema...

Abrindo em nova aba do Firefox, se existir

ADSL da Net no FreeBSD 5.4

  

Comentários
[1] Comentário enviado por jeffestanislau em 13/04/2005 - 11:00h

Boa,
Ficou bem simples a explicação!

[2] Comentário enviado por kleberpardal em 18/04/2005 - 10:57h

Obrigado jeffestanislau. Coloquei esse recurso aki na empresa e funcionou bem, Você pode fazer tambem um arquivo txt com as extenções que deseja limitar o download

[3] Comentário enviado por mgoncalves em 09/05/2005 - 17:58h

Amigos,
Vi o tutorial para controle de banda e pretendo testar aqui na empresa. uma duvida, é possivel controlar tambem a banda para programas do tipo Skype ou MSN?

Obrigado
Mauro Goncalves

[4] Comentário enviado por micato em 06/04/2006 - 16:34h

Amigo e se eu precisar limitar a banda para uma faixa de IP´s, como proceder ?

[5] Comentário enviado por kleberpardal em 04/07/2007 - 13:45h

Mauro,
No caso do Skype e Msn acho dificil o controle de velocidade. Para um controle mais profundo é necessário uma aplicação de sock's para tais.

[6] Comentário enviado por kleberpardal em 04/07/2007 - 13:49h

Micato,
Pode-se usar:
acl chefes src 192.168.0.10-192.168.0.20/24

[7] Comentário enviado por marcusaugustolim em 09/07/2007 - 12:06h

cara, gostei ficou muito claro pra mim.... muito bom mesmo me ajudou legal... valeu...

[8] Comentário enviado por marceloespindola em 12/07/2007 - 00:29h

Depois de instalar o cbq é bom ter uma ferramenta de teste eu tenho um velocimetro em flash com os arquivos fontes abertos no seguinte endereço: http://marcelolinux.blogspot.com/2007/07/tenha-seu-prprio-velocmetro-em-flash.html

[9] Comentário enviado por kaiomix em 18/07/2007 - 03:52h

amigo!! apliquei os comandos no meu squid.conf e não rodou!!! eu poderia te mandar meu squid.conf em txt para vc ver o q eu estou errando??? ai está

http_port 192.168.100.1:3128

acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY

cache_mem 120 MB
cache_swap_low 90
cache_swap_high 95

maximum_object_size 10024 KB
minimum_object_size 1 KB
maximum_object_size_in_memory 128 KB

ipcache_size 1024
ipcache_low 90
ipcache_high 95

cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF

digest_rebuild_period 30 minutes
digest_rewrite_period 30 minutes

cache_dir ufs /usr/squid/cache/squid1 1000 64 256
cache_dir ufs /usr/squid/cache/squid2 1000 64 256
cache_dir ufs /usr/squid/cache/squid3 1000 64 256
cache_dir ufs /usr/squid/cache/squid4 1000 64 256

cache_access_log /usr/squid/logs/access_log
cache_log none
cache_store_log none

emulate_httpd_log off
pid_filename /usr/squid/logs/squid.pid
visible_hostname Servidor Linux
cache_mgr root@server.local
cache_effective_user nobody
cache_effective_group nobody

dns_nameservers 192.168.100.1

acl html rep_mime_type text/html
reply_body_max_size 0 allow html

acl all src 0.0.0.0/0.0.0.0
acl rede src 192.168.100.0/255.255.255.0
acl master src 192.168.100.222

acl SSL_ports port 443
acl Safe_ports port 80 # Web Normal
acl Safe_ports port 443 #Conexoes ssl
acl CONNECT method CONNECT
acl GET method GET

acl navegacao urlpath_regex -i \.htm$ \.html$ \.php \.cgi \.pl \.asp \.cf$
acl imagem urlpath_regex -i \.jpeg$ \.jpg$ \.png$ \.gif$
acl velocimetro urlpath_regex /velocimetro/

acl mime_navegacao req_mime_type text/html
acl mime_imagem req_mime_type image

delay_initial_bucket_level 10
delay_pools 2
delay_class 1 2
delay_access 1 allow all navegacao mime_navegacao
delay_access 1 allow all velocimetro navegacao
delay_access 1 allow all imagem mime_imagem
delay_access 1 allow master
delay_parameters 1 -1/-1 70000/70000

delay_class 2 2
delay_access 2 allow all
delay_parameters 2 -1/-1 30000/30000

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow rede
http_access deny all
icp_access allow rede
http_access deny all
icp_access allow rede
icp_access allow master

httpd_accel_host virtual

httpd_accel_port 80

httpd_accel_with_proxy of
httpd_accel_uses_host_header on


acl download url_regex -i ftp .mov .mpeg .wav .tar .mp3 .exe .zip .rar

acl chefes src 192.168.100.40
acl estagiario src 192.168.100.4

delay_pools 2

delay_class 1 2

delay_parameters 1 -1/-1 -1/-1
lelay_access 1 allow chefes

delay_class 2 2

delay_parameters 2 3000/3000 3000/3000
delay_access 2 allow estagiario

[10] Comentário enviado por pontozip em 08/08/2007 - 18:50h

Qual o calculo pra chegar nos 3000 e saber que equivalem a +/- 64Kbps ??

Ats.
Rodrigo.
Curitiba/Pr.

[11] Comentário enviado por joaovitorlinux em 21/09/2007 - 09:30h

Gostaria de saber tambem como voce calculou os 64Kbps que equivale aos 3000 ?
Porque nos calculos normais de velocidade os 64Kbps daria 8192bits.

[12] Comentário enviado por tuxjr em 29/10/2007 - 13:42h

Ainda existem algum respondendo aqui? Estou precisando de uma orientação. Aqui no nosso exemplo é criado duas redes, qria colocar 3 como faço?
Pela lógica, seria add uma nova configuração além de adcionar uma nova ACL certo? mas já fiz e dá erro fatal.
Alguém pode ajudar?

[13] Comentário enviado por thiagosc em 10/07/2009 - 15:29h

Olá amigo,

Tenho a seguinte situação:
Os usuários que utilizam a internet aqui na empresa necessitam de autenticação, porém gostaria de fazer uma limitação de banda (qos) para um determinado usuário é possível?

[]´s

Thiago

[14] Comentário enviado por pingolin em 13/12/2009 - 20:09h

É complicado, os caras copiam essas dicas de outros sites, a gente vai testar, não funciona, pede ajuda e ninguem aparece pra responde. Foda msm!!!

[15] Comentário enviado por linux_roger em 10/03/2010 - 10:57h

ai ficou legal, e super esplicado como eu estava procurando....

só queria saber como faço para calcular a velocidade já que 3000 = +-64 como faso para calcular 128 ou 256????

[16] Comentário enviado por rickps em 22/04/2010 - 15:50h

Achei aqui mesmo no VOL acho que já ajuda !

# 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.

[17] Comentário enviado por leco2612 em 14/12/2010 - 16:58h

se eu quiser liberar mais de um Ip como faço abraços

[18] Comentário enviado por bonner em 20/11/2011 - 17:24h

Amigo, como implementaria esta regra para grupos e não para IPs?
Tenho um squid.conf montado com dois grupos, sendo um deles Administradores e o outro FUNCIONARIOS.
Porém, gostaria que o grupo funcionários tivesse 30% do uso de banda para downloads e o grupo Administradores tivessem 70% do uso da banda também para downloads.

Poderia me ajudar nesta implementação? Segue meu squid.conf:

################### Squid.conf ######################
############# Escrito por Pedro Oliveira ##################

http_port 3128
visible_hostname proxy.squid.com.br

cache_mem 512 MB
maximum_object_size_in_memory 512 KB
maximum_object_size 4096 KB
minimum_object_size 4 KB
cache_swap_low 80
cache_swap_high 85
cache_dir ufs /var/cache/squid 4096 16 256
cache_access_log /var/log/squid/access.log
dns_nameservers 8.8.8.8 8.8.4.4
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # whois
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl Safe_ports port 901 # swat
acl Safe_ports port 1025-65535 # portas altas
acl purge method PURGE
acl CONNECT method CONNECT

# Autenticação
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/grupos/userpass
auth_param basic realm Digite login e senha:
auth_param basic children 5
auth_param basic credentialsttl 2 hours
acl userpass proxy_auth REQUIRED

# Grupo de usuarios Admin (acesso full)
acl admin proxy_auth "/etc/squid/grupos/admin"

# Grupo de usuarios Funcionarios (controlados)
acl funcionarios proxy_auth "/etc/squid/grupos/funcionarios"

# Permissoes
# Liberando expressao ou parte da url que estejam apresentando problemas de acesso
acl sites-liberados dstdom_regex -i "/etc/squid/acls/sites-liberados"
acl msn url_regex -i "/etc/squid/acls/msn"

# Bloqueios
# Bloqueando expressão da url ou textos proibidos
acl sites-bloqueados dstdom_regex -i "/etc/squid/acls/sites-bloqueados"

# Bloqueando arquivos por extensoes
acl extensoes-bloqueadas url_regex "/etc/squid/acls/extensoes-bloqueadas"
# Diretório com os links de erros
error_directory /usr/share/squid/errors/Portuguese

# Minha rede local
acl minharede src 192.168.1.0/24

# Nega tudo e libera somente para os usuarios master
http_access deny sites-bloqueados extensoes-bloqueadas !admin !sites-liberados !msn
http_access deny manager
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

# Acesso liberado para os usuarios masters e sites problematicos
http_access allow admin
http_access allow sites-liberados
http_access allow msn

# Acesso liberado para o grupo funcionarios exceto os bloqueios
http_access allow funcionarios !sites-bloqueados !extensoes-bloqueadas

# Nega todo o resto da rede
http_access deny all

http_access allow minharede
icp_access allow all
miss_access allow all
cache_effective_user squid
cache_effective_group squid

[19] Comentário enviado por bonner em 21/11/2011 - 14:56h

É complicado... O pessoal posta o conteúdo e não dá suporte ou ajuda os demais no comentário.. É completamente chato!
Diferente da maioria dos posts que o pessoal ajuda com feedbacks positivos... Este post podem considerar como MORTO pois não existe mais colaborador para ele.

Abs.

[20] Comentário enviado por amdmlm em 12/12/2011 - 12:21h

Muito bem explicado o post, mas faltou voce aplicar os filtros
delay_access 1 allow chefes download
delay_access 1 allow estagiario download

caso contrário a acl download de nada servirá.

[21] Comentário enviado por salomao12 em 28/11/2013 - 10:22h

Bom dia.

Parabéns pelo post e pelas contribuições nos comentários.

Estou começando a usar o delay_pools agora e como eu faço pra liberar banda a uma lista de IP fixa. e controlar banda para todo o restante da rede que é DHCP?



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts