[FUGSPBR] Problema com pf e muitos IPS

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Qua Nov 24 17:30:27 BRST 2004


Eduardo Meyer wrote:
> Você está querendo dizer que tabelas no IPFW geram várias Radix-Tree?
> Como assim? Uma árvore por rede? Por exemplo, 192.168.2.2 e
> 192.168.2.3 ficam na mesma árvore tipo uma árvore 192.168.2.0? E assim
> em diante crecendo com o número de redes que você usa no firewall?

Não, de jeito nenhum hehe. Assim seria bizarro de tão tosco né.

Cada tabela se consiste em uma árvore e tal. Então se voce tem uma regra 
X que usa por exemplo table(40) apenas a radix-tree da table(40) é 
consultada.

Mas a sacada é que na arvore da table(40) existem 2 arvores, uma para 
blocos CIDR e outra para hosts (32 bits), então na tabela 40 primeiro é 
consultada a arvore (podemos chamar de subarvore pra facilitar) de redes 
  e se nao der match apenas depois a de hosts.

Entao por exemplo se voce tem table 40 com:

200.200.200.0/24
200.21.50.6/32
200.230.200.0/24
200.21.50.2/32

Internamente existe:

table((40)CIDR):
200.200.200.0/24
200.230.200.0/24

table((40)HOSTS):
200.21.50.6/32
200.21.50.2/32

E se vem um pacote de 200.200.200.5 o match é feito de forma que é 
verificado primeiro se o host faz parte de alguma rede na arvore CIDR se 
fizer da o match ali; se a rede nao constar a busca é feita na arvore de 
hosts.

O que eu nao sei exatamente é se a busca é PRIMEIRO em 1 arvore e só 
depois na outra ou se isso é feito em paralelo nessas sub-arvores radix 
similar como é feito em cada entrada em uma unica arvore.

Outra coisa a notacao esdruchula de table((40)CIDR) e derivados é "by 
patrick" hehe, nao tem nada a ver com o codigo :P

> http://monkey.org/openbsd/archive/bugs/0401/msg00169.html
> 
> Ai o autor do PF diz que não faz sentido procurar match por rede.

É ao contrario. O autor do PF diz que nao tem como testar um netblock 
contra a arvore, a ideia no IPFW é testar o host contra uma arvore 
netblock da tabela primeiro e contra uma arvore de hosts individuais 
dessa tabela quando não há match primeiro na de blocos, enquanto no PF 
elas ficam na mesma arvore, uma arvore por tabela.

-- 
Atenciosamente,

Patrick Tracanelli

FreeBSD Brasil LTDA.
The FreeBSD pt_BR Documentation Project
http://www.freebsdbrasil.com.br
patrick @ freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"

_______________________________________________________________
Para enviar um novo email para a lista: fugspbr em fugspbr.org
Sair da Lista: http://lists.fugspbr.org/listinfo.cgi
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/



Mais detalhes sobre a lista de discussão freebsd