On Tue, 18 Apr 2006, Victor Duchovni wrote:
On Tue, Apr 18, 2006 at 11:17:30AM +0100, John Line wrote:
We've been using IP Filter V3.4.31 on Solaris 9 (SPARC, 64-bit; compiled
with Sun's C compiler) for a year or two on some of our servers, and it was
working fine except for an obscure problem [1] that came to light fairly
recently, which prompted me to try a current version to see if that would
cure the problem.
3.4.3x gets TCP window scaling wrong, FTP servers and clients tend
to set large socket buffers, when these exceed 64k, window scaling is
typically negotiated. The patch below is for 3.4.35. If you are
willing to try 3.4.3x, it may as well be the most up-to-date version
(3.4.35 + this patch).
...
I apologise for the long silence since my original message and the above
reply. Thank you very much for explaining the original (v3) problem, that
prompted me to try upgrading. That certainly sounds very much like the
explanation for my hanging uploads.
However, I've already upgraded one system to V4 - which also cured the
problem - it presumably includes the patch or equivalent changes - so
that unless there are good reasons for sticking with V3 rather than
upgrading to V4 (4.1.13 is what I used) on Solaris 9 (SPARC), I'd prefer
to upgrade the others to V4 as well.
But that then brings us back to the new/different problem which I
encountered with FTP and V4, and I've not seen any comments on that.
Passive FTP connections (from the Sun server running IP Filter) to a Mac
running the NetPresenz FTP server worked fine with the old V3 IP Filter,
but after I upgraded to V4 failed consistently (when using a mirroring
script to synchronise an existing local mirror with the FTP server's
content).
The initial phase of the script's operation (collecting directory listings
for comparison with the existing local files) failed when it reached a
particular directory, although a manual FTP connection looking only at
that directory worked as expected.
The failure appeared to be at or near the 32nd directory listing, which
(being a power of 2, hence potentially "special") made me wonder whether
there was a limit at one end or the other on the number of ports that
could be used for FTP data connections, with the FTP server being the
likely candidate.
However, it had worked just fine with IP Filter V3 and the FTP server was
unchanged (and it still works with V3 using a different system as FTP
client), so I can't see why the script should suddenly start hitting such
a limit (if, in reality, there is a limit) in the FTP server, unless it
was marginal before (e.g. due to the mandatory timeouts before ports can
be reused) and V4's allowing it to run consistently faster by enough to
trigger the problem. Maybe possible, but my "gut feeling" is that it seems
unlikely to be the explanation. The FTP server log file only records that
the connection was aborted, not why.
That leaves me wondering why the FTP problem has arisen - it can be worked
around by using active FTP, but it ought to "just work" with passive - and
without any clues to which end is at fault, it leaves me unsure whether to
upgrade the remaining Sun servers to IP V4 or if I should stick with V3
(at which point the patch suggested above might become relevant), or if
it's safe to upgrade to V4 on the other Sun servers.
I'd be very grateful for any suggested plausible/likely explanations of
the observed oddity (especially if they'd point to it being an FTP server
issue, rather than IP Filter!). Alternatively, if V4's being used widely
on Solaris 9 systems without any apparent problems, it would be reassuring
to know that.
John Line
--
John Line - web & news development, University of Cambridge Computing Service