Greetings,

My apologies to those who may have encountered this request on 'openbsd-misc'.

Our obsd border router has worked for years with our PF ruleset, but sometime
in the middle of January, we discovered that our webpages were stalling when
viewed 'externally' (from remote Internet clients) but not internally; the
webserver is a box on the 10.0.0.0/24 internal LAN that is accessed externally
through a 'pf' rdr rule.  Stalls only happen if our 'redirected' webserver
is a Solaris 2.6 box (using either of two different httpds), but if we redirect
http traffic to an SVR4 box, there is no problem.  Capturing traffic on the
internal LAN and on the 'external' interface of the obsd border router shows
'pf' dropping outgoing traffic from the webserver after a few data blocks have
been sent. The webserver continues to send data while awaiting acks that it
never gets, and completes the GET request (so it records a '200' in its logs).

Note that the obsd router has three ethernet interfaces; one serves the main
internal lan, another serves a restricted wireless lan, and the third connects
to a Speedstream 5861 ADSL router to the 'Net.  Workstations on the wireless
segment do not experience stalls on http connections (the 'pf' rules for
this segment are more restrictive). Only remote connections from the Internet
get http stalls.  Timeouts are on the order of 24 hours, so essentially they
are permanent.

I have tried all of the suggestions from archived mailing list posts without
success, including proper 'keep state' and 'flags S/SA' filter rules, adjusting
MTUs and MSSs (one poster reported that his combination of obsd and Speedstream
5861 ADSL router required certain max-mss adjustments -- could have applied to
us), and scrub rule changes didn't help.  FWIW, we had _no_ keep state
rules for years when everything worked, but of course state is implicit on
NAT rules.

From a remote Internet host, a 'telnet 80' session to our webserver and GET of
an 8500 byte html page produced the 'tcpdump' captures (one on the internal
interface, one on the external interface) and 'pf' debug logs which can be
downloaded here:

   ftp://ftp.cybertheque.org/pub/pf-debug/

I would really appreciate some assistance in doing the arithmetic to analyze
the state errors and also some insight and suggestions for remedies.  Needless
to say my version of obsd is not recent, and I don't currently have the option
to update it due to the mix of custom code and hardware in use (a major project
for later). However, I have been successful backporting features and fixes into
this kernel for quite awhile.

A recent poster on 'openbsd-misc' reported some PF/NAT issues and later said
essentially 'never mind -- hardware issue'; I have no evidence of NIC or CPU
issues but wonder if this recent dramatic change in behavior could be hardware
related.

Much thanks for any help,

Michael

Reply via email to