[FUG-BR] Opcao keep-state do PF
Fabiano Carlos Heringer
bigu em grupoheringer.com.br
Quarta Outubro 1 12:20:04 BRT 2008
opa, beleza...
tirei o keep state, mas estranhamente nao se comporta como no outro
servidor...
quando coloco o keep state no servidor em que esta funcionando, ele se
comporta como o outro que esta com problema, provando ser o keep state
mas quando coloco o no state no que nao esta funcionando, continua com o
mesmo problema...
vou mandar as regras dos dois servidores para se ter uma ideia:
SERVIDOR 1 (esta funcionando da maneira que eu quero)
set optimization normal
set loginterface xl0
set loginterface nve0
set skip on lo0
scrub in all
scrub out all
nat on $ext_if from x.x.x.x/24 to any -> y.y.y.y
altq on { $int_if } cbq bandwidth 4Mb queue { std_in, rede_in }
queue std_in bandwidth 1Mb priority 1 \
cbq(default)
queue rede_in bandwidth 256Kb priority 1 \
cbq(red ecn)
altq on { $ext_if } cbq bandwidth 4Mb queue { std_out, rede_out }
queue std_out bandwidth 1Mb priority 1 \
cbq(default)
queue rede_out bandwidth 56Kb priority 1 \
cbq(red ecn)
pass quick proto tcp from x.x.x.x to any queue rede_out
pass quick proto tcp from any to x.x.x.x queue rede_in
OBS: Neste Servidor estou com a versao 6.2 (portanto o keep state nao
vem por default)
Olhas as estatisticas no PFTOP com essas regras:
pfTop: Up Queue 1-6/6, View: queue, Cache:
10000
12:21:49
QUEUE BW SCH PRIO PKTS BYTES
DROP_P DROP_B QLEN BORROW SUSPEN P/S B/S
root_nve0 4000K cbq 0 589940 380403K
0 0 0 0 0
std_in 1000K cbq 589936 380403K
57 37445 0 0 5265
rede_in 256K cbq 4 262
0 0 0 0 0
root_xl0 4000K cbq 0 559760 110156K
0 0 0 0 0
std_out 1000K cbq 555246 108803K
22 11588 0 0 4694
rede_out 56000 cbq 4514 1385063
0 0 0 0 179
notem que rede_in e rede_out estao recebendo o trafego (aqui o controle
esta funcionando perfeitamente, tanto down quanto Up)
#### SERVIDOR 2 (ONDE NAO ESTA FUNCIONANDO)
set optimization normal
set loginterface em0
set loginterface sk0
scrub in all
scrub out all
altq on $int_if bandwidth 2Gb cbq queue { def_in_em0, q000Iem0 }
queue def_in_em0 bandwidth 1Mb priority 0 cbq(default borrow)
queue q000Iem0 bandwidth 128Kb
altq on $ext_if bandwidth 2Gb cbq queue { def_in_sk0, q000Osk0 }
queue def_in_sk0 bandwidth 1Mb priority 0 cbq(default borrow)
queue q000Osk0 bandwidth 128Kb
pass quick log from x.x.x.x to any no state queue q007Iem0
pass quick log from any to x.x.x.x no state queue q007Osk0
Neste estou usando um FreeBSd 7.0
Notem como ficam as filas (utilizei o pftop):
QUEUE BW SCH PRIO PKTS BYTES
DROP_P DROP_B QLEN BORROW SUSPEN P/S B/S
root_em0 2000M cbq 0 50256 69906080
0 0 0 0 0 89 125753
def_in_em0 1000K cbq 0 43704 60277928
0 0 0 10865 0 88 125665
q000Iem0 128K cbq 6384 9594503
3 4542 0 0 3157 0 0
root_sk0 2000M cbq 0 36002 2900567
0 0 0 0 0 69 5755
def_out_sk0 1000K cbq 0 36002 2900567
0 0 0 0 0 69 5755
q000Osk0 128K cbq 0 0
0 0 0 0 0 0 0
notem que nao há trafego nenhum na fila q000Osk0
Desculpem pelo tamanho do email, so nao estou entendendo porque isso
esta acontecendo...
Abracos
Matheus Cucoloto escreveu:
> No FreeBSD 7.0 foi portado o novo PF e no novo PF ele automaticamente
> coloca o keep-state
>
> Para tirar essa flag em cada regra adicione "no state"
>
> Ex:
>
> pass out quick on em0 inet from any to 192.168.10.2 no state queue grp109fxp0
> pass in quick on em0 inet from 192.168.10.2 to any no state queue grp109fxp2
>
> Abraços.
>
>
> On Wed, Oct 1, 2008 at 8:13 AM, Fabiano Carlos Heringer
> <bigu em grupoheringer.com.br> wrote:
>
>> Pessoal, alguem poderia me explicar para que serve realmente a opcao
>> keep-state no PF?
>>
>> pelo que entendi eh o seguinte: quando um pacote casa com um regra que
>> tem uma opcao keep-state ele cria um estado desse pacote, sendo assim,
>> se o pacote retornar ele vai entrar por essa mesma regra, é isso?
>>
>> Seria o mesmo que colocar as seguintes regras:
>>
>> pass bla bla bla from x.x.x.x to any
>> pass bla bla bla from any to x.x.x.x
>>
>> so que com o keep-state somente uma regra seria suficiente, pois o
>> retorno do pacote seria pela mesma, eh isso mesmo ou to viajando na
>> maionese?
>>
>> O que acontece,
>>
>> tenho dois servidores aqui, os dois sao identicos no tipo de conexao
>> (fazem NAT, tem uma fila em CBQ), acontece que em um deles consigo fazer
>> tanto o controle do download, quanto do upload (interfaces interna e
>> externa) e no outro servidor nao consigo fazer o upload, e a unica coisa
>> que vi diferente nos dois sao o keep-state flags S/SA ..
>>
>> ai voce me diria, tira o keep-state pra testar...esse eh o problema, nao
>> coloquei nenhuma dessas opcoes, o que percebi que a partir de um release
>> do FreeBSD ele ja vem por padrao essa opcao nas regras do PF...
>>
>> e agora? sera que eh isso mesmo que esta dando o problema?
>>
>> Obrigado
>>
>> -------------------------
>> 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