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