TCP packets remain unsent
Ian Smith
smithi at nimnet.asn.au
Sat Mar 29 17:12:48 UTC 2014
On Sat, 29 Mar 2014 15:02:29 +0100, Willy Offermans wrote:
> Dear FreeBSD friends,
>
> On Fri, Mar 28, 2014 at 05:25:54PM +0100, Willy Offermans wrote:
> > Dear FreeBSD friends,
> >
> > I have a problem with my relatively new FreeBSD server. I came across the
> > problem when sending e-mails of larger size and copying files with scp.
> > The e-mails were not sent out because of time-out error and the copying was
> > extremely slow, though successful after a while. I already started a thread
> > on this topic on freebsd-current. See
> > http://docs.freebsd.org/mail/current/freebsd-current.html, topic
> > sendmail Broken Pipe Error. I got some help to narrow down the
> > error: Sending out e-mails of larger size stops at some point. TCP packets
> > were not transferred to the smarthost causing a timeout error. There were
> > still some TCP packets waiting to be sent.
> >
> > My system is a HP ProLiant Gen8 MicroServer with FreeBSD 10.0-STABLE #0
> > r261266M. The server has two network cards:
[..]
> > Before the time out error occurs, the CPU loading of natd and dhcpd is
> > steadily increasing to extreme values to my opinion:
> >
> > PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
> >
> > 1235 root 1 93 0 28908K 2144K RUN 0 54:05 71.78% natd
> > 1614 dhcpd 1 4 0 26784K 14936K RUN 0 29:24 38.77% dhcpd
[..]
> I could narrow down the cause of the error:
>
> If I remove the following line from my firewall rules, I could sent out
> e-mails without issues.
>
> /sbin/ipfw add 50 divert natd all from any to any via bge0
>
> I do not know yet how things are related, but I will dig into it.
>
> If someone has a hint, please respond to the list.
Is your system running IPv6? Sendmail will prefer using ip6 if enabled.
You need to use 'ip4' rather than 'all' with divert; natd (and I assume,
ipfw nat?) doesn't like ip6 packets being sent its way.
Also, ipfw nat and natd both use libalias(3) which doesn't work with
TSO; check that's turned off with ifconfig. See ipfw(8) /BUGS section.
Just guesswork, Ian
More information about the freebsd-stable
mailing list