From: Stefan Rompf <stefan@loplof.de>
To: David Miller <davem@davemloft.net>
Cc: herbert@gondor.apana.org.au, simon@fire.lp0.eu,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: sockets affected by IPsec always block (2.6.23)
Date: Fri, 7 Dec 2007 10:29:04 +0100 [thread overview]
Message-ID: <200712071029.05092.stefan@loplof.de> (raw)
In-Reply-To: <20071206.192030.170597084.davem@davemloft.net>
Am Freitag, 7. Dezember 2007 04:20 schrieb David Miller:
> If IPSEC takes a long time to resolve, and we don't block, the
> connect() can hard fail (we will just keep dropping the outgoing SYN
> packet send attempts, eventually hitting the retry limit) in cases
> where if we did block it would not fail (because we wouldn't send
> the first SYN until IPSEC resolved).
David - I'm aware of this, the discussion is which behaviour is ok. Let's go
back to a real life example. I've already researched that the squid web proxy
has a poll() based main loop doing nonblocking connects, may be with multiple
threads.
Situation: One user wants to access a web page that needs IPSEC. The SA takes
30 seconds to come up.
a) Non-blocking connect is respected: SYN packets during the first 30 seconds
will be dropped as you said. Connection can be completed on the next SYN
retry (timeout in linux: 3 minutes). During this time, the 500 other users
can continue to browse using the proxy.
b) Non-blocking connect is ignored during IPSEC resolving as you advocate it:
Connection for the one user can be completed immediatly after IPSEC comes up.
That's the pro. However, until then, the other 500 proxy user CANNOT ACCESS
THE WEB because squid's threads are stuck in connect()s on sockets they
configured not to block. If the IPSEC SA never resolves due to some network
outage, squid will sleep forever or until an admin configures it that it
doesn't try to connect the adress in question and restarts it.
Don't you realize how broken this behaviour is? Can you give me ONE example of
an application that works better with b) and why this outweights the problems
it creates for everybody else?
Even the DNS example you posted in
<20071204.231200.117152338.davem@davemloft.net> is wrong because the second
server will never queried if the kernel puts the process into coma while the
IPSEC SA to the first server cannot be resolved.
Stefan
next prev parent reply other threads:[~2007-12-07 9:29 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-04 18:53 sockets affected by IPsec always block (2.6.23) Simon Arlott
2007-12-05 0:12 ` Herbert Xu
2007-12-05 6:30 ` David Miller
2007-12-05 6:51 ` Herbert Xu
2007-12-05 7:12 ` David Miller
2007-12-05 7:16 ` Herbert Xu
2007-12-05 7:34 ` David Miller
2007-12-05 7:39 ` Herbert Xu
2007-12-05 9:55 ` David Miller
2007-12-05 9:57 ` Herbert Xu
2007-12-05 18:42 ` Stefan Rompf
2007-12-05 18:39 ` Stefan Rompf
2007-12-06 2:25 ` David Miller
2007-12-06 8:49 ` Stefan Rompf
2007-12-06 8:53 ` David Miller
2007-12-06 10:56 ` Stefan Rompf
2007-12-06 11:13 ` David Miller
2007-12-06 11:35 ` Stefan Rompf
2007-12-06 11:39 ` David Miller
2007-12-06 12:30 ` Stefan Rompf
2007-12-06 13:55 ` David Miller
2007-12-06 14:31 ` Stefan Rompf
2007-12-07 3:20 ` David Miller
2007-12-07 9:29 ` Stefan Rompf [this message]
2007-12-16 22:47 ` Bill Davidsen
2007-12-16 23:22 ` David Miller
2007-12-05 6:06 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200712071029.05092.stefan@loplof.de \
--to=stefan@loplof.de \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=simon@fire.lp0.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).