Re: [FUG-BR] Controle de Banda com PF

2010-06-22 Por tôpico Gabriel Fonseca
Em 22 de junho de 2010 08:55, Vinicius Abrahao vinnix@gmail.comescreveu:

 Oi pessoal, bom dia!

 Essa thread de controle de banda com PF veio a calhar.

 Estou tentando implementar algo que teoricamente deveria ser simples,
 lá em casa, mas estou tendo uma dificuldade monstro!

 A idéia para experiência é pegar meu speedy 100Kb/s (real) e criar um
 controle de banda que
 garanta para um determinado cliente (no meu caso uma rádio online do
 PSP) uma banda de 20Kb/s e todo
 o resto para quem quiser lá dentro de casa. Meu objetivo é garantir
 a banda para a rádio e ainda assim conseguir
 fazer alguns downloads/torrents.

 Cheguei a criar as declarações das filas e as regras para fazer match
 com o streaming mas até agora só vejo trafego
 nas filas que são default.

 Abaixo algumas coisas que estão no meu pf.conf que podem (ou não?)
 estar interferindo.


 -
 table host_psp {192.168.1.10}
 table rfc1918 const { 192.168.0.0/16, 172.16.0.0/12,  10.0.0.0/8 }


 set loginterface $ext_if

 set skip on lo
 set block-policy return
 scrub in all

 scrub in on $int_if fragment reassemble
 scrub in on $int_if no-df
 scrub on $int_if reassemble tcp

 altq on $int_if cbq  bandwidth 10Mb queue { q_radio_out , q_internet ,
 q_default_out }
  queue q_radio_out  bandwidth 20Kb cbq
  queue q_internet   bandwidth 80Kb cbq
  queue q_default_outbandwidth  9Mb cbq(default)


 pass out quick on $int_if proto tcp from host_psp to any
 queue q_radio_out
 pass out quick on $int_if proto tcp from any to  host_psp
 queue q_radio_out

 Quando vi que o tráfego de rádio não estava indo pra fila que eu
 queria, cheguei a apelar com as seguintes regras:

 pass out quick on $int_if proto tcp from !rfc1918 port 9106 to any
 queue q_radio_out
 pass out quick on $int_if proto tcp from !rfc1918 to any port 9106
 queue q_radio_out
 pass out quick on $int_if proto tcp from !rfc1918 to any
 queue q_internet_default

 Mas ainda sem sucesso.  :-(


 -

 Alguns podem estar achando estranho o fato da queue estar na interface
 interna, mas conversando
 com os amigos no ##freebsd-br @freenode (thanks Porks!) chegamos a
 conclusão que o altq só agiria neste caso nas filas
 de output, espero estarmos certos quanto a essa conclusão.

 No meu primeiro teste (com a interface externa) as coisas estavam indo
 por esse caminho:

 altq on $ext_if cbq  bandwidth 100Kb queue { q_radio, q_default }
  queue q_radio   bandwidth 20Kb cbq
  queue q_default bandwidth 80Kb cbq(default)

 pass in  quick on $ext_if proto tcp from any to any port $radio_port no
 state
 pass out quick on $ext_if proto tcp from any to any port $radio_port
 no state queue (r_radio)



 -

 Bom.. acho que já me prolonguei demais.
 Vou dar uma estudada no HFSC, mas basicamente gostaria de saber se é
 possível fazer isso que eu estou tentando com o CBQ, e como?
 Teoricamente, pelo que li, dá sim, mas estou tendo dificuldades nas
 implementações, poderiam me dar uma luz?


 Obrigado pela ajuda,
 Vinnix

 [a.k.a. Vinícius Schmidt]



 ANEXO 1: Diagrama do Fluxo (thanks again Porks!)

 #rede interna -- NIC_INTERNA_IN -- PF -- NIC_EXTERNA_OUT
 -- internet
 #rede interna -- NIC_INTERNA_OUT -- PF -- NIC_EXTERNA_IN
 -- internet
 -
 Histórico: http://www.fug.com.br/historico/html/freebsd/
 Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd



Vinícius,

Aplique as filas nas regras de filtragem que confiram com entrada de
tráfego na interface interna.

No seu caso ficaria assim:

pass in quick on $int_if proto tcp from !rfc1918 to port 9106 queue
q_radio_out
pass in quick on $int_if proto tcp from !rfc1918 to any queue
q_internet_default

Isso no caso de você querer fazer o enfileiramento da fila q_radio_out
somente com destino any porta 9106.
Lembre-se que quando vc define as portas nas regras de saída da
interface interna vc está definindo a porta de origem do seu host na rede
interna.

Para verificar se o tráfego esta batendo com as filas utilize pfctl -vvs
q .

Espero ter ajudado.
Att.

 Gabriel ethX Fonseca 
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Rodrigo
Boa Tarde Pessoal.

Gostária de saber se alguem ai conhece algum site bom, onde eu possa 
encontrar informações concretas sobre controle de banda no PF.

Procurei bastante no Google, mas o que se encontra são poucas coisas..

Obrigado.
Att,

Rodrigo.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Márcio Luciano Donada
Em 18/6/2010 13:18, Rodrigo escreveu:
 se alguem ai conhece algum site bom, onde eu possa 
 encontrar informações concretas sobre controle de banda no PF.

 Procurei bastante no Google, mas o que se encontra são poucas coisas..

Boa tarde,
www.openbsd.org/
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Rodrigo
Obrigado Márcio, vou dar uma olhada !

Att.
Rodrigo
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Matheus Weber da Conceição
2010/6/18 Rodrigo rodr...@rcsolucoesinteligentes.com.br:
 Boa Tarde Pessoal.

 Gostária de saber se alguem ai conhece algum site bom, onde eu possa
 encontrar informações concretas sobre controle de banda no PF.

 Procurei bastante no Google, mas o que se encontra são poucas coisas..


http://www.openbsd.org/faq/pf/index.html

-- 

Matheus Weber da Conceição
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Renato Frederick
O próprio site do openbsd[1] mostra tudo.


Não tem mistério, PF é simples depois que entende-se a cara dele.

Faz-se as filas na interface, neste exemplo o link é de 100Mb e está 
conectado á xl0 e temos 2 clientes(e o resto que vai pro que não tem 
tráfego explicitamente detalhado):

altq on $ext_if bandwidth 100Mb queue { cliente1 cliente2 default_dmz }

define-se dos 100Mb quanto que cliente1 e cliente2 vai ter e o resto pra 
default_dmz:

queue cliente1 bandwidth 2Mb priority 4 qlimit 1000 cbq(red)
queue cliente2 bandwidth 8Mb priority 4 qlimit 1000 cbq(red)
queue default_dmz bandwidth 80Mb priority 4 qlimit 1000 cbq(default,borrow)

lembrando que a some dos queue nao pode passar o bandwitdh declarado acima.

note que estou usando o algorítimo RED para fazer o ALTQ, no link[1] você vê 
mais detalhes dos algorítimos disponíveis.

Também na DMZ eu joguei o borrow, ou seja, os 80Mb da DMZ pode tomar banda 
do cliente2 e cliente2, caso precise, seria como as prioridades que o IPFW 
tem.


Agora basta colocar uma linha no final de cada regra de pass out pra indica 
que esta regra vai ser associada  a uma destas queue:


Ex, uma regra que era assim, liberando o cliente1 a conectar a qq local:

pass out quick on $ext_if proto { tcp udp } from { $cliente1 }  port  1023 
to any  keep state

fica assim:

pass out quick on $ext_if proto { tcp udp } from { $cliente1 }  port  1023 
to any  queue cliente1 keep state

as regras que eu quero que compartilhem os 80Mb eu não declaro nenhum queue, 
ele vai pegar o que está como default acima:

pass out quick on $ext_if proto tcp from hosting port $ftp_ports to any 
port  1023 keep state



Observe que isto faz o tráfego de output.

para fazer de input, repete-se a mesma coisa, só que a ext_if vai ser 
substituida pela int_if(ou o nome que você dá pra interface interna) no altq 
e o queue nao vai ser no pass out, vai ser no pass in e você não vai poder 
usar o keep state, vai ter que declarar uma regra de pass out e outra de 
pass in, senão o keep state cria  o retorno sem queue.





[1]http://openbsd.org/faq/pf/queueing.html


--
From: Rodrigo rodr...@rcsolucoesinteligentes.com.br
Sent: Friday, June 18, 2010 1:18 PM
To: freebsd@fug.com.br
Subject: [FUG-BR] Controle de Banda com PF

 Boa Tarde Pessoal.

 Gostária de saber se alguem ai conhece algum site bom, onde eu possa
 encontrar informações concretas sobre controle de banda no PF.

 Procurei bastante no Google, mas o que se encontra são poucas coisas..

 Obrigado.
 Att,

 Rodrigo.
 -
 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


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Nenhum_de_Nos
 Boa Tarde Pessoal.

 Gostária de saber se alguem ai conhece algum site bom, onde eu possa
 encontrar informações concretas sobre controle de banda no PF.

 Procurei bastante no Google, mas o que se encontra são poucas
 coisas..

https://calomel.org/pf_hfsc.html

matheus

-- 
We will call you cygnus,
The God of balance you shall be

A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?

http://en.wikipedia.org/wiki/Posting_style
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Rodrigo
Muito obrigado pela colaboração de todos, ler tudo o que me passaram...


Att,

Rodrigo
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Saulo Bozzi
Pegando a deixa, do exemplo tambem do renato.

queue cliente1 bandwidth 2Mb priority 4 qlimit 1000 cbq(red)

Tem como traduzir melhor esse comando acima?

Tipo, tem como fazer com que seja um minimo de down e maximo
unlimited. para ele poder consumir a banda toda quando possivel, e
dividir quando tiver mais gente em uso, duas pessoas dividirem com um
minimo de down?
Como seria?

Valeu pela infos, a faq do pf eu tenho impressa, vou da mais um vizu,
mas la em pt o material é pouco. Vale mais pesquisas na net, e pedir
ajudar a quem entende.

Valeu.

Em 18 de junho de 2010 13:44, Rodrigo
rodr...@rcsolucoesinteligentes.com.br escreveu:
 Muito obrigado pela colaboração de todos, ler tudo o que me passaram...


 Att,

 Rodrigo
 -
 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


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico irado furioso com tudo
Em Fri, 18 Jun 2010 13:35:31 -0300
Renato Frederick ren...@frederick.eti.br, conhecido
consumidor/usuário de drogas (Windows e BigMac com Coke) escreveu:

 O próprio site do openbsd[1] mostra tudo.
 
 
 Não tem mistério, PF é simples depois que entende-se a cara dele.
 
 Faz-se as filas na interface, neste exemplo o link é de 100Mb e está 
 conectado á xl0 e temos 2 clientes(e o resto que vai pro que não
 tem tráfego explicitamente detalhado):
 [1]http://openbsd.org/faq/pf/queueing.html


pôxa, a receita (semi how-to) estó ótima. Não tem como vc elaborar
como artigo e postar lá no fug? eu vou fazer um link no meu quase-blog
pra não ficar perdido, enquanto isso.

parabéns, frederik.

-- 
 saudações,
 irado furioso com tudo
 Linux User 179402/FreeBSD BSD50853/FUG-BR 154
 Não uso drogas - 100% Miko$hit-free
Arqueólogo: alguém cuja carreira esta em ruínas.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


Re: [FUG-BR] Controle de Banda com PF

2010-06-18 Por tôpico Renato Frederick
Opa Irado

Problema todo é tempo :-(

Mal mal tenho pra responder a lista, tem uma pancada de coisas q postei aqui
no passado que gostaria de divulgar lá.


--
From: irado furioso com tudo ir...@bsd.com.br
Sent: Friday, June 18, 2010 2:24 PM
To: freebsd@fug.com.br
Subject: Re: [FUG-BR] Controle de Banda com PF

 Em Fri, 18 Jun 2010 13:35:31 -0300
 Renato Frederick ren...@frederick.eti.br, conhecido
 consumidor/usuário de drogas (Windows e BigMac com Coke) escreveu:

 O próprio site do openbsd[1] mostra tudo.


 Não tem mistério, PF é simples depois que entende-se a cara dele.

 Faz-se as filas na interface, neste exemplo o link é de 100Mb e está
 conectado á xl0 e temos 2 clientes(e o resto que vai pro que não
 tem tráfego explicitamente detalhado):
 [1]http://openbsd.org/faq/pf/queueing.html


 pôxa, a receita (semi how-to) estó ótima. Não tem como vc elaborar
 como artigo e postar lá no fug? eu vou fazer um link no meu quase-blog
 pra não ficar perdido, enquanto isso.

 parabéns, frederik.

 -- 
 saudações,
 irado furioso com tudo
 Linux User 179402/FreeBSD BSD50853/FUG-BR 154
 Não uso drogas - 100% Miko$hit-free
 Arqueólogo: alguém cuja carreira esta em ruínas.
 -
 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


Re: [FUG-BR] Controle de Banda com PF

2007-10-27 Por tôpico Daniel Bristot de Oliveira
Tudo bem cara?

Olha só, deixa ver se entendi, vc ta fazendo o controle na interface wan certo?

O PF só controla o que está saindo de uma interface. Então, o controle
de banda do  download que atravessa o firewall deve ser feito na
interface interna, pois os dados entram na wan do firewall, e saem na
lan do firewall.

O PF é assim para que o controle de banda não acabe rejeitando pacotes
entrantes, fazendo isto na interface interna ele armazena o pacote em
uma fila, que por padrão tem tamanho 50, e segura este pacote até ter
banda pra ele, Isso normalmente acontece em momentos de criação de
conexões, e após um tempo o protocolo de transporte se ajusta a
velocidade disponível, sem que pacotes sejam descartados. O controle
de banda para o Upload sim é feito na interface externa.

Mude a interface na diretiva altq.

Att
-- 
Daniel Bristot de Oliveira
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] Controle de Banda com PF

2007-10-26 Por tôpico Marcelo/Porks
Pessoal,

Meu controle de banda com cbq não limita na velocidade que eu estou mandando
e o controle de banda com hfsc não limita absolutamente nada

Então... Alguém que use pf+cbq ou pf+hfsc poderia me mandar o resultado do:

# pfctl -s queue

***e os respectivos***
pass . queue xxx

Se alguém puder fazer isso para mim.. eu agradeço.

Tô quase largando o PF para controlar banda.. e usando o ipfw (só não
fiz isso ainda porque eu nunca mexi com o ipfw :S)

-
altq on $IF_Externa cbq bandwidth 60Kb queue { ce, resto }
queue resto bandwidth 40Kb cbq (default)
queue cebandwidth 5.6Kb cbq
...
pass in quick on $IF_Interna from 10.10.0.7 to any keep state queue ce

O download nessa máquina (10.10.0.7) vem a 72Kbits/s, enquanto deveria
vir a 5.6Kbits/s

# uname -a
FreeBSD xx.yyy.com.br 6.2-RELEASE-p7 FreeBSD 6.2-RELEASE-p7 #0: Wed
Sep 12 10:39:16 BRT 2007
[EMAIL PROTECTED]:/usr/obj/usr/src/sys/KERNEL.XX  i386


-- 
Marcelo Rossi
This e-mail is provided AS IS with no warranties, and confers no rights.
-
Histórico: http://www.fug.com.br/historico/html/freebsd/
Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd


[FUG-BR] Controle de banda com PF+ALTQ: alimento pras ideia

2005-11-25 Por tôpico Patrick Tracanelli
hehehe alimento pras ideia foi soh uma traducao livre a expressao em 
ingles; autor do PF tenta justificar pq PF/ALTQ soh controla banda de 
saida... e nao convence ninguem...

http://bsdnews.com/view_story.php3?story_id=5307

A ultima explicacao dele parecida sobre porque sistemas BSD nao 
_querem_ ter filtro na camada 7 eu concordei =) Mas essa... o_O

enfim, vale a pena ser lido.


-- 
Patrick Tracanelli

FreeBSD Brasil LTDA.
(31) 3281-9633 / 3281-3547
[EMAIL PROTECTED]
http://www.freebsdbrasil.com.br
Long live Hanin Elias, Kim Deal!


___
Freebsd mailing list
Freebsd@fug.com.br
http://mail.fug.com.br/mailman/listinfo/freebsd_fug.com.br