Controle de Banda com Shaper/Cbq.ini

Há tantas complicações quanto ao limite de banda no debian, qual funciona ou deixa de funcionar.. Pq o apt-get não consegue repositorios para cbq ou shaper, etc.. que resolvi escrever esse artigo sem precisar de nenhum outro passo alem desses abaixo:

1 – Fazer download do cbq.ini abaixo (modificado por mim)
wget http://www.digavoip.com.br/downloads/cbq.ini

ou faça download do ultimo projeto:
http://sourceforge.net/projects/cbqinit/files/

2 – Criar a pasta mkdir -p /etc/sysconfig/cbq e mover o download feito para a mesma:
mv cbq.init-v0.7.3 /etc/sysconfig/cbq/cbq.init

3 – Dar permissao:
chmod 700 /etc/sysconfig/cbq/cbq.init

4 – Iniciar o script:
/etc/sysconfig/cbq/cbq.init start

5 – Criar o arquivo de configuração:
por padrao criar a pasta /etc/sysconfig/cbq/ onde podemos ver no script a linha:
CBQ_PATH=${CBQ_PATH:-/etc/sysconfig/cbq}

6 – Criar a pasta e os arquivos no /etc/sysconfig/cbq/…
Uma observacao importante eh nunca começar pelo /etc/sysconfig/cbq/cbq-0001.-in e sempre de 2 em diante.
Exemplos abaixo entrada (download):
___________________________
vim /etc/sysconfig/cbqcbq-0002.-in
#Aqui você deve colocar a interface de rede
###Interface,Banda,banda dividida por 10
DEVICE=eth2,2048kbit,250kbit #minha banda é de 2mb
###A anda que passa
RATE=200Kbit
##A band0a 64/10 dividida por 10, Limite de download
WEIGHT=30Kbit
###prioridade
# Quanto maior o número, menor a prioridade.
PRIO=7
###Regras, você pode colocar mais de uma regra, RULE
###Essa regra controla a faixa de ip
RULE=192.168.254.1
RULE=192.168.254.2
RULE=192.168.254.3
RULE=192.168.254.4
RULE=192.168.254.5
# e demais ips que deseja colocar na regra
###Essa regra OCo permite compartilhar banda entre os clientes
### se quiser compartilhar coloque ” no ” nas duas abaixo
BOUNDED=yes
ISOLATED=yes
__________________________

vim /etc/sysconfig/cbq/cbq-0003.-in

#Aqui você deve colocar a interface de rede
###Interface,Banda,banda dividida por 10
DEVICE=eth2,2048kbit,250kbit
###A banda que passa
RATE=2048Kbit
##A banda 64/10 dividida por 10, Limite de download
WEIGHT=250Kbit
###prioridade
# Quanto maior o número, menor a prioridade.
PRIO=1
###Regras, você pode colocar mais de uma regra, RULE
RULE=192.168.254.253
###Essa regra OCo permite compartilhar banda entre os clientes
### se quiser compartilhar coloque ” no ” nas duas abaixo
BOUNDED=yes
ISOLATED=yes
______________________________

Limitando o upload

vim /etc/sysconfig/cbq/cbq-0002.-ins

##Aqui voc. deve colocar a interface de rede
###Interface,Banda,banda dividida por 10
DEVICE=ppp0,330kbit,36kbit
###A banda que passa
RATE=100Kbit
##A banda 64/10 dividida por 10, Limite de download
WEIGHT=10Kbit
###prioridade
# Quanto maior o número, menor a prioridade.
PRIO=7
###Regras, voc. pode colocar mais de uma regra, RULE
###Essa regra controla a faixa de ip
RULE=192.168.254.1,
RULE=192.168.254.2,
RULE=192.168.254.3,
###Essa regra não permite compartilhar banda entre os clientes
### se quiser compartilhar coloque ” no ” nas duas abaixo
BOUNDED=no
ISOLATED=no
MARK=10 #onde iremos marcar no fire para controlar

___________________________

vim /etc/sysconfig/cbq/cbq-0003.-ins

##Aqui voc. deve colocar a interface de rede
###Interface,Banda,banda dividida por 10
DEVICE=ppp0,330kbit,36kbit
###A banda que passa
RATE=330Kbit
##A banda 64/10 dividida por 10, Limite de download
WEIGHT=36kbit
###prioridade
# Quanto maior o número, menor a prioridade.
PRIO=1
###Regras, voc. pode colocar mais de uma regra, RULE
###Essa regra controla a faixa de ip
RULE=192.168.254.247,
RULE=192.168.254.248,
RULE=192.168.254.249,
RULE=192.168.254.250,
RULE=192.168.254.251,
RULE=192.168.254.252,
RULE=192.168.254.253,
RULE=192.168.254.254,
###Essa regra n.o permite compartilhar banda entre os clientes
### se quiser compartilhar coloque ” no ” nas duas abaixo
BOUNDED=yes
ISOLATED=yes
MARK=15

