Do we need text about failing RR
Tero Kivinen <[email protected]> Fri, 28 Oct 2005 16:50:14 +0300
| Newsgroups | gmane.ietf.mobike |
|---|---|
| Message-ID | <[email protected]> |
The current document is missing text what happens if the return
routability check fails.
Should we add some text about that?
If there it is genuine attack then we of course want to tear down the
IKE SA (i.e. we do not get any reply back for the RR at all).
The problem is that this might cause IKE SA to teared down even when
there is no attack in case the selected link goes down before the RR
but after the update.
I.e the case is like this:
Initiator Responder
--------- ---------
Currently using IP_I1 and IP_R1
for traffic
Send address update
(IP_I2:500 -> IP_R1:500)
HDR, SK { N(UPDATE_SA_ADDRESSES) } -->
Responder processes the
request and send ACK.
<-- (IP_R1:500 -> IP_I2:500)
HDR, SK { }
Initiator updates the IPsec SAs
to IP_I2, IP_R1.
Link between IP_I2 and
IP_R1 breaks down.
Responder starts DPD
lost <-- (IP_R1:500 -> IP_I2:500)
HDR, SK { N(COOKIE2) }
lost <-- (IP_R1:500 -> IP_I2:500)
HDR, SK { N(COOKIE2) }
lost <-- (IP_R1:500 -> IP_I2:500)
HDR, SK { N(COOKIE2) }
The inititor will not
see those return routability
packets.
The IPsec traffic is still
going through from responder
to initiator, as it uses old
IP_R1 and IP_I1 addresses
(they are not yet updated as
the RR has not finished yet).
<-- (IP_R1 -> IP_I1)
ESP packet
Data from initiator to the
responder does not go through
as he is using new IP addresses
(IP_I2 -> IP_R1)
ESP packet --> lost
<-- (IP_R1 -> IP_I1)
ESP packet
Initiator will still see packets
coming from the responder but
to the old address.
Now the Initiator needs to understand that even if he is getting
packets in, he should start DPD in case those packets are coming from
the different address than where they should be coming. This is not
mentioned in the document now. If initiator does that, this will fix
the situation.
Responder is still doing RR.
lost <-- (IP_R1:500 -> IP_I2:500)
HDR, SK { N(COOKIE2) }
Initiator notices that is not
getting any trafic to the address
pair where he is sending traffic,
and decides to start DPD.
(IP_I2:500 -> IP_R1:500)
HDR, SK { } --> lost
(IP_I2:500 -> IP_R1:500)
HDR, SK { } --> lost
(IP_I2:500 -> IP_R1:500)
HDR, SK { } --> lost
Initiator notices it is not getting
data back, thus tries other addresses
(IP_I1:500 -> IP_R1:500)
HDR, SK { } -->
Responder will get get that
and reply to it.
<-- (IP_R1:500 -> IP_I1:500)
HDR, SK { }
Initiator detects that IP_I2,
IP_R1 address pair is not working
and switches to the working IP_I1,
IP_R1 address pair.
(IP_I1:500 -> IP_R1:500)
HDR, SK { N(UPDATE_SA_ADDRESSES) } -->
Responder processes the
request and send ACK.
<-- (IP_R1:500 -> IP_I2:500)
HDR, SK { }
Responder retransmits the old
ongoing RR to the new updated
address.
<-- (IP_R1:500 -> IP_I1:500)
HDR, SK { N(COOKIE2) }
Initiator respondeds to RR.
(IP_I1:500 -> IP_R1:500)
HDR, SK { N(COOKIE2) } -->
Responder gets ack to RR, but
notices that address has
changed since it was started,
so he need to restart the RR
<-- (IP_R1:500 -> IP_I1:500)
HDR, SK { N(COOKIE2') }
Initiator respondeds to new RR.
(IP_I1:500 -> IP_R1:500)
HDR, SK { N(COOKIE2') } -->
Responder is now happy, and
will update the IPsec SAs to
the IP_R1, IP_I2 address pair
(or actually they are already
there, as it never got them
changed, but they might have
moved to some new address).
So we probably want to say something about this, as it do require the
initiator to understand that even when it is getting ESP packets in it
might need to start DPD in case the IP addresses of the ESP packets
are different from what he thinks they should be.
--
[email protected]