Controlando UPLOAD com o CBQ

Amigos, não é um assunto novo, mas como eu tive muita dificuldade em fazer funcionar o UPLOAD usando o CBQ, resolvi então escrever este pequeno artigo, pois pode ser dúvida também de alguém na comunidade.

[ Hits: 29.358 ]

Por: Paulo Cesar em 04/06/2006


Colocando pra rodar



Inicialize o CBQ:

# /sbin/script_cbq.sh start

Inicialize a regra do MANGLE:

copie o arquivo mangle para /etc (cp /etc/cbq/mangle /etc/) e dê permissão de execução a ele:

# chmod +x mangle

Edite-o e acrescente na primeira linha "#/bin/bash". Na segunda linha o comando pra levantar o suporte do kernel ao mangle, "modprobe iptable_mangle".

Exemplo de como ele ficaria:

#!/bin/bash
modprobe iptable_mangle
iptables -t mangle -A FORWARD -s 192.168.10.6 -j MARK --set-mark 3
iptables -t mangle -A FORWARD -s 192.168.10.6 -j ACCEPT
iptables -t mangle -A FORWARD -d 192.168.10.6 -j MARK --set-mark 3
iptables -t mangle -A FORWARD -d 192.168.10.6 -j ACCEPT

Agora execute o mangle:

# /etc/mangle

Se desejar, pode verificar as regras levantadas na CHAIN mangle:

# iptables -t mangle -L

Para limpar as regras basta digitar:

# iptables -t mangle -F

Agora acrescente no seu rc.local uma entrada para levantar o CBQ e o mangle quando a máquina for reiniciada. Exemplo:

# vi /etc/rc.d/rc.local

# levantando o cbq
/sbin/script_cbq.sh start

# levantando o mangle
/etc/mangle

Monitore o acesso agora de sua rede e veja como ficou.

Página anterior     Próxima página

Páginas do artigo
   1. Criando os arquivos
   2. Colocando pra rodar
   3. Agradecimentos
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

O Modelo de Referência OSI

Tutorial - Aplicação em C para transferência de arquivo usando socket TCP e Thread

BSD Sockets em linguagem C

Monitorando o consumo de banda com Bwbar

DotGNU: a resposta Open Source ao dotNET

  
Comentários
[1] Comentário enviado por gilps em 04/06/2006 - 16:46h

Muito 10!
Éra o q faltava para min o download ja estava funcionando legal! Só faltava o up!...
Sera q vocês tem alguma dica para min, para o cbq não limitar o cache do squid?
Meus parabens, otimo artigo....
Ats.

[2] Comentário enviado por removido em 04/06/2006 - 20:29h

Mais original que isto é impossível!!!!
Parabéns!

[3] Comentário enviado por rebinat em 05/06/2006 - 08:57h

tenho o mesmo problema do gilps...

sera que tem solução?????

Muito bom o artigo...

Parabéns

[4] Comentário enviado por islanrocha em 05/06/2006 - 16:55h

Parabéns PC!!!
Boa Sorte nos próximos tutos que vc fizer!!!hehehehe

[5] Comentário enviado por lacierdias em 05/06/2006 - 23:17h

Amigo desculpe mais não precisa de nada disso para contolar o upload.

Até pq o mark está apenas nas regras de UP e não de down então vc não precisa usar regras de iptables de entrada e de saida.

Basta apenas usar a opção mark no cbq e depois o iptables ficando assim:
NO CBQ:
cbq-0002.estacao9-out

DEVICE=eth0,100Mbit,10Mbit
RATE=120Kbit
WEIGHT=12Kbit
PRIO=5
RULE=192.168.1.10/32,
BOUNDED=yes
ISOLATED=yes
MARK=10

No Firewall:
iptables -A PREROUTING -t mangle -i eth0 -s 192.168.1.10 -j MARK --set-mark 10

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1016

Leia este artigo e as respostas das perguntas.

Abraço

[6] Comentário enviado por pcnmota em 08/06/2006 - 15:45h

OK lcrdias, obrigado pela dica, quando puder farei o teste. Por enquanto esse jeito foi simples e resolveu aqui na empresa.

Valew a todos!

[7] Comentário enviado por daubtful em 11/08/2006 - 21:45h

cara muito boa essa dida , foi show de bola

[8] Comentário enviado por pdjailton em 24/10/2006 - 17:34h

cara ficou muito bom, parabéns

[9] Comentário enviado por julianlinuxer em 30/01/2007 - 14:49h