—————-

7 – Ver se o /var/cache/cbq.init esta sendo criado apos efetuar o comando: /etc/sysconfig/cbq/cbq.init restart
8 – Pode usar o comando /etc/sysconfig/cbq/cbq.init compile para ver se esta tudo ok.
9 – Caso ocorra algum erro, esse sera mostrado em /var/cache/cbq.init e para recompilar (/etc/sysconfig/cbq/cbq.init restart) apos correcao aconselho apagar com rm /var/cache/cbq.init

10 – Marcar os pacotes no fire:
# SEM PRIORIDADE E BANDA MINIMA
iptables -t mangle -A FORWARD -s 192.168.254.1/32 -j MARK –set-mark 10
iptables -t mangle -A FORWARD -s 192.168.254.2/32 -j MARK –set-mark 10
iptables -t mangle -A FORWARD -s 192.168.254.3/32 -j MARK –set-mark 10
iptables -t mangle -A FORWARD -s 192.168.254.4/32 -j MARK –set-mark 10
iptables -t mangle -A FORWARD -s 192.168.254.5/32 -j MARK –set-mark 10
iptables -t mangle -A FORWARD -s 192.168.254.6/32 -j MARK –set-mark 10
# COM PRIORIDADE E BANDA MAXIMA
iptables -t mangle -A FORWARD -s 192.168.254.250/32 -j MARK –set-mark 15
iptables -t mangle -A FORWARD -s 192.168.254.251/32 -j MARK –set-mark 15
iptables -t mangle -A FORWARD -s 192.168.254.252/32 -j MARK –set-mark 15
iptables -t mangle -A FORWARD -s 192.168.254.253/32 -j MARK –set-mark 15

11 – Criar um script de automatizacao:
vim /etc/init.d/cbq contendo: (debian 6)

#!/bin/bash
# Startup script for the Hobbit monitor
#
### BEGIN INIT INFO
# Provides: cbq
# Required-Start: $remote_fs $network
# Should-Start: $all
# Required-Stop: $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: cbq
# Description: cbq
# (Also monitors the local host.)
### END INIT INFO

#/etc/sysconfig/cbq/cbq.init
case “$1” in
‘start’)
/etc/sysconfig/cbq/cbq.init start
;;
‘stop’)
/etc/sysconfig/cbq/cbq.init stop
;;
*)
echo “Use /etc/sysconfig/cbq/cbq.init {start|stop}”
exit 1
;;
esac

12 – Após executar o comando insserv cbq (necessario estar em /etc/init.d/)

13 – Observar se foi criado o script nas rc apos a conexao pppoe e levantamento das interfaces de rede (marcaçao pacotes).
ls /etc/rc2.d/

==============================
Meus arquivos onde limito toda a banda passar por um link de down e up menor e deixo os ips 250,251,252 e 253 passarem toda minha banda existente:
###################################
## MAIOR PRIORIDADE DE BANDA DOWNLOAD ##
###################################

DEVICE=eth1,2048kbit,250kbit
RATE=2048Kbit
WEIGHT=250Kbit
PRIO=1

RULE=192.168.254.250
RULE=192.168.254.251
RULE=192.168.254.252
RULE=192.168.254.253
BOUNDED=yes
ISOLATED=yes
###################################
## Maior PRIORIDADE DE BANDA UPLOAD ##
###################################

DEVICE=ppp0,1000kbit,70kbit
RATE=1000Kbit
WEIGHT=70kbit
PRIO=1
RULE=192.168.254.251,
RULE=192.168.254.252,
RULE=192.168.254.253,
RULE=192.168.254.254,
BOUNDED=yes
ISOLATED=yes
MARK=15
######################################
## MENOR PRIORIDADE DE BANDA DOWNLOAD ##
######################################

DEVICE=eth1,2048kbit,250kbit
RATE=600Kbit
WEIGHT=40Kbit
PRIO=7
RULE=192.168.254.0/24
BOUNDED=yes
ISOLATED=yes
####################################
## MENOR PRIORIDADE DE BANDA UPLOAD ##
####################################

DEVICE=ppp0,1000kbit,70kbit
RATE=100Kbit
WEIGHT=10Kbit
PRIO=7
RULE=192.168.254.0/24,
BOUNDED=no
ISOLATED=no
MARK=10 #onde iremos marcar no fire para controlar

E no meu fire:
iptables -t mangle -A FORWARD -j MARK –set-mark 10
iptables -t mangle -A FORWARD -s 192.168.254.250/32 -j MARK –set-mark 15
iptables -t mangle -A FORWARD -s 192.168.254.251/32 -j MARK –set-mark 15
iptables -t mangle -A FORWARD -s 192.168.254.252/32 -j MARK –set-mark 15
iptables -t mangle -A FORWARD -s 192.168.254.253/32 -j MARK –set-mark 15

Deixe um comentário