[FUGSPBR] divert (meio longo)
Giovanni P. Tirloni
gpt em tirloni.org
Qua Nov 12 23:21:11 BRST 2003
* Carlos Alberto (carlinho em xprt.eti.br) wrote:
> pessoal,
>
> estou tendo uma duvida em relacao ao divert e preciso de uma ajuda.
>
> estou com a seguinte plataforma de software:
> 5.1-RELEASE-p10 FreeBSD 5.1-RELEASE-p10 #2
>
> estou revendo algumas regras referentes a nat e verifiquei o seguinte no
> manual do ipfw:
>
> divert port
> Divert packets that match this rule to the divert(4) socket bound
> to port port. _The search terminates._
>
> teoricamente, quando um pacote passa pelo divert e corresponde a uma
> solicitacao feita via nat, ele seria aceito e o processo se encerraria.
> pois bem, nao e bem isso que esta acontecendo. o pacote, mesmo
> correspondendo a uma solicitacao feita via nat continua a ser analisado
> nas demais regras do firewall.
A pesquisa realmente para. O pacote que estava saindo pela xl0 não será
mais analisado pelas outras regras subseqüentes. O que acontece é que o
pacote agora está nas mãos do natd que irá reescrevelo de outra forma
(fazer o NAT) e *reinjetar* o pacote novamente, neste caso para saída
pela xl0. Novamente o IPFW iniciará a pesquisa, mas desta vez ele irá
iniciar na regra seguinte a regra do divert (o pacote que está saindo
reescrito não será enviado ao natd novamente).
Na verdade o que ocorre é que há um recebimento do pacote pelo sistema
e depois um envio (por parte do sistema) e esse envio está sujeito as
regras como qualquer outro pacote originando no seu gateway.
--
Giovanni P. Tirloni <gpt at tirloni.org>
Fingerprint: 8C3F BEC5 79BD 3E9B EDB8 72F4 16E8 BA5E D031 5C26
Mais detalhes sobre a lista de discussão freebsd