Tudo o que eu precisava para implementar controle de banda. Simples, rápido, claro e objetivo, parabens!

[10] Comentário enviado por andrelinuxer em 07/04/2007 - 11:17h

VÁrios Mark No Mesmo Arquivo Cbq????

--------------------------------------------------------------------------------

BOA TARDE,

ESTOU COM O SEGUINTE PROBLEMA...TENHO VÁRIOS GRUPOS DE FUNCIONÁRIOS QUE PRECISO LIMITAR A VELOCIDADE DA INTERNET, MAS GOSTARIA TAMBÉM DE LIMITAR O UPLOAD...ENTAO MINHA DÚVIDA É A SEGUINTE:

ARQUIVO CBQ-0002.MANUT.IN
DEVICE=ETH1,100MBIT,10MBIT
RATE=128KBIT
WEIGHT=12KBIT
PRIO=5
RULE=192.168.0.2
RULE=192.168.0.3
RULE=192.168.0.4
RULE=192.168.0.5
BOUNDED=YES
ISOLATED=YES

ARQUIVO CBQ-0004.MANUT.OUT
DEVICE=ETH0,100MBIT,10MBIT
RATE=20KBIT
WEIGHT=2KBIT
PRIO=7
RULE=192.168.0.2,
RULE=192.168.0.3,
RULE=192.168.0.4,
RULE=192.168.0.5,
BOUNDED=YES
ISOLATED=NO
MARK=2
MARK=3
MARK=4
MARK=5

Ai minha dúvida...uso um mark para todos ou para cada um uso o comando mark?
ex: iptables -A PREROUTING -t mangle -s 192.168.0.2 -j MARK --set-mark 2
iptables -A PREROUTING -t mangle -s 192.168.0.3 -j MARK --set-mark 3
iptables -A PREROUTING -t mangle -s 192.168.0.4 -j MARK --set-mark 4
iptables -A PREROUTING -t mangle -s 192.168.0.5 -j MARK --set-mark 5

OU DEVERIA FAZER ASSIM:

ARQUIVO CBQ-0004.MANUT.OUT
DEVICE=ETH0,100MBIT,10MBIT
RATE=20KBIT
WEIGHT=2KBIT
PRIO=7
RULE=192.168.0.2,
RULE=192.168.0.3,
RULE=192.168.0.4,
RULE=192.168.0.5,
BOUNDED=YES
ISOLATED=NO
MARK=2

iptables -A PREROUTING -t mangle -s 192.168.0.2 -j MARK --set-mark 2
iptables -A PREROUTING -t mangle -s 192.168.0.3 -j MARK --set-mark 2
iptables -A PREROUTING -t mangle -s 192.168.0.4 -j MARK --set-mark 2
iptables -A PREROUTING -t mangle -s 192.168.0.5 -j MARK --set-mark 2

Eu quero que esses ips compartilhem um link de 128 k; eu poderia criar um link 128 para cada arquivo, mas ai cada um teria 128 k para navegar e não quero isso. O problema é que surgiu a dúvida quando fui criar o arquivo para upload por causa da questao da marcação dos pacotes ficou a dúvida...posso adicionar 1 mark no arquivo e usar somente ele para todos ou posso adicionar vários marks dentro do mesmo arquivo do cbq e usar cada mark para cada ip?
alguem pode me ajudar....alguem tem uma solucao para o impasse?

[11] Comentário enviado por geraldowc em 14/09/2008 - 11:42h

Nunca tinha visto controle de upload atraves do NAT que realmente funciona.
ja consegui levantado alias na interface da wan com com a mesma faixa de ip da wan e mascara /32 e regra de nat
idependente pra cada ip da lan, assim funciona tanto os alias ip valido ou ip invalidos, funciona sem precisar regra no iptables,
mas tem um problema so funciona com ip fixo e SNAT e deve ter um gateway, MASQUERADE nao funciona, se depender
receber ip via dhcp de tv a cabo ou adsl isto nao atende, ja vi outros artigos parecido com este testei e nao funcionou.
Este eu testei e realmente o pesadelo parece que acabou, somente o daemon da umas mensagens de erro, eu tenho o mesmo
daemon porem funciona tudo. geraldowc@hotmail.com
Parabéns por este artigo.

[12] Comentário enviado por robsonccav em 13/04/2012 - 16:13h

e ae tudo bem?

este script e compativel ao fedora 14, cara ja fiz de tudo e nao consigo fazer ele rodar, alguem pode me ajudar, desde ja agradeco.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts