[GTER] Controle de Banda

Guilherme de Freitas Figueiredo gff at wkve.com.br
Sat Oct 24 17:40:23 -02 2009


Senhores,

  Boa tarde!

  Paulo , qual é a versão do kernel do seu GNU/Linux ?
  O processador é SMP ?

  Digo isso porque passei os mesmos problemas , e tenho um amigo que 
desenvolve patchs para o IMQ , o mesmo não aconselhou usar IMQ em kernel 
acima de 2.6.26 , sendo assim , tive que mudar minha solução para ifb , 
funcionou sem problemas , utilizando junto com HTB ou HFSC.

  Segue abaixo um exemplo de regra utilizando IFB+HTB , uma vez que , o 
IFB controla somente o UPLOAD.


#
# DEV = interfaces
#
tc qdisc add dev $dev root handle 1: htb r2q 5120 default 1
tc class add dev $dev parent 1:  classid 1:1 htb rate 1000mbit ceil 1000mbit
tc class add dev $dev parent 1:  classid 1:2 htb rate 1000mbit ceil 1000mbit
tc qdisc add dev $dev handle ffff ingress

#
# IFB
#
tc qdisc add dev ifb0 root handle 1: htb r2q 5120 default 1
tc class add dev ifb0 parent 1:  classid 1:1 htb rate 1000mbit ceil 1000mbit
tc class add dev ifb0 parent 1:  classid 1:2 htb rate 1000mbit ceil 1000mbit

#
# Redirecionamento de ingress para ifb0
#
tc filter add dev $dev parent ffff: protocol ip prio 10 u32 match u32 0 
0 flowid 1:2 action mirred egress redirect dev ifb0

#
# Class
#
tc class add dev $dev parent 1:2 classid 1:$1 htb rate $down ceil $down

#
# Class IFB0
#
tc class add dev ifb0 parent 1:2 classid 1:$1 htb rate $down ceil $down

#
# Filter
#
tc filter add dev $dev parent 1: protocol ip prio 10 u32 match ip dst 
${ip} flowid 1:${NUMERO}

#
# Filter IFB0
#
tc filter add dev ifb0 parent 1: protocol ip prio 10 u32 match ip src 
${ip} flowid 1:${NUMERO}

#
#

Lembrando que , eu faço o controle somente nas LANS , deixo as WANS de fora.
Não se esqueça também de subir a interface ifb0 ( ip link set dev ifb0 up )

Qualquer coisa estamos à disposição!

Abraços!



Paulo escreveu:
> 2009/10/24 Rubens Marins Marins Schner Pereira Junior <
> rubens.marins at gmail.com>
> 
>> Se voce ja descobriu que o problema esta no IMQ, tente nao usar ele,
>> usando regras para cada uma das interfaces.
>>
>> Digamos que voce tem a eth0 que vai para a internet, e a eth1 que vai
>> para a sua rede, voce coloca as regras de upload na eth0 e as regras
>> de download na eth1.
>> E se voce esta controlando banda para ips, use o u32 do tc filter para
>> identificar o trafego, o iptables da uma sobrecarga a mais na coisa, e
>> so e recomendado para regras muito especificas que voce so consegue
>> identificar usando regra de iptables. E claro com poucas regras na
>> maquina, normalmente um micro para compartilhar adsl.
>>
>> Um exemplo para um cliente de 20mbit que tem o ip 192.168.0.1 e uma
>> rede 10.0.0.0/24 com ele.
>>
>> ## Regra de upload
>> tc class add dev eth0 parent 1:1 classid 1:100 htb rate 20480kbit
>> tc qdisc add dev eth0 parent 1:100 handle 100: sfq perturb 10
>> tc filter add dev eth0 protocol ip parent 1: u32 match ip src
>> 192.168.0.1 flowid 1:100
>> tc filter add dev eth0 protocol ip parent 1: u32 match ip src
>> 10.0.0.0/24 flowid 1:100
>>
>> ## Regra de Download
>> tc class add dev eth1 parent 2:1 classid 2:100 htb rate 20480kbit
>> tc qdisc add dev eth1 parent 2:100 handle 100: sfq perturb 10
>> tc filter add dev eth1 protocol ip parent 2: u32 match ip dst
>> 192.168.0.1 flowid 2:100
>> tc filter add dev eth1 protocol ip parent 2: u32 match ip dst
>> 10.0.0.0/24 flowid 2:100
>>
>>
>>
>> Abracos,
>>
>>
> Obrigado, pelas dicas e sugestões de todos.
> 
> O problema é realmente o IMQ. Quando faço o controle na interface real
> (eth+) como o Rubens disse, consigo entregar a banda normalmente, 50mb,
> 65mb, 20mb, 87mb. O problema é quando o IMQ tá ativo. Uma alternativa é
> utilizar as interfaces reais do servidor, porém, a utilização das 2
> interfaces IMQ como alvo nas regras de PRE e POSTROUTING é muito bom, evito
> de criar várias qdisc e class usando as interfaces, que são muitas.
> 
> O IFB não funciona da mesma forma que a IMQ, mas vou procurar informações
> sobre a IFB antes de controlar o tráfego de download e upload nas interfaces
> eth+.
> 
> Alguém tem experiência utilizando o FreeBSD para controlar banda de vários
> links grande?
> 
> Bom sábado para todos.
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter
> 

-- 
Atenciosamente,

Guilherme de Freitas Figueiredo - gff at wkve.com.br - 33.8824.0243
Gerência de Redes - WKVE Telecom - http://www.wkve.com.br - 33.2102.3332
Rua João Pinheiro , 599 Loja 14 - Centro - Governador Valadares - MG



More information about the gter mailing list