Hi Ivo,

thank you for providing more details. 

However, it is not clear from this description what UE should do if it has a 
data to be sent,
but it received no protected data for some perion of time. Section 2.4. of RFC 
7296 suggests that 
the IKEv2 implementation performs a Liveness Check in this case:

   If no
   cryptographically protected messages have been received on an IKE SA
   or any of its Child SAs recently, the system needs to perform a
   liveness check in order to prevent sending messages to a dead peer.

It is not clear how this text is supposed to align with 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK.
In other words - should UE in this situation perform a Liveness Check, ignoring 
the ePDG provided interval? Or should it ignore the possibility to send 
data to a dead peer and perform Liveness Checks only on the specified interval?

Regards,
Valery Smyslov.


  ----- Original Message ----- 
  From: Ivo Sedlacek 
  To: Tero Kivinen ; Paul Wouters 
  Cc: [email protected] ; [email protected] 
  Sent: Thursday, February 25, 2016 6:58 PM
  Subject: Re: [IPsec] IANA allocation of TIMEOUT_PERIOD_FOR_LIVENESS_CHECK


  Hello,

   

  In case you are interested in detailed procedures of the 3GPP specification, 
I have copied them at the end of this mail.

   

  > > I am confused. Is this a notify of the server to the client, or a 

  > > configuration item by the server instructing client behaviour?

  > 

  > It is notify from the server to client. I.e. client sends empty 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK in the CFG_REQUEST and 

  > server will send value in seconds inside its 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK in CFG_REPLY. I.e. the server asks client 

  > to use following livenss timeout period. 

   

  3GPP spec expects that if the client (User Equipment) supports the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK configuration attribute, then the client 
(User Equipment) *enforces* the timer value indicated in the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK configuration attribute in CFG_REPLY sent by 
server (Evolved Packet Data Gateway).

   

  I.e. it is an intruction, not a suggestion.

   

  It is supposed to work as follows:

   

     first request       --> IDi,

                             [N(INITIAL_CONTACT)],

                             [[N(HTTP_CERT_LOOKUP_SUPPORTED)], CERTREQ+],

                             [IDr],

                             [CP(CFG_REQUEST 
(*TIMEOUT_PERIOD_FOR_LIVENESS_CHECK with empty value*) )],

                             [N(IPCOMP_SUPPORTED)+],

                             [N(USE_TRANSPORT_MODE)],

                             [N(ESP_TFC_PADDING_NOT_SUPPORTED)],

                             [N(NON_FIRST_FRAGMENTS_ALSO)],

                             SA, TSi, TSr,

                             [V+][N+]

   

     first response      <-- IDr, [CERT+], AUTH,

                             EAP,

                             [V+][N+]

   

                       / --> EAP

     repeat 1..N times |

                       \ <-- EAP

   

     last request        --> AUTH

   

     last response       <-- AUTH,

                             [CP(CFG_REPLY(*TIMEOUT_PERIOD_FOR_LIVENESS_CHECK 
with a value selected by server*))],

                             [N(IPCOMP_SUPPORTED)],

                             [N(USE_TRANSPORT_MODE)],

                             [N(ESP_TFC_PADDING_NOT_SUPPORTED)],

                             [N(NON_FIRST_FRAGMENTS_ALSO)],

                             SA, TSi, TSr,

                             [N(ADDITIONAL_TS_POSSIBLE)],

                             [V+][N+]

   

   

  If the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK with a value selected by server is 
received as shown above, the client (user equipment) must perform the liveness 
check procedure with the timeout indicated by the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK configuration attribute.

   

   

  Detailed TS 24.302 client procedures related to the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute are:

  -------------

  7.2.2       Tunnel establishment
  7.2.2.1 Tunnel establishment accepted by the network
  .....

  The UE may support the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute as 
specified in subclause 8.2.4.2. If the UE supports the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute, the UE shall include the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute indicating support of receiving 
timeout period for liveness check in the CFG_REQUEST configuration payload. If 
the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute as specified in subclause 
8.2.4.2 indicating the timeout period for the liveness check is included in the 
CFG_REPLY configuration payload or if the UE has a pre-configured timeout 
period, the UE shall perform the tunnel liveness checks as described in 
subclause 7.2.2A.

  NOTE:      The timeout period for liveness check is pre-configured in the UE 
in implementation-specific way.

  .....

  7.2.2A    Liveness check
  If the UE supports the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute as 
specified in subclause 8.2.4.2 and the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK 
attribute as specified in subclause 8.2.4.2 was included in the CFG_REPLY 
configuration payload received in subclause 7.2.2 the UE shall set the timeout 
period for the liveness check to the value of the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute.

  If the UE does not support the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute as 
specified in subclause 8.2.4.2 or the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK 
attribute as specified in subclause 8.2.4.2 was not included in the CFG_REPLY 
configuration payload received in subclause 7.2.2 then the UE shall use the 
pre-configured value of the timeout period for liveness check.

  NOTE:      The timeout period is pre-configured in the UE in 
implementation-specific way.

  If the UE has not received any cryptographically protected IKEv2 or IPSec 
message for the duration of the timeout period for liveness check, the UE shall 
send an INFORMATIONAL request with no payloads as per IETF RFC 5996 [28]. If an 
INFORMATIONAL response is not received, the UE shall deem the IKEv2 security 
association to have failed.

  -------------

   

  Detailed TS 24.302 server procedures related to the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute are:

  -------------

  The ePDG shall proceed with IPsec tunnel setup completion and shall relay in 
the IKEv2 Configuration Payload (CFG_REPLY) of the final IKE_AUTH response 
message:

  ...

  -     The ePDG may include the TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute as 
specified in subclause 8.2.4.2 indicating the timeout period for liveness check 
in the CFG_REPLY configuration payload. Presence of the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute in the IKE_AUTH request can be used 
as input for decision on whether to include the 
TIMEOUT_PERIOD_FOR_LIVENESS_CHECK attribute.

  ...

  -------------

   

   

  Kind regards

   

  Ivo Sedlacek



------------------------------------------------------------------------------


  _______________________________________________
  IPsec mailing list
  [email protected]
  https://www.ietf.org/mailman/listinfo/ipsec
_______________________________________________
IPsec mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ipsec

Reply via email to