[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: visibility of identifier in shim6 payload packet
[resent from last week]
On 1-aug-2006, at 20:40, Henderson, Thomas R wrote:
My understanding of the potential problem is as follows:
- there are multiple ways to implement IPsec: BITW, BITS, and native
- BITS and BITW operate below the IP layer. If these types of IPsec
implementations talk to each other, there should be no problem if the
SPD/SAD is defined on the basis of the locators.
Right. When hosts A and B communicate with A1/B1 there will be a
security association for that address pair, when they switch to A2/B2
or whatever, a new SA will be negotiated.
- there is also no problem if two native IPsec implementations talk to
each other using the ULIDs as the IPsec addresses, with both native
IPsec implementations above the shim6 layer
Right, in this case the IPsec header will already be present when the
shim sees the packet so all IPsec is done using the initially chosen
address pair (the ULIDs) regardless of what locator the packets end
up having in the IP header.
- there is a potential interoperability problem if a native (host)
implementation with SPD/SAD based on ULIDs tries to set up SAs with
BITS
or BITW implementations, which don't have visibility into the ULIDs.
What would happen in this case is that the initial shim negotiation
will use A1/B1 and that works for both ends. However, if A is the
native IPsec implementation and it detects a reachability problem it
will start probing A2/B2 without an IPsec header. B will try to
negotiate an SA for this but this will either confuse A or A will
accept and there will be a new A2/B2 SA. However, shim packets from A
to B won't use this SA, but shim packets from B to A will.
Presumably, B will have a policy that rejects the shim packets unless
they're protected, but A will not use IPsec towards B so B wont' see
A. A will most likely not process IPsec protected shim packets from B
because that would be the wrong IPsec/shim ordering, but of course it
could.
In any event, the return routability check will fail so the A2/B2
address pair will not be used.
So nothing bad will happen except a slight waste of time and packets.
One option to avoid this would be to reverse our original idea about
the layering of shim6 and IPsec and layer the shim above IPsec.
Another option would be to detect the situation where the layering is
different and either don't do the shim or have the native end reverse
its layering. We could do this in shim signalling but this requires
BIT* implementations to become aware of shim6. IMO, a better solution
would be to handle this in IKE. But then, I'm not involved in IPsec
so there could be tons of problems that I'm unaware of...