[FUG-BR] PF + ALTQ com PRIQ

Rafael - Gmail rafajsp em gmail.com
Quarta Fevereiro 28 16:58:21 BRT 2007


Nossa Alessandro, muito obrigado!
Tive lendo o man do pf.conf, e achei o que o HFSC faz

"hfsc  Hierarchical Fair Service Curve.  Queues attached to an interface 
build a tree, thus each queue can have further child queues. Each queue can 
have a priority and a bandwidth assigned. Priority mainly controls the time 
packets take to get sent out, while bandwidth has primarily effects on 
throughput. hfsc supports both link-sharing and guaranteed real-time 
services. It employs a service curve based QoS model, and its unique feature 
is an ability to decouple delay and bandwidth allocation."

Com certeza você já deve saber disso, mas tive o prazer de postar, pois 
alguém um dia vai precisar ... realmente muito bom para o que eu desejo 
implementar.
Vou testar e retorno pra lista o resultado.

Att,
Rafael Simão

----- Original Message ----- 
From: "Alessandro de Souza Rocha" <etherlinkii em gmail.com>
To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" 
<freebsd em fug.com.br>
Sent: Wednesday, February 28, 2007 4:00 PM
Subject: Re: [FUG-BR] PF + ALTQ com PRIQ


Em 28/02/07, Rafael - Gmail<rafajsp em gmail.com> escreveu:
> Boa tarde,
>
> Estou tentando implementar um esquema de controle de Banda PF + ALTQ e
> somente me interessa priq, pois só quero controle no upload.(Me corrijam 
> se
> eu estiver errado)
> Pois bem, andei estudando alguns artigos, o histórico da lista, e o manual
> do PF no qual eu peguei a base para minhas regras, que estão a seguir:
>
> # Controle de banda
> altq on $ext_if priq bandwidth 1Mb queue { trafego_out, normal_out,
> voip_out }
>  queue trafego_out      priq(default)
>  queue normal_out       priority 13
>  queue voip_out         priority 15
>
> # Filtro
> pass out on $ext_if proto tcp from <voip> to any modulate state queue
> voip_out
> pass out on $ext_if proto udp from <voip> to any keep state queue voip_out
>
> Analisando o que acabei de implementar:
>
> # pfctl -vv -sq
> queue trafego_out priq( default )
>   [ pkts:       7194  bytes:     815446  dropped pkts:      0 bytes:
>      0 ]
>   [ qlength:   0/ 50 ]
>   [ measured:    30.7 packets/s, 24.45Kb/s ]
> queue normal_out priority 13
>   [ pkts:          0  bytes:          0  dropped pkts:      0 bytes:
>      0 ]
>   [ qlength:   0/ 50 ]
>   [ measured:     0.0 packets/s, 0 b/s ]
> queue voip_out priority 15
>   [ pkts:          0  bytes:          0  dropped pkts:      0 bytes:
>      0 ]
>   [ qlength:   0/ 50 ]
>   [ measured:     0.0 packets/s, 0 b/s ]
>
> Me parece que estou errando em alguma parte, pois não calcula.
>
> Att,
> Rafael Simão
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>

olha este exemplo
# 768kbit upload, using hfsc (78kB/s 624kbit/s max via ftp, pftop
shows 85kB/s or 680kbit/s)
altq on $ext hfsc bandwidth 768Kb qlimit 150 queue { root_out }
# only give out 95% of the bandwidth, this helps improve overall queue
handling, esp latency
 queue root_out bandwidth 95% hfsc(linkshare 89% upperlimit 89%)
{oCtl, oAck, oDly, oBrst, oRel, oTput}
    # icmp control traffic
    queue oCtl  bandwidth 16Kb  qlimit 15   hfsc( realtime 16Kb
linkshare 16Kb )
    # tcp ack traffic
    queue oAck  bandwidth 32Kb qlimit 150   hfsc( realtime 64Kb
linkshare 32Kb red )
    # latency sens traffic
    queue oDly  bandwidth 160Kb qlimit 50  hfsc( realtime 164Kb
linkshare 160Kb )
    # burst-prone traffic (256Kb of realtime for the first 6 seconds,
then drops to 94Kb)
    queue oBrst bandwidth 84Kb qlimit 50  hfsc( realtime (256Kb 6000
94Kb)   linkshare (192Kb 6000 84Kb) )
    # reliable traffic
    queue oRel  bandwidth 128Kb qlimit 100  hfsc(
linkshare 128Kb ) { oRelTCP, oRelUDP }
        queue oRelTCP bandwidth 64Kb qlimit 50 hfsc(
linkshare 64Kb default red )
        queue oRelUDP bandwidth 64Kb qlimit 50 hfsc(
linkshare 64Kb)
    # throughput-oriented traffic
    queue oTput bandwidth 100Kb qlimit 25   hfsc(
linkshare 100Kb red )

### Outgoing Queues on Internal Bridge Interface (from internet to
local) Traffic Conditioning/Shaping

altq on $int hfsc bandwidth 1240Kb queue { root_in }
 queue root_in  hfsc(linkshare 95%) {iCtl, iAck, iDly, iBrst, iRel,
iTput }
    queue iCtl        bandwidth 3%  qlimit 15   hfsc( realtime 16Kb
          linkshare 16Kb              )
    queue iAck        bandwidth 20% qlimit 1000 hfsc( realtime 64Kb
          linkshare 64Kb       red    )
    queue iDly        bandwidth 20% qlimit 25   hfsc( realtime 128Kb
          linkshare 128Kb             )
    queue iBrst       bandwidth 20% qlimit 25   hfsc( realtime (256Kb
8000 128Kb)  linkshare (512Kb 8000 128Kb)
    queue iRel        bandwidth 20% qlimit 150  hfsc( realtime 512Kb
          linkshare 256Kb      default)
    queue iTput       bandwidth 10%  qlimit 50   hfsc(
         linkshare 128Kb
-- 
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
Freebsd-BR User #117
-------------------------
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd 



Mais detalhes sobre a lista de discussão freebsd