_____________________________________________________________________
Interferência do Squid no funcionamento do QOS.
Quando se usa o squid e o qos ao mesmo tempo, o controle da velocidade do upload não funciona, os usuários conseguem fazer upload a toda velocidade. Entretanto, o controle do download funciona, mesmo quando os arquivos já estão no cache.
Porque isso acontece?
1 - O nosso QOS só é capaz de controlar o tráfego que é ENVIADO por uma determinada placa de rede.
3 - O download é controlado pelo tráfego que é enviado na placa INTERNA. Todo que SAI do linux pela placa interna (destinado aos usuários) é considerado download.
4 - Sem o squid, o trafego entre essas duas placas é praticamente um-pra-um, tudo que entra de um lado, sai do outro, e vice-versa.
5 - O squid funciona exatamente NO MEIO das duas placas, interferindo na comunicacao normal que o linux faria entre elas.
Sem o squid:
Com o squid:
Quando você usa o squid, todo o tráfego do http pertence ao próprio squid. E o squid usa o ip do proprio Linux (onde ele está instalado).
E como se o Linux estivesse fazendo todos os downloads e uploads do http sozinho, sem os usuários da lan.
Assim o linux NÃO SABE a qual usuário pertence um determinado tráfego, passa a ser TUDO do Squid. Principalmente porque o squid pode guardar esses dados no cache e pode entregá-lo para mais de um usuário interno. (afinal, essa é a razão do squid existir).
Mas então, porque o download é limitado?
Quando o squid envia dados para um cliente que está na LAN, o qos detecta um trafego de saida na placa de rede interna e ele tem como saber para qual ip interno esses pacotes serão entregues. Dessa forma, o tráfego é enquadrado em uma classe e a velocidade é limitada de acordo com a banda estabelecida para essa classe. MESMO QUE ESSES DADOS ESTEJAM VINDO DO CACHE.
Na verdade, o linux não sabe se o squid pegou o dado no cache, ou foi buscar na internet. Como o qos atua na saida da placa interna, tudo que passar por alí será limitado, independente de onde veio. "
No caso o texto generaliza qualquer QOS.
_______________________________________________________________________
GERENCIAMENTO NO CONTROLE DE BANDA – HTB-Tools
ATENÇÃO: O PACOTE DO HTB-TOOLS E O ARQUIVO BITOPS.H ENCONTRAM-SE ANEXADOS.
1. INTRODUÇÃO
2. O QUE É HTB?
O HTB (Hierarchical Token Bucket) é um recurso nativo do kernel GNU/Linux utilizado no controle do tráfego de um link físico de acesso a Internet em uma rede de computadores.
3. OS PRÉ-REQUISITOS PARA USAR O HTB E HTB-TOOLS NO FEDORA 9
A distribuição FEDORA 9 com o kernel Linux versão 2.6.18 ou superior deve estar corretamente instalada porque os módulos do HTB já estarão inclusos no kernel.
4. A INSTALAÇÃO DO HTB E DO HTB-TOOLS NO FEDORA 9
Confirmado que o seu kernel é pertencente a versão 2.6.18 ou superior, iremos agora começar todo o procedimento para a instalação e configuração do HTB-Tools.
1º passo
Realizar a instalação dos pacotes os quais o HTB Tools possui dependência. Os pacotes são: Make, Flex, Gcc e o Dialog. Em seu terminal, digite o seguinte comando, sendo usuário root:
[root@servidor] yum install make flex gcc dialog
2º passo
Agora iremos levantar o seguintes módulos necessários. Em seu terminal, digite o seguinte comando, sendo usuário root:
[root@servidor] modprobe sch_htb
[root@servidor]modprobe sch_sfq
[root@servidor]modprobe cls_u32
3º passo
Crie o diretório man8 (na instalação será copiado um arquivo de manual para esta
pasta). E caso não seja criado, apresentará erro na instalação do pacote HTB-Tools.
[root@servidor] mkdir /usr/local/man/man8
4º passo
Agora, realize o download do arquivo htb_tools-0.3.0a.tar.gz. Feito o download, descompactamos o pacote:
[root@servidor] tar –zxvf htb_tools-0.3.0a.tar.gz
Entre no diretório HTB-TOOLS-0.3.0a.
[root@servidor] cd HTB-TOOLS-0.3.0a
Dentro do diretório HTB-TOOLS-0.3.0a, crie um diretório dentro do subdiretório /include. O diretório criado terá o nome de asm (/include/asm):
[root@servidor] mkdir /include/asm
Após criar o diretório /include/asm, copie o arquivo bitops.h (o arquivo está disponibilizado junto com o artigo) para dentro dele.
Feito isto, o HTB-Tools já se encontra todo configurado e pronto para a sua instalação.
Volte para a raiz do diretório HTB-TOOLS-0.3.a e execute os seguintes comandos:
[root@servidor /HTB-TOOLS-0.3.0a] make && make full
Isto irá instalar os binários q_parser, q_show, q_checkcfg, htb, htbgen no diretório
/sbin , o script rc.htb irá para o diretório de scripts que for indicado, os dois arquivos de
configuração padrão eth0-qos.cfg para upload and eth1-qos.cfg para download irão
para a pasta /etc/htb e também instalará o q_show.php e o gerador de configurações
wHTB-tools.
Pronto, o HTB-TOOLS está funcionando em conjunto com o HTB.
5. CONFIGURANDO O HTB-TOOLS NO FEDORA 9
É bastante trivial a configuração do HTB-Tools. Imaginando que o tráfego da rede interna tenha que passar da interface de rede eth0 (placa onde está sua rede interna, isto é, conectada no swicth) para sair pela eth1 (placa rede conectada com o roteador), então, basta alterar o eth0-qos.cfg padrão (isto para o eth0, é claro) conforme a necessidade da rede. Digamos que se deseja que o tráfego da rede de uma empresa 192.168.1.0/24 (rede_1) tenha exclusividade de 512Kbps no máximo e 480Kbps garantidos nos dias de pico. Sabendo que a banda máxima que a rede pode atingir é de 5Mbps, então, o arquivo eth0-qos.cfg ficaria assim:
class Rede_Empresa {
bandwidth 5000;
limit 5000;
burst 0;
priority 1;
client rede_1 {
bandwidth 480;
limit 512;
burst 0;
priority 1;
dst {
192.168.1.0/24;
};
};
client rede_geral {
bandwidth 8;
limit 5000;
burst 0;
priority 2;
dst {
0.0.0.0/24;
};
};
};
class default {
bandwidth 8;
};
Um diferencial que o HTB possui em relação as demais ferramentas de controle de tráfego é que você pode determinar qual a banda mínima garantida que o usuário irá ter e qual o limite máximo que ele usará caso haja disponibilidade no link. Feito esta configuração, basta executar o seguinte comando para que as regras de controle de banda entrem em vigor:
[root@servidor] htb eth0 start
Está feito o controle de banda desta empresa, dando exclusividade de 512Kbps para a rede 1, assim também, limitando a banda da rede para 4520Kbps. Entende-se que, tudo o que não estiver declarado como a rede_1, faz parte da classe default e não da classe Rede_Empresa. Há outras variantes para a configuração do HTB-TOOLS. No caso acima citado, fizemos o controle do download (dst = destination). Para controlar o upload utiliza-se src (source) no lugar do dst. Pode ser usado o IP de um host, no lugar de usar o IP da rede, apenas citando o ip seguido da máscara. (Ex.: 192.168.1.35/24
Se quiser controlar uma porta específica, basta incluir o número da porta logo após o IP da rede/host. (Ex.ara a porta 80 ==> 192.168.1.0/24 80). Outros controles que podem ser usado na administração usando o HTB com HTBTOOLS é:
# htb
ou
# htb { help | version }
Onde:
interface - a interface de rede que você deseja controlar
start - aplica as propriedades do arquivo de configuração na interface
stop - apaga as regras aplicadas a interface específica
stats - mostra, em tempo real, a estatística de tráfego para a interface
generate - apenas cria o script para aplicar as regras
help - mostra algumas informações úteis
version - mostra a versão e informações de direitos autorais
AGORA O MELHOR DE TODOS, VOCÊ PODE SIMPLIFICAR TUDO ISSO, UTILIZANDO A INTERFACE GRÁFICA DO HTB-TOOLS. VÁ NO DIRETÓRIO DO HTB-TOOLS.
[root@servidor] cd HTB-TOOLS-0.3.0a
Agora basta digitar:
[root@servidor] ./setup
Arquivos: bitops
Htb_Tools
_____________________________________________________________________
Outros Exemplos de Configurações
###############
# eth1-qos.cfg #
################
# for how to configure and use see docs/HowTo/
class REDE_Interna {
bandwidth 256; (VELOCIDADE MINIMA GARANTIDA PARA O CLIENTE DESTA INTERFACE)
limit 333; (VELOCIDADE MAXIMA DO LINK)
burst 2;
priority 1;
client ALAN { (o nome client e obrigatorio sem espaços)
bandwidth 25; (VELOCIDADE MINIMA GARANTIDA DO CLIENTE)
limit 256; (VELOCIDADE MAXIMA DO CLIENTE)
burst 2;
priority 4; (PRIORIDADE DA BANDA PARA O CLIENTE)
upload 75; (VELOCIDADE DO UPLOAD DO CLIENTE)
dst {
192.168.0.2/24; (IP DO CLIENTE / OU REDE)
};
};
};
class default { bandwidth 8; };
Nenhum comentário:
Postar um comentário