[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