Considerando que até o presente momento não encontrei na internet explicações ou regras eficientes para fazer cache full (Squid) com CBQ, e também considerando que há muita procura sobre o assunto, resolvi abordar o tema aqui objetivando facilitar a vida de muita gente que necessita desta informação.
Implementando regras no iptables
Na verdade é o iptables quem vai fazer com que o cache do Squid seja entregue ao cliente na velocidade determinada na regra de CBQ. Obviamente não faremos nenhuma modificação nas configurações do Squid.
1) O primeiro comando do iptables verifica se o pacote contém o cabeçalho "X-Cache: HIT", ou seja, se está no cache. Caso verdadeiro, marca o pacote com um número decimal qualquer, eu escolhi o número 6.
2) O terceiro comando do iptables encaminha para a classe ID 9 do CBQ caso o pacote esteja marcado com o número 6. Lembrando que a classe (ID 9) foi definida anteriormente através do nome do arquivo (cbq-0009.Cache-Full).
Criando as regras de CBQ
Primeiramente devemos criar um arquivo contendo as regras de CBQ para efetivar o cache full. No Fedora 7, os arquivos contendo as regras ficam em /etc/sysconfig/cbq.
O nome do arquivo deve obedecer ao seguinte formato "cbq-." Onde é representado por 2 bytes em hexadecimal, cujo intervalo vai de 0002 a FFFF, que na verdade determinará a classe ID do CBQ e pode ser atribuído qualquer palavra, de preferência algo que identifique a regra.
Agora vamos entender:
1) DEVICE -> interface interna (eth1), velocidade real da interface (100Mbit), parâmetro que deve ser proporcional à velocidade da interface (/10).
2) RATE -> Definimos a velocidade em que será entregue o cache do Squid ao cliente (10Mbit).
3) WEIGHT -> Parâmetro que deve ser proporcional à velocidade RATE (/10).
4) PRIO -> Prioridade do tráfego da classe.
Neste arquivo não definiremos o parâmetro RULE porque a classe servirá para qualquer IP ou sub-rede.
Considerações finais
Considerando que estas regras de iptables exigem esforço do processador, não recomendo sua aplicação para quem tem inúmeros clientes requisitando conexões ao Squid.
Estou utilizando estas regras desde o início deste mês (julho/2008) numa máquina k6-III 400Mhz (Fedora 7 - squid 2.6.STABLE16 transparent) com 9 clientes e esta é a minha média (CPU load average 0.24).
Espero ter contribuído e desejo boa sorte àqueles que desejam fazer cache full com CBQ.
[2] Comentário enviado por marcianovc em 26/07/2008 - 17:15h
amigo, como aplico isso ae nesse tuto aq http://www.guiadohardware.net/dicas/servidor-linux-provedor-wireless.html
estou usando um servidor com a configuracao do tuto ae, mas entre a rede local a velocidade ainda ta sendo controlada, onde q eu coloco estes comandos ae q vc falo ?, desde ja obrigado...
[8] Comentário enviado por fenix_chikinho em 08/11/2008 - 00:37h
Amigo muito obrigado pela a dica, fiz aqui conforme suas explicações, porem adaptei para as regras tc do iproute,
depois de um tempo parau de funcionar, dai fiz utilizando o CBQ, e acontece a mesma coisa, quando faço donwload pelo o firefox alguns arquivos baixam na velocidade full, mas pelo internet explore ou por algum aceledor de donwload, na funfa mesmo.
minha duvida é esseas regras para marcar os pocotes, eu coloco em meu firewall antes ou depois da regras que faz o direcionamento para o prox transparente.
muito obridado t+
[9] Comentário enviado por daniel.uramg em 06/04/2009 - 11:43h
Meus Squdi funciona da seguinte forma:
Minha rede tem +- 20 maquinas, onde 3 sao minhas, que uso IP fixo que tem acesso liberado
todas as demais atribuidas por DHCP tem limite de banda a +- 600k, com Delay_pools.
Meu servidor roda o Kurumin 7 com Squid 2.6 Stables, e proxy transparente.
Eu preciso que o squid NÃO limite a banda dos arquivos que já estão em cache, é exatamente isso que explica neste tutorial né?
Só que não uso CBQ! Somente o Squid com delay pools, e o firewall do Kurumin.
Po0dem ver que não intendo quase p$% nenhuma de Linux, estou aprendendo agora na marra apenas estudando os tutoriais.
[10] Comentário enviado por evaniobs em 08/08/2009 - 00:38h
Seguir todos os passos mas o meu controle de tráfego parou de funcionar será que o arquivo do CBQ que eu fiz não pode ficar com o final .in Agluém ai pode ajudar?