The following reply was made to PR kern/121743; it has been noted by GNATS.

From: Vadim Goncharov <[EMAIL PROTECTED]>
To: Alexander Zagrebin <[EMAIL PROTECTED]>
Cc: [EMAIL PROTECTED]
Subject: Re: kern/121743: ipfw in-kernel nat loses fragmented packets
Date: Mon, 17 Mar 2008 15:19:38 +0600

 Hi Alexander Zagrebin! 
 
 On Sat, 15 Mar 2008 18:47:03 GMT; Alexander Zagrebin <[EMAIL PROTECTED]> wrote:
 
 >>Fix:
 > --- sys/netinet/ip_fw2.c.orig   2008-02-28 11:28:09.000000000 +0300
 > +++ sys/netinet/ip_fw2.c        2008-03-15 18:41:52.000000000 +0300
 > @@ -3568,7 +3568,8 @@
 >                                 else
 >                                         retval = LibAliasOut(t->lib, c,
 >                                             MCLBYTES);
 > -                               if (retval != PKT_ALIAS_OK) {
 > +                               if (retval != PKT_ALIAS_OK &&
 > +                                   retval != 
 > PKT_ALIAS_FOUND_HEADER_FRAGMENT) {
 >                                         /* XXX - should i add some logging? 
 > */
 >                                         m_free(mcl);
 >                                 badnat:
 
 This is not so simple to fix as LibAlias API requires caller to save packet
 fragments somewhere and then at some time to feed them all back. And kernel
 infrastructure currently is not so suitable for that packet storage.
 
 As a workaround you can currently send packets with some ipfw rule before NAT
 to a divert socket on wich ng_ksocket listens and returns packets back with
 ng_echo (thus packets won't leave kernel), as divert sockets do packet
 reassembly.
 
 -- 
 WBR, Vadim Goncharov. ICQ#166852181       mailto:[EMAIL PROTECTED]
 [Moderator of RU.ANTI-ECOLOGY][FreeBSD][http://antigreen.org][LJ:/nuclight]
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ipfw
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to