[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: I-D ACTION:draft-ietf-shim6-reach-detect-00.txt
On 15-jul-2005, at 21:14, Jari Arkko wrote:
There have been some discussions about positive versus negative
feedback. The first model doesn't have any use for negative feedback,
but needs positive feedback to reduce overhead. The second model has
little or no use for positive feedback, but may use negative feedback
to detect failures faster.
Can you explain why the first model wouldn't be able to use negative
feedback for faster failure detection? It seems like it could use a
trigger from TCP to send a probe earlier than it would otherwise
do it.
(The "first model" is the neighbor unreachability detection -like
one, the "second model" is one where the shim makes sure there is
always be bidirectional packet flow so packets flowing in just one
direction means there are problems.)
In the first model the idea is that upper layer protocols say "going
well, going well" so the shim knows it doesn't have to send probes to
see if everything still works. When the upper layer protocol stops
providing positive feedback, the upper layer protocol starts probing.
As I remarked earlier, in a binary system, not saying yes is the same
thing as saying no. So negative feedback is the same as lack of
positive feedback in this scenario.
Of course negative feedback would be a stronger signal than lack of
positive feedback, but I don't think the difference would matter
here, except maybe that lack of positive wouldn't necessarily imply
immediate action, but negative feedback would. But this can be solved
by sending a probe as soon as positive feedback stops and there are
still outgoing packets.
Also, the fact that everything still works can be detected fast,
while detecting that things don't work usually means some kind of
timeout, which takes longer.
To avoid exposing information (even if it's just the fact that an
address is reachable), hosts will probably want to limit
themselves to
taking part in reachability detection with known correspondents. This
means that there must be identifying information and a nonce that
is at
least hard to guess but easy to check in all reachability detection
packets.
This may need to be spelled out in more detail.
Yes, when the protocol becomes clear we need to look at this.
For instance,
when verifying reachability of the current address pair, "known
correspondent" probably means that (a) we have a shim6
"connection" to the peer and that (b) some secret information
from that connection is employed that makes at least blind
attacks from the internet impossible.
"Impossible" is a very high standard. We should be careful not to
impose very heavy security on an otherwise light-weight mechanism.
On the other hand, when
doing address state exploration, "known correspondent" has
to mean something else, as we may need to do address
exploration even for the initial connection -- or am I missing
something?
No, this is absolutely true. So we can't just leverage shim state to
reject reachability detection from undesired correspondents.
I think we talked about having a cookie or something like that in the
first packet of a new session. (Obviously this wouldn't apply to all
protocols.) The first packet is attractive for this because an
attacker with just sniffing capability can't inject a fake first
packet, and the chance an attacker was already active is slightly
smaller.
Since in most cases we'll be initiating shim state for existing
sessions, we already have return reachability here.
However, using negative feedback from upper
layer protocols may prove challenging because upper layers can't be
trusted to provide the right quality or quantity feedback ("feedback
spamming").
I guess this is arguable. You could also claim that the upper layers
are the place that really knows what the requirements for this
particular flow are.
I'm afraid that's exactly what some implementers are going to
think. :-)
"My protocol needs 100 ms failovers! So I need to send negative
feedback if I didn't hear from the other side when I don't hear an
ack within 50 ms. What, transatlantic links? No, most of my users use
the protocol on a LAN. They don't...?"
Even when a particular protocol does the right thing, when something
changes, we need to update all protocols. If the shim is in charge,
we only need to update the shim.
Iljitsch