CBQ: Controle efetivo II
Dica publicada em Linux / Internet
CBQ: Controle efetivo II
Muito já se falou e escreveu sobre CBQ, mas recentemente precisei implementar um controle de banda para um provedor wireless, e era necessário que fosse individualmente e não por sub redes inteiras.
Então ficou assim:
1 - Marcamos os pacotes de cada um dos IPs dos clientes da seguinte forma: imediatamente após a regra que faz a NAT, adicione as seguintes linhas:
Então ficou assim:
1 - Marcamos os pacotes de cada um dos IPs dos clientes da seguinte forma: imediatamente após a regra que faz a NAT, adicione as seguintes linhas:
# Marcação de pacotes
for i in `seq 11 254`
do
iptables -t mangle -A POSTROUTING -s 192.168.$i.10 -j MARK --set-mark $i
done
for i in `seq 11 254`
do
iptables -t mangle -A POSTROUTING -s 192.168.$i.10 -j MARK --set-mark $i
done
Onde a variável $i corresponde às subredes (1 para cada IP) sob a máscara 255.255.255.254 ou /31, o comando "seq 11 254" é o range de IPs/subredes que deverão ser marcados.
2 - Em /etc/sysconfig/cbq/, crie um par de arquivos de configuração para cada um dos IPs, sendo 1 para a interface de rede eth0 (interna/download) e outro para a ppp0(externa/upload). Ex: para 192.168.30.10 arquivo cbq0030.eth0 (download):
DEVICE=eth0,100Mbit,10Mbit
RATE=1024Kbit
WEIGHT=102Kbit
PRIO=5
RULE=192.168.30.10
BOUNDED=yes
ISOLATED=yes
RATE=1024Kbit
WEIGHT=102Kbit
PRIO=5
RULE=192.168.30.10
BOUNDED=yes
ISOLATED=yes
Para interface ppp0 cbq0030.ppp0 (upload):
DEVICE=ppp0,2Mbit,200Kbit
RATE=70Kbit
WEIGHT=7Kbit
PRIO=5
BOUNDED=yes
ISOLATED=yes
MARK=30
RATE=70Kbit
WEIGHT=7Kbit
PRIO=5
BOUNDED=yes
ISOLATED=yes
MARK=30
Note o parâmetro MARK=30 acima, ou seja, ele atua somente sobre os pacotes que possuem tal marca sem alterar os demais, aqueles que são oriundos do ip 192.168.30.10 para a rede externa.
o cbq é muito interessante.... parabens.