[FUG-BR] PF + ALTQ com PRIQ

Alessandro de Souza Rocha etherlinkii em gmail.com
Quarta Fevereiro 28 17:31:05 BRT 2007


2007/2/28, Rafael - Gmail <rafajsp em gmail.com>:
> 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
>
> -------------------------
> Histórico: http://www.fug.com.br/historico/html/freebsd/
> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd
>

velho estamos aqui para ajudar os outros e os outros nos ajudar a
tirar duvidas qualquer coisa e so chamar.
abracos.
-- 
Alessandro de Souza Rocha
Administrador de Redes e Sistemas
Freebsd-BR User #117


Mais detalhes sobre a lista de discussão freebsd