[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: soft state (was Re: shim6 and bit errors in data packet headers
El 16/05/2005, a las 19:18, Erik Nordmark escribió:
marcelo bagnulo braun wrote:
agree with the point that conceptually these are different things.
However, i think that both verifications require a packet exchange,
that needs to be performed before sending packets using the involved
addresses.
I mean, for path exploration we need to verify that packets sent
using the address pair get to the destiantion
For flooding attack prevention, we need to verify that the node that
is located in the proposed target address is willing to receive the
packets of the existing communication. The only way to do this
AFAICS, is to send a packet to the new locator and see if the node
receiving packets sent to that address is willing to receive packets
of the communication. Can you think of alternative mechanisms to
perform flooding prevention that does not involve a packet exchange
to the new address?
Presumably they both need to exchange packets.
But that doesn't mean they flow in the same "directions" for the
locator pair testing and for the flooding attack prevention.
For instance, A might send packets to B (with B responding) to
discover that the A2<->B2 locator pair is working (in both
directions), followed by A telling B "please use locator pair <B2,
A2>".
At that point in time B hasn't actually verified that A is present at
locator A2, since B hasn't done a packet exchange that verifies this.
B needs to send a packet to A2, and expect A to send back the response
in order to prevent the 3rd party flooding.
right, good point.
but in the three way reachability test that is outlined in the faildet
draft, this exchange could be good for both purposes, right?
i mean, to verify reachability in both directions and flood prevention
in both sentences... i guess that for determining what is achieved in
the case of failure would require additional analysis
I mean, if we need to perform a packet exchange to explore
alternative paths and we also need a packet exchange in order to
prevent flooding, i guess it would be reasonable to do it in the same
packet exchange, in order to reduce the number of packets, agree?
If the packets are exchanged in the "right" direction, one can
presumably optimize this. But I'd prefer waiting with optimizations
until we have the pieces worked out.
Ok, i can live with that.
So conceptually we need three different mechanisms:
- reachability test for (unidirectional) path exploration
- flood prevention mechanism
- context loss detection mechanism
We can now try to understand what it takes for each one of them, and
eventually try to mingle them together later on.
So, the alternative would be to include the ULID in the reachability
test request instead of the context identifier?
Yes.
I think this could be an option to prevent flooding attacks, but i am
not sure what are the benefits of such approach.
The benefits is that you don't need to also worry all the different
combinations of reachability test outcome and context state present.
My head starts hurting if I try to do all of that at the same time.
:-)
ok, i guess that if we follow the dissection approach, we can first
identify which information is required for each of the three exchanges
above, and then, when trying to optimize by combining them, we can
determine which info needs to be kept in the packets.
However, it *might be* that a test mechanism which includes both the
ULID and the context tag(s) would be part of an optimization that can
minimize the number of messages. That allows the receiver to
distinguish between a test packet delivered to the wrong ULID (perhaps
a 3rd party DoS attempt, or a bit error in transit) and one delivered
to the correct ULID, but no context state which matches the context
tag.
right
Let me write down how this would look like in order to make sure that
we are on the same page:
node A with IPA1 and IPA2, node B with IPB1 and IPB2
node A is communicating with node B and a shim context is established
with ULIDs IPA1 and IPB1.
Node B includes IPB2 in the locator set available for that
communication.
Now, node A detects a failure and performs a reachability test to
explore alternative paths and perform flooding prevention.
The packet sent from A to B is a reachability test request that
contains the following information:
IP src: IPA1
IP dst: IPB2
Packet type: reachability test request
Additional info: IPB1 as ULID associated with IPB2
Now, when node B receives such packet, it can reply because it has
received it (the path is working) and both IPB1 and IPB2 belong to
him (no flooding threat)
Is something like this what you had in mind?
Yep
Agree that this is not clear, but from 30.000 meters it seems that:
- reachability tests may be performed quite often
Why so?
I think we can use the same host mechanism which avoids NUD probes to
avoid reachability tests (this mechanism is a positive advise
"everything is fine" from the transport layer to the IP layer).
For transports like TCP that is sufficient.
well, i guess that my perception is that ULP feedback is not so common,
and that it will be common to fall back in reachability test to verify
that the path is working...
Does current TCP usually implement this positive feedback for avoiding
NUD?
Regards, marcelo