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:
# 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
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):
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.
[3] Comentário enviado por piramideinfo em 02/06/2007 - 13:30h
Boa,
Configurei o CBQ no Fedora Core 5 , mas dá uma mensagem de erro, gostaria de saber se alguem já viu ou si sabe qual erro é esse.
"find:warning: you have specified the - maxdepth option after a non-option argument (, but options are not positional (-maxdepth affets tests spedified before it as well as those specified after it). Please specify options before other arguments."
[4] Comentário enviado por capitainkurn em 19/06/2007 - 09:56h
Essencialmente o cbq.init nada mais ~e que um shell script que manipula a ferramnta tc do iptools. Creio que sei problema haja ocorrido d3evido aos nomes deos arquivos de configura~c"ao do CBQ, onde a contri~ca eh a seguinte:
cbq-0000.eth0
onde o 0000 corresponde a um valor hexadecimal o mesmo valor da marca de pacotes pre-definida no iptables
Se voce nao marcar os pacotes no iptables o shapper nao atuara de forma alguma.