On Fri, 07 Mar 2003, Daniel Hartmeier wrote:

> Your ruleset looks fine, that's exactly how it should work (rdr on
> external, nat on internal, scrub on both).

That's good to know.  Would "scrub in all" work just as well as "scrub
in on {$ExtIf, $IntIf} all fragment reassemble"?

> It must be somehow related to the fragmentation. For some reason, the pf
> box is not reassembling the fragments. To determine the reason, can you
> 
>   a) enable debug logging with pfctl -x m, and check /var/log/messages
>      for entries related to pf fragment reassembly? Ideally, quote all
>      lines related to one packet's fragments being reassembled.

A few of these lines were repeated in /var/log/messages.  Here they are
without the repeats.

pf_normalize_ip: IP_DF
pf_normalize_ip: dropping bad fragment
Mar  7 15:20:02 reflect /bsd: pf_normalize_ip: IP_DF
Mar  7 15:20:02 reflect /bsd: pf_normalize_ip: dropping bad fragment

> 
>   b) get a tcpdump -nvvvXSpi $IntIF output from the pf box for all
>      fragments of a single packet.
> 
> One possible explanation would be if the fragments have the DF (don't
> fragment) flag set. 

Indeed, it does.  I took a look at the tcpdump and the fragments do have
the DF flag set.  

> pf, prior to -current as of a few weeks ago, drops
> them unconditionally. If that's the problem, you could try a snapshot
> (which is stable, now that we approach 3.3-release). If not, hopefully
> the additional output from above shows something.

Excellent.  Thank you for the help.  I'll try -current and see how that
turns out.  If it's still a problem, I'll include the dumped packets,
but I think you found the issue.

Thanks again,
pete

Reply via email to