[GTER] Controle de Banda

Emerson Pinter epinter at picturecorp.com.br
Thu Nov 5 17:56:54 -02 2009


Sou antigo usuário do IMQ com HTB e estou configurando um servidor para
controlar banda, agora com o IFB. Estou conseguindo controlar a banda de
entrada e saida perfeitamente com o IFB, mas tenho uma dúvida...

Alguém sabe se o IFB pode causar qualquer problema futuro se for usado para
controlar upload e download (estou redirecionado trafego de entrada e saida
da eth0 para a ifb0) ?

Atenciosamente.

Emerson Pinter





On Sat, 24 Oct 2009 17:40:23 -0200, Guilherme de Freitas Figueiredo
<gff at wkve.com.br> wrote:
> 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
>>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: disclaimer.txt
URL: <https://eng.registro.br/pipermail/gter/attachments/20091105/cf333c41/attachment.txt>


More information about the gter mailing list