Network Working Group                                         L. Dondeti
Internet-Draft                                              V. Narayanan
Intended status: Standards Track                          QUALCOMM, Inc.
Expires: August 29, 2007                               February 25, 2007


             IPsec Gateway Failover and Redundancy Protocol
                  draft-dondeti-ipsec-failover-sol-00

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on August 29, 2007.

Copyright Notice

   Copyright (C) The IETF Trust (2007).

Abstract

   IPsec gateways and servers maintaining SAs with large number of
   clients can quickly recover from failover using the protocols and
   procedures specified in this document.  These techniques also
   facilitate IPsec clients to move from one gateway to another and
   resume operation without having to rerun IKEv2.  The idea is to
   maintain IKEv2 and IPsec SA state at either the client or one or more
   backup servers to reduce the communication and computation overhead
   associated with reestablishing the SAs from scratch.  Client to



Dondeti & Narayanan      Expires August 29, 2007                [Page 1]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   server SA state storage retrieval mechanisms and client-initiated or
   server-initiated failover recovery protocols are specified.  This
   document, however, does not define an inter-gateway transport
   mechanism to transfer the state across entities at the backend.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   3.  Usage Scenarios  . . . . . . . . . . . . . . . . . . . . . . .  5
     3.1.  Recovering from a Remote Access Gateway Failover . . . . .  5
     3.2.  Recovering from an Application Server Failover . . . . . .  7
   4.  IKEv2 Session Resumption Protocol Details  . . . . . . . . . .  8
     4.1.  Capability Negotiation and State Transfer  . . . . . . . .  8
       4.1.1.  Extensions to the IKE_INIT_SA message  . . . . . . . .  9
       4.1.2.  Extensions to the IKE_AUTH Exchange  . . . . . . . . .  9
       4.1.3.  Capability Negotiation and State Transfer via an
               Informational Exchange . . . . . . . . . . . . . . . . 11
       4.1.4.  IKEv2 Ticket . . . . . . . . . . . . . . . . . . . . . 12
     4.2.  IKEv2 Session Resumption . . . . . . . . . . . . . . . . . 13
       4.2.1.  IKE_SESSION_RESUME Exchange  . . . . . . . . . . . . . 14
       4.2.2.  Replay Protection of Session Resumption Exchange . . . 15
       4.2.3.  Processing IKE_SESSION_RESUME messages . . . . . . . . 16
   5.  Message Types and Formats  . . . . . . . . . . . . . . . . . . 18
     5.1.  IKEv2 Header with Gateway Switch Count . . . . . . . . . . 18
     5.2.  SESSION_RESUMPTION_SUPPORTED Notify Message Type . . . . . 19
     5.3.  Other Payload Specifications . . . . . . . . . . . . . . . 19
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 19
     6.1.  Properties of the Secure Domain  . . . . . . . . . . . . . 20
     6.2.  Properties of Capability Negotiation . . . . . . . . . . . 20
     6.3.  Properties of SA Ticket Creation, Distribution and Use . . 21
     6.4.  Properties of the Session Resumption Protocol  . . . . . . 22
   7.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 22
   8.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 23
   9.  Normative References . . . . . . . . . . . . . . . . . . . . . 23
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 23
   Intellectual Property and Copyright Statements . . . . . . . . . . 25













Dondeti & Narayanan      Expires August 29, 2007                [Page 2]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


1.  Introduction

   Recovering from failure of IPsec gateways or servers maintaining SAs
   with large numbers of clients may take several minutes, if they need
   to re-establish the IPsec SAs by re-running the key management
   protocol, IKEv2.  A similar problem arises in the event of a network
   outage resulting in the failure of several gateways and servers.  The
   computational and communication latency in running IKEv2 or IKEv2
   with EAP for client authentication is significant, leading to a need
   for a faster and yet secure failover solution.  The problem statement
   and goals for a failover solution are described in [1].

   When an IPsec gateway fails or otherwise unreachable for a client,
   the situation may be temporary or long lasting.  The client should be
   able to recover in either scenario.  In other words, the client may
   go back to the original gateway or alternatively, it may go to
   another gateway to re-establish the session.  The new gateway needs
   access to the IKEv2 SA that the client and the old gateway
   established with each other.  The new gateway may acquire the SA from
   the old gateway or another infrastructure entity where the old
   gateway has stored the SA.  The only other possibility for SA storage
   and retrieval is for the old gateway to store the SA at the client
   itself in the form of a "ticket."  The client then presents the
   ticket to the new or the old gateway.  To facilitate such SA storage
   and retrieval, the gateways must share security associations between
   themselves or with an infrastructure entity.

   For convenience we call gateways that share a security association
   with each other either directly or through another entity, as
   belonging to a secure domain.  When the SA state is stored at the
   client, the infrastructure is "stateless" until the client restores
   the SA with one of the gateways within the secure domain; thus, we
   refer to SA resumption with SA storage at the client as stateless
   session resumption.  When the infrastructure maintains SA state, we
   refer to the process as stateful session resumption.

   We identify three components to an efficient failover solution:

      In the first part, the client and the gateway negotiate failover
      support.  More specifically, the client indicates supports for
      failover and any related capabilities.  The gateway verifies its
      policy and may accept or reject support for failover for the
      client; if it accepts the request, it indicates its own
      capabilities in supporting the failover.  The gateway may include
      a list of backup gateways in its response; when the gateway does
      not return a list of alternative gateways, the clients are
      expected to discover the backup gateways or servers through a
      mechanism external to IPsec key management.  Capability



Dondeti & Narayanan      Expires August 29, 2007                [Page 3]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


      negotiation can be piggybacked on the IKE_AUTH exchange.  The
      client indicates whether it supports failover in the IKE_AUTH
      request message via a notify payload; the gateway indicates
      whether it supports failover for that client and may send a list
      of other gateways in the secure domain, all via notify payloads in
      the IKE_AUTH response message.

      In the second part, the gateway creates a ticket and stores it in
      the infrastructure or supplies it to the client, if the client had
      indicated support for it and the gateway's policy allows storing
      state in the client for that particular client.  The gateway may
      send the ticket via a notify payload included in the IKE_AUTH
      response message.

      The third part is session re-establishment itself: When a client
      discovers that it cannot reach a gateway or application server
      with which it has an IPsec SA, it attempts to reach another
      gateway within the same secure domain as the initial gateway.  In
      other cases, the client may have gone dormant and could be
      resuming the session with the original gateway.  For session re-
      establishment, we specify a new IKE exchange, IKE_SESSION_RESUME,
      which is quite similar to CREATE_CHILD_SA in many ways, but with
      some crucial differences also.  In simple terms, processing
      IKE_SESSION_RESUME request is a cross between processing
      IKE_SA_INIT and CREATE_CHILD_SA.  For the scope of this work, it
      is assumed that the gateways in the secure domain do not share the
      same IP address and may not share the same view of the network,
      i.e., they may be connected to different DHCP servers.  Thus, the
      client may need to acquire a new IP address upon reestablishing an
      IKE session with a new gateway.  It is assumed that in this case,
      the original IKEv2 exchange used the Configuration Payload to
      acquire configuration information.

   Note that it is plausible to run the capability negotiation and
   ticket request/response via a information exchange after the SA has
   been established.  Another possibility is to piggyback the
   negotiation and ticket request/response on a CREATE_CHILD_SA
   exchange.


2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [2].

   This document uses terminology defined in [3], [4], and [5].  In
   addition, this document uses the following terms:



Dondeti & Narayanan      Expires August 29, 2007                [Page 4]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   Secure domain:  A secure domain comprises a set of gateways that are
      able to resume an IKEv2 session that may have been established any
      other gateway within the domain.  All the gateways in the secure
      domain are expected to share a security association -- either with
      each other or through a trusted third party -- so they can verify
      the validity of the ticket and can extract the IKEv2 policy and
      session key material from the ticket.

   IKEv2 ticket:  An IKEv2 ticket is a data structure that contains all
      the necessary information that allows any gateway within the same
      secure domain as the gateway that created the ticket to verify the
      validity of the ticket and extract IKEv2 policy and session keys
      to re-establish an IKEv2 session.

   Stateless failover:  When the IKEv2 session state is stored at the
      client, the infrastructure is "stateless" until the client
      restores the SA with one of the gateways within the secure domain;
      thus, we refer to SA resumption with SA storage at the client as
      stateless session resumption.

   Stateful failover:  When the infrastructure maintains IKEv2 session
      state, we refer to the process of IKEv2 SA re-establishment as
      stateful session resumption.


3.  Usage Scenarios

   This specification envisions two usage scenarios for efficient IKEv2
   and IPsec SA session re-establishment: The first is similar to the
   use case specified in Section 1.1.3 of the IKEv2 specification [4],
   where IPsec tunnel mode is to establish a secure channel between a
   remote access client and a gateway; the traffic flow may be between
   the client and entities beyond the gateway.  The second use case is
   somewhat different from any of the use cases defined in the IKEv2
   specification: at the IP layer, two endpoints use transport (or
   tunnel) mode to communicate between themselves.  The two endpoints
   have a client-server relationship with respect to a protocol that
   runs using the protections afforded by the IPsec SA.

3.1.  Recovering from a Remote Access Gateway Failover











Dondeti & Narayanan      Expires August 29, 2007                [Page 5]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


    (a)

    +-+-+-+-+-+                          +-+-+-+-+-+
    !         !      IKEv2/IKEv2-EAP     !         !     Protected
    ! Remote  !<------------------------>! Remote  !     Subnet
    ! Access  !                          ! Access  !<--- and/or
    ! Client  !<------------------------>! Gateway !     Internet
    !         !      IPsec tunnel        !         !
    +-+-+-+-+-+                          +-+-+-+-+-+


    (b)

    +-+-+-+-+-+                          +-+-+-+-+-+
    !         !    IKE_SESSION_RESUME    !         !
    ! Remote  !<------------------------>! New/Old !
    ! Access  !                          ! Gateway !
    ! Client  !<------------------------>!         !
    !         !      IPsec tunnel        !         !
    +-+-+-+-+-+                          +-+-+-+-+-+



                  Figure 1: Remote Access Gateway Failure

   In this scenario, an endhost (an entity with a host implementation of
   IPsec [3] ) establishes a tunnel mode IPsec SA with a gateway in a
   remote network using IKEv2.  The endhost in this scenario is
   sometimes referred to as a remote access client.  When the remote
   gateway fails, all the clients associated with the gateway either
   need to re-establish IKEv2 sessions with another gateway within the
   same secure domain of the original gateway, or with the original
   gateway if the server is back online soon.

   The clients may choose to establish IPsec SAs using a full IKEv2
   exchange or the IKE_SESSION_RESUME exchange (shown in Figure 1).

   In this scenario, the client needs to get an IP address from the
   remote network so that traffic can be encapsulated by the remote
   access gateway before reaching the client.  In the initial exchange,
   the gateway may acquire IP addresses from the address pool of a local
   DHCP server.  The new gateway that a client gets associated may not
   receive addresses from the same address pool.  Thus, the session
   resumption protocol needs to be able to support for new IP address
   assignment.






Dondeti & Narayanan      Expires August 29, 2007                [Page 6]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


3.2.  Recovering from an Application Server Failover


     (a)

    +-+-+-+-+-+                          +-+-+-+-+-+
    !   App.  !      IKEv2/IKEv2-EAP     !   App.  !
    !  Client !<------------------------>!  Server !
    !    &    !                          !    &    !
    !  IPsec  !<------------------------>!  IPsec  !
    !   host  !  IPsec transport/        !   host  !
    +-+-+-+-+-+        tunnel mode SA    +-+-+-+-+-+


    (b)

    +-+-+-+-+-+                          +-+-+-+-+-+
    !   App.  !    IKE_SESSION_RESUME    !   New   !
    !  Client !<------------------------>!  Server !
    !    &    !                          !    &    !
    !  IPsec  !<------------------------>!  IPsec  !
    !   host  !  IPsec transport/        !   host  !
    +-+-+-+-+-+        tunnel mode SA    +-+-+-+-+-+


                   Figure 2: Application Server Failover

   The second usage scenario is as follows: two entities with IPsec host
   implementations establish an IPsec transport or tunnel mode SA
   between themselves; this is similar to the model described in Section
   1.1.2. of [4].  At the application level, one of the entities is
   always the client and the other is a server.  From that view point,
   the IKEv2 exchange is always initiated by the client.  This allows
   the Initiator (the client) to authenticate itself using EAP, as long
   as the Responder (or the application server) allows it.

   If the application server fails, the client may find other servers
   within the same secure domain for service continuity.  It may use a
   full IKEv2 exchange or the IKE_SESSION_RESUME exchange to re-
   establish the IPsec SAs for secure communication required by the
   application layer signaling.

   The client-server relationship at the application layer ensures that
   one of the entities in this usage scenario is unambiguously always
   the Initiator and the other the Responder.  This role determination
   also allows the Initiator to request an address in the Responder's
   network using the Configuration Payload mechanism of the IKEv2
   protocol.  If the client has thus received an address during the



Dondeti & Narayanan      Expires August 29, 2007                [Page 7]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   initial IKEv2 exchange, when it associates with a new server upon
   failure of the original server, it needs to request an address,
   specifying its assigned address.  The server may allow the client to
   use the original address or if it is not permitted to use that
   address, assigns a new address.


4.  IKEv2 Session Resumption Protocol Details

   The IKEv2 session resumption protocol specified in this document has
   three components: capability negotiation, state transfer, and session
   resumption.  Capability negotiation and state transfer are extensions
   to the IKEv2 base exchange.  IKE_SESSION_RESUME exchange is new; it
   is modelled after the CREATE_CHILD_SA, but looks slightly different
   in transit and has different processing semantics.  It does share a
   majority of the structure, format and processing semantics of the
   CREATE_CHILD_SA exchange, but also has some fundamental differences.

4.1.  Capability Negotiation and State Transfer

   IKEv2 session resumption capabilities -- whether the client and
   server support session resumption, whether the client needs the
   gateway list and whether the client can store state-- are negotiated
   via notify payloads.  The Initiator uses a notify payload to indicate
   what it supports and what it needs: for session resumption, the
   client MUST send a notify payload of type
   SESSION_RESUMPTION_SUPPORTED.  The notification data filed of this
   type of notify payload defines two flags: the Initiator may indicate
   support for client side state storage (in other words, request an
   IKEv2 ticket) setting the flag CLIENT_SIDE_STORAGE_SUPPORTED and may
   request the list of backup gateways from the Responder, by setting
   the flag CLIENT_REQUEST_GW_LIST.

   The Responder processes the notify payload and if it supports session
   resumption for the client in question, then it returns a notify
   payload of type SESSION_RESUMPTION_SUPPORTED.  In addition, if the
   Initiator request a list of gateways, the Responder SHOULD send a
   notify payload of type ALT_GW_LIST, with a list of gateway addresses
   belonging to the same secure domain.  Finally, if the Responder
   supports client side state storage, it sends a ticket via a notify
   payload of type IKEv2_TICKET.

   Capability negotiation can be piggybacked on the IKE_SA_INIT, the
   IKE_AUTH or an Informational exchange after the base exchange is
   complete.  Session state transfer cannot occur until mutual
   authentication and IKE SA establishment is complete.  Thus, session
   state transfer can be piggybacked on the IKE_AUTH exchange or an
   Informational exchange after the base exchange is complete.



Dondeti & Narayanan      Expires August 29, 2007                [Page 8]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


4.1.1.  Extensions to the IKE_INIT_SA message

   The initiator indicates support for session resumption by including
   the Notify payload of type SESSION_RESUMPTION_SUPPORTED in the
   IKE_INIT_SA request message.  If the responder does not support such
   a capability, it MUST ignore the session resumption notify payload.
   A responder that supports failover and is willing to offer that
   support to the client MUST return a notify payload of type
   SESSION_RESUMPTION_SUPPORTED in the IKE_INIT_SA response message.  If
   the Initiator sets the flag CLIENT_REQUEST_GW_LIST, the responder
   typically returns a list of gateways in a separate notify payload, of
   type ALT_GW_LIST.

   Implementations support session transfer MAY support extensions to
   the IKE_INIT_SA messages.  If the responder does not respond to
   capability negotiation during the IKE_INIT_SA exchange, the initiator
   may choose to try again during the IKE_AUTH exchange.

   The capability negotiation is authenticated as part of the mutual
   authentication processes during the IKE_AUTH exchange.

   If the Initiator sets the flag CLIENT_SIDE_STORAGE_SUPPORTED, the
   Responder may send the state via a notify payload of type
   IKEv2_TICKET as part of the subsequent IKE_AUTH exchange.  See
   Section 4.1.2 for additional details.


    Initiator                          Responder
   -----------                        -----------
   HDR, SAi1, KEi, Ni,
   N(SESSION_RESUMPTION_SUPPORTED) -->

                        <--    HDR, SAr1, KEr, Nr, [CERTREQ],
                               N(SESSION_RESUMPTION_SUPPORTED)


             Figure 3: Piggybacking over IKE_INIT_SA messages

4.1.2.  Extensions to the IKE_AUTH Exchange

   Capability negotiation and the state transfer can together be
   piggybacked on the IKE_AUTH exchange, in the 4-message version or the
   version where EAP is used for client authentication.  The ticket can
   in fact be sent in the clear -- more on that later -- but it is
   simpler to include it within the SK payload of the IKE_AUTH message
   and that allows us to make minimal modifications to the IKE_AUTH
   message processing semantics.




Dondeti & Narayanan      Expires August 29, 2007                [Page 9]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   If the Initiator supports ticket storage, it is RECOMMENDED that the
   IKE_AUTH exchange be used for capability negotiation and state
   transfer.

   The capability negotiation and state transfer semantics are as
   specified in Section Section 4.1.1.  The exchange is protected by the
   MAC in the IKE_AUTH exchange.  Note that when the capability exchange
   is piggybacked on the IKE_SA_INIT exchange the protection afforded to
   the negotiation is the same as that afforded to the IKE SA parameter
   negotiation and when it is piggybacked on the IKE_AUTH exchange, the
   protections afforded are the same as that to the Child SA parameter
   negotiation.


 Initiator                                 Responder
-----------                               -----------
HDR, SK {IDi, [CERT,] [CERTREQ,] [IDr,]
AUTH, SAi2, TSi, TSr,
[N(SESSION_RESUMPTION_SUPPORTED)]}  -->

                            <--    HDR, SK {IDr, [CERT,] AUTH, SAr2, TSi
                                   TSr, [N(SESSION_RESUMPTION_SUPPORTED),
                                         N(IKEv2_TICKET)]}


             Figure 4: Piggybacking over the IKE_AUTH Exchange

























Dondeti & Narayanan      Expires August 29, 2007               [Page 10]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


    Initiator                          Responder
   -----------                        -----------
   HDR, SAi1, KEi, Ni         -->

                              <--    HDR, SAr1, KEr, Nr, [CERTREQ]

   HDR, SK {IDi, [CERTREQ,] [IDr,]
   SAi2, TSi, TSr
   [N(SESSION_RESUMPTION_SUPPORTED)]}  -->

                              <--    HDR, SK {IDr, [CERT,] AUTH,
                                                   EAP }

   HDR, SK {EAP}              -->

                              <--    HDR, SK {EAP (success)}

   HDR, SK {AUTH}             -->

                              <--    HDR, SK {AUTH, SAr2, TSi, TSr
                                     [N(SESSION_RESUMPTION_SUPPORTED),
                                      N(IKEv2_TICKET)]}


   Figure 5: Piggyback over IKE_AUTH with EAP for Client Authentication

   If the Initiator sets the flag CLIENT_SIDE_STORAGE_SUPPORTED, the
   Responder MAY send the state via a notify payload of type
   IKEv2_TICKET in the IKE_AUTH response message.  In case of IKEv2-EAP
   exchange the request for session resumption support is indicated in
   the first message of the IKE_AUTH sequence of messages from the
   initiator and the response is included in the last message from the
   responder.

   The client is expected the store the ticket and present it to the
   gateway with which it is resuming the session.  The
   IKE_SESSION_RESUME exchange is used for that purpose.

   The Ticket is included as part of a Notify message and can be opaque
   or conformant to the format specified in this document.

4.1.3.  Capability Negotiation and State Transfer via an Informational
        Exchange

   An initiator may choose to wait until the IKEv2 and IPsec SA
   establishment is complete before negotiating the IKEv2 session
   transfer support.  The initiator then uses an informational exchange
   to indicate support for session resumption and the responder can



Dondeti & Narayanan      Expires August 29, 2007               [Page 11]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   agree to support the capability and may send the ticket in response,
   as applicable.  The negotiation is protected as the Notify payloads
   are within the SK payload of IKEv2.


  Initiator                        Responder
-----------                      -----------
HDR, SK {
N(SESSION_RESUMPTION_SUPPORTED),
         [N(SPI)]}         -->
                           <-- HDR, SK {N(SESSION_RESUMPTION_SUPPORTED),
                                       [N(IKEv2_TICKET)]}


    Figure 6: Informational Exchange for Session Resumption Negotiation

4.1.4.  IKEv2 Ticket

   To enable clients to present the IKEv2 ticket received from one
   gateway to another, the contents of the ticket need to specified.
   The ticket structure may be used by a gateway to send state to the
   client or to another gateway or SA store.  In the event of backend
   storage of state, the SA store may be present in a highly available
   centralized entity or distributed across the backup gateways.  This
   document does not provide a protocol to upload or download state to/
   from the SA store.  However, such an exchange MUST be encrypted,
   authenticated and replay protected.

   In the simplest IKEv2 session, there is an IKE SA and a single IPsec
   SA.  The IKEv2 ticket may have been sent by the gateway during the
   base exchange or via an Informational exchange.  If either the IPsec
   SA or the IKE SA is rekeyed, the gateway sends the new ticket to the
   client.  The ticket is then associated with the IPsec SA in that when
   an SA is deleted, the corresponding ticket is also expected to be
   deleted, even if the ticket has not expired.

   The ticket contains all the necessary information for a gateway to
   restore the IKE SA; more specifically, it contains the negotiated IKE
   SA parameters and the corresponding attributes where applicable.
   There is also a lifetime to the ticket, which takes the form of a
   timestamp after which the ticket is no longer valid.  The ticket
   itself is protected -- encrypted and integrity protected -- with a
   security association created specifically for generating and
   validating tickets within a given secure domain.  The ticket
   generation SA (TGS) is identified with the TGS-SPI and that is
   included in the clear with the ticket.  The TGS-SPI allows the new
   gateway to identify the SA to use in validating the ticket.  The TGS-
   SPI is a blob that only the entities within a secure domain need to



Dondeti & Narayanan      Expires August 29, 2007               [Page 12]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   understand; for instance, if the gateways within a secure domain form
   a multicast group and use a group IPsec SA, the SPI may contain the
   destination address (group's multicast address) and a 32-bit random
   value.  The ticket may also contain the identity of the gateway/
   domain issuing it.

   When multiple IPsec SAs are created, the gateway MAY send a new
   ticket in each CREATE_CHILD_SA response message.  It is not clear
   whether the fields within the ticket, other than the lifetime of the
   ticket will be different.

   The ticket may contain IPsec specific information such as the tunnel
   inner address (TIA) assigned by the gateway.  In that case, each
   ticket is different.  Whether there is a need to include the TIA in
   the ticket is for discussion.

4.2.  IKEv2 Session Resumption

   When a client discovers that the gateway it is associated with is
   unreachable, according to the IKEv2 specification the client needs to
   verify the liveness of the gateway through IKEv2.  If the client
   determines that the gateway is unreachable, it is to delete the IKE
   SA and all associated CHILD SAs.  This specification modifies that
   behavior.

   If session resumption capability has been negotiated for the IKE SA,
   the client MAY reestablish the session with a backup gateway instead
   of deleting it.  The client needs to first find an alternative
   gateway: we refer to this step as gateway discovery.  There are a few
   possible ways of gateway discovery:

   Preconfiguration:  The client may have been pre-configured with a
      list of backup gateways.  In other words, the client learns of the
      backup gateways just as it does the address of the original
      gateway.

   Discovery through IKEv2:  First, the client may have requested and
      received a list of gateways during the capability negotiation
      phase.  In this case, the list of gateways is provided by the
      original gateway and the discovery has the protection of an IKEv2
      exchange.

   Discovery through application:  The client may discover that a
      gateway has failed and a new gateway must be used for connectivity
      through application layer messages.  An example of this is the
      Mobile IPv6 Home Agent (HA) discovery, where the client may
      discover the HA via MIP6 bootstrapping mechanisms.  The IKEv2
      specification has details on expected behavior on receiving



Dondeti & Narayanan      Expires August 29, 2007               [Page 13]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


      unauthenticated information about gateway unreachability.  Those
      rules still apply in this case, in that the client should verify
      the non-reachability before initiating a switch to the new
      gateway.

4.2.1.  IKE_SESSION_RESUME Exchange

   Subsequent to discovering gateway failure and alternative gateways to
   contact, a client may choose to run a full IKEv2 exchange to
   establish a new IKEv2 session or to resume the use of the previously
   established SA at the new gateway.  There are two cases to consider:
   in the first, the client has received an IKEv2_ticket from the
   original gateway and presents that to the new gateway.  In the second
   case, the client has no ticket to present and therefore simply
   attempts to reestablish the session with the new gateway.

   Note that it is impractical for all the gateways to be in synchrony
   with each other on all the replay protection state at each entity.
   Thus we need a special IKE SA created for session reestablishment and
   use that in the IKEv2 ticket or we need to tweak the IKEv2 replay
   protection mechanism as the client moves between gateways.  Next, the
   new gateway may not be able to support the same tunnel inner address
   as the original gateway.  Finally, for stateless failover, the new
   gateway will need to supply the next IKEv2_ticket to the client.
   Thus, the session resumption exchange comprises an IPsec SA
   establishment, optional IKEv2 SA rekeying, optional IP address
   assignment, and optional ticket delivery from the gateway to the
   client.  For the purposes of this specification, we assume that the
   client always initiates SA reestablishment.  We consider the case of
   gateway initiating SA recovery out of scope of the specification.

   We specify a new IKEv2 exchange type called IKE_SESSION_RESUME of
   type IANA-TBA.


Initiator                                 Responder
-----------                               -----------
HDR, [N(IKEv2_Ticket)], [N,] SK { SA, Ni,
[KEi], [TSi, TSr], [CP(CFG_Request)],
       [N(UPDATE_SA_ADDRESSES)]}      -->

                              <--    HDR, SK {SA, Nr, [KEr], [TSi, TSr],
                                         [CP(CFG_REPLY)], [N(IKEv2_Ticket)]}


                   Figure 7: IKE_SESSION_RESUME Exchange

   The HDR contains the Initiator's SPI as a random number of 8 octets



Dondeti & Narayanan      Expires August 29, 2007               [Page 14]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   chosen by the Initiator.  The Responder's SPI is set to zero.  The
   new gateway will pick the SPI and include it in the return message.
   The exchange type is set to 'IKE_SESSION_RESUME'.  We use a message
   ID of structure Gateway_Switch_Count (GSC) || message_ID, where
   Gateway_Switch_Count indicates the number of gateways the client has
   switched with the given IKE SA and message_ID is zero (or a suitable
   default value).

   In case of stateless failover, the client MUST include the
   IKEv2_Ticket payload.  For stateful failover, the client MUST include
   a Notify payload with the original IKEv2 SPI pair so that the new
   gateway can look up the SA and verify the validity of the
   IKE_SESSION_RESUME message.  Only one of these payloads MUST be
   present.  Note that the IKEv2_Ticket payload and the Notify payload
   containing the SPI values are included after the header, but, outside
   the encrypted data.  This allows for integrity protection of these
   payloads and not encryption.  The Responder must be able to read
   these payloads before it can decrypt the SK payload in the
   IKE_SESSION_RESUME message.

   If the client is contacting the same gateway to resume the IKE
   session, it may not require a new IP address or any configuration
   parameters.  For the purpose of this document, gateways that have the
   same view of the backend and are capable of supporting the same IP
   address for the clients are viewed as being a single gateway.  If the
   client does not know whether the new gateway can assign the same
   tunnel inner IP address and then it MUST include the CFG_Request
   Configuration Payload, indicating the need for an IP address.  It MAY
   include the original tunnel inner address in the request.  For tunnel
   mode IPsec, this is the tunnel inner address of the client.  If the
   local address of the client (tunnel outer address in tunnel mode) has
   also changed in the meantime, the client MUST include the
   UPDATE_SA_ADDRESSES notify payload defined in [5] in the session
   reestablishment Request message.

4.2.2.  Replay Protection of Session Resumption Exchange

   IKEv2, as defined in [4] provides replay protection between the
   initiator and the responder using sequence numbers.  Each entity
   maintains its own sequence number space and the sequence number is
   incremented after transmission of a request message.  When one of the
   entities involved in the IKEv2 exchange may change within the same
   IKE session, replay protection will require per packet update of
   state to continue to use the same model of sequence numbers specified
   in [4].  Per packet state updates are impractical and also do not
   always work.  It is plausible for the SA endpoints to fall out of
   sync or fail before an update is done, effectively opening up the
   possibility of replays.



Dondeti & Narayanan      Expires August 29, 2007               [Page 15]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   In order to provide replay protection even when one of the entities
   is changing mid-session, this document proposes a structure to the
   message ID field of the IKEv2 header.  The message ID field is
   composed as GSC||s_message_ID, where the GSC is a 4-bit value and the
   s_message_ID is a 28-bit value; the s_message_ID has the same
   semantics as the IKEv2 message ID except for the smaller size.  The
   s_message_ID starts at zero (or a suitable constant) every time the
   client switches to a new gateway.

   The initiator and the responder initialize the GSC to zero at the
   time of establishment of the IKE SA.  In case of stateless failover,
   the responder includes the GSC in the IKEv2_Ticket.  The initiator
   increments the GSC and uses GSC||s_message_ID as the IKEv2 message_ID
   in theIKE_SESSION_RESUME exchange.  The responder uses the same
   message ID in the response.  When a failover or switch to another
   gateway occurs, this count is incremented.  Note that the GSC is
   incremented even if the client has visited the "new" gateway in the
   past under the protection of the same IKE SA.  Continuing with the
   case of stateless failover, the responder includes the new GSC in the
   new ticket and includes the new ticket along with the
   IKE_SESSION_RESUME response message.  If the initiator never receives
   the response, it may use the same GSC in a future IKE_SESSION_RESUME
   exchange with the same or a different gateway.

   In case of stateful failover, the responder maintains the GSC value
   independent of the initiator and thus the initiator must increment
   the GSC for use with every fresh IKE_SESSION_RESUME request message.
   Note that the responder increments its local value of the GSC as soon
   as it responds with an IKE_SESSION_RESUME response message and
   updates the SA state of the client with the new GSC value.  A new
   gateway MUST only accept an IKE_SESSION_RESUME request message, if
   the GSC value in the message ID is greater than the GSC value present
   as part of the state.

   The presence of the GSC provides replay protection across gateways
   without per packet state updates.  The IKE_SA MUST be re-keyed before
   the GSC overflows.  The IKE_SA MUST also be re-keyed before the 28-
   bit sequence number overflows, as required by [4].  This re-keying,
   however, may be done off the critical path, instead of at the time of
   failover.

4.2.3.  Processing IKE_SESSION_RESUME messages

   IKE_SESSION_RESUME messages are treated much like IKE_SA_INIT
   messages in that the first step in processing them is not looking up
   the SA.  In case of IKE_SA_INIT, the responder processes the entire
   message and sends a response either by challenging the initiator to
   prove liveness or by sending the IKE_SA_INIT response message.  In



Dondeti & Narayanan      Expires August 29, 2007               [Page 16]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   case of IKE_SESSION_RESUME message case, the first step is to process
   the message partially, provisionally revive the old SA to verify the
   session resumption request and process the rest of the message; the
   result of the processing, assuming everything is in order, is to
   install an IKE SA and one or more IPsec SAs at both ends.

   The responder follows the steps below in processing an
   IKE_SESSION_RESUME request message:

   o  When an IKEv2 entity receives a message of exchange type
      'IKE_SESSION_RESUME' it first verifies the consistency of the
      message.  The Initiator's SPI must be non-NULL; the Responder's
      SPI can be ignored.  The GSC must be greater than 1.  The message
      must have either an N payload or the IKEv2_Ticket payload followed
      by an SK payload.

   o  The next step is to recover the SA to be reestablished.  If the
      received message contains an IKEv2_Ticket payload, the receiver
      validates the ticket.  It uses the TGS-SPI of the ticket to lookup
      the SA that protects the ticket.  It then verifies the integrity
      of the ticket.  It then verifies that the ticket is fresh and not
      invalidated by policy.  The next step is to verify whether the
      received session resumption request itself is fresh: the received
      GSC must be greater than the GSC within the ticket.

   o  If the received message contains a Notify payload, the SPIs within
      the payload are used to lookup the SA that protects the received
      session resumption request message.  The responder retrieves the
      SA from the SA store.  It then verifies that the received GSC is
      greater than the local GSC.

   o  After replay verification, the next step is to verify the
      integrity of the session resumption request message itself.  If
      the integrity checksum is valid, the purported sender of the
      message in fact has access to the IKE SA corresponding to the SPI
      in the N payload or the IKE SA contained in the IKEv2_Ticket.

   o  The responder then proceeds to process the rest of the
      IKE_SESSION_RESUME just as it would process a CREATE_CHILD_SA
      request message.  It first decrypts the SK payload.  The first
      encrypted payload is not an N payload (if it is, the responder
      returns an error message to the initiator) and so the message is
      treated as a request to create a new IPsec SA.

   o

   In response to a session resumption request message, the responder
   sends a message that is quite similar to a CREATE_CHILD_SA response



Dondeti & Narayanan      Expires August 29, 2007               [Page 17]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   message.  There are some subtle differences between the
   CREATE_CHILD_SA response and an IKE_SESSION_RESUME response message.

   The IKE_SESSION_RESUME response message is composed as follows: the
   responder picks an SPI and includes it in the Responder's SPI field
   of the IKEv2 header.  The message ID is the same as the message ID in
   the request message.  In case of stateless failover the responder
   creates a new IKEv2_ticket and includes the current GSC in the
   ticket.  The new ticket is included within the SK as one of the
   encrypted payloads.  Encryption of the new ticket prevents an
   attacker from attempting to present the ticket to another gateway
   before the client has had a chance to use it.


5.  Message Types and Formats

5.1.  IKEv2 Header with Gateway Switch Count


                              1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       !                       IKE_SA Initiator's SPI                  !
       !                                                               !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       !                       IKE_SA Responder's SPI                  !
       !                                                               !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       !  Next Payload ! MjVer ! MnVer ! Exchange Type !     Flags     !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       !GSC|                  S-Message ID (28 bits)                   !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       !                            Length                             !
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                      Figure 8: IKEv2 Header with GSC

   GSC - This 4-bit field indicates the Gateway Switch Count.  It is
   initialized to zero when the IKE_SA is created and incremented by one
   every time a CREATE_CHILD_SA failover request message is sent by an
   IKE peer.

   S-Message ID - This is a 28-bit field that has the same semantics as
   the message ID field of the IKEv2 header.






Dondeti & Narayanan      Expires August 29, 2007               [Page 18]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


5.2.  SESSION_RESUMPTION_SUPPORTED Notify Message Type

   The SESSION_RESUMPTION_SUPPORTED Notify message type may be present
   in a Notify payload and indicates the support for failover at an IKE
   peer.  The Notify Message Type value is IANA-TBD.  The Notification
   Data contains an 8 bit flags field, the format of which is defined
   below.


        0 1 2 3 4 5 6 7
       +-+-+-+-+-+-+-+-+
       |S|L| Reserved  |
       +-+-+-+-+-+-+-+-+



         Figure 9: SESSION_RESUMPTION_SUPPORTED Notification Data

   The S (CLIENT_SIDE_STORAGE_SUPPORTED) flag is set by the IKE peer to
   indicate support for stateless failover operation.  The gateway MUST
   NOT set this flag if it does not also include a STATE_TICKET Notify
   payload in the response message. [***NOTE: Are we allowing not
   supporting the GSC?  If so, we need to include the GW ID in the
   exchange and also defined how it is used in the IDr payload]

   The L(CLIENT_REQUEST_GW_LIST) flag is set by the IKE peer to indicate
   a message that requests or contains the list of gateways.

5.3.  Other Payload Specifications

   TBD.


6.  Security Considerations

   IKEv2 establishes an IKE SA and an IPsec SA in a 4 (or 6 message)
   base exchange.  The number of messages can be larger than that if EAP
   is used for client authentication.  The goal of this document is to
   specify a fast session resumption protocol.  The session resumption
   protocol enables an IPsec client to quickly resume the use of the IKE
   SA and establish a new IPsec SA with the original gateway (after it
   fails and recovers) or another gateway within a secure domain.

   If the new gateway is in perfect synchrony with the old gateway, the
   only thing that changes is the IP address of one of the parties to
   the IKE exchange.  A protocol similar to MOBIKE may be used to signal
   the change in the IP address of one of the end points of the session.
   Perfect synchronization is impractical and thus there is a need to



Dondeti & Narayanan      Expires August 29, 2007               [Page 19]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   design an IKEv2 session resumption protocol.

   It is plausible that the new gateway obtains the SA state from within
   the secure domain, either from the old gateway or from another entity
   to which the old gateway has sent the SA state.  It is also plausible
   for the old gateway to send the state to the client itself so it can
   present the state to the new gateway.

   There are several components to the solution: we need to define a
   secure domain, identify the security properties required for session
   resumption capability negotiation, identify the security properties
   required for SA storage or ticket creation, distribution and use, and
   finally identify the requirements of a session resumption protocol.
   Replay protection for the IKE SA as it is used across gateways is a
   crucial component of the ticket use and session resumption protocol.

6.1.  Properties of the Secure Domain

   A secure domain consists of a pool of gateways that are able to
   resume SAs created by any gateway belonging to the same domain.  It
   is not necessary for any two gateways to share the same IP address or
   have the same view of the network.

   All the gateways in the secure domain must share a security
   association for state storage and retrieval purposes.  Such a
   security association must provide confidentiality, integrity and
   replay protection for the state stored or retrieved.  The gateways
   may share a group SA or each gateway in the secure domain may share
   an individual SA with a central entity.  In the case of stateful
   session resumption, the central entity may act as the SA store.  In
   the case of stateless session resumption, such a central SA manager
   will imply that the tickets are protected with an SA known only to
   the central entity and each gateway needs to contact the central
   entity to encrypt or decrypt the contents of the tickets.

6.2.  Properties of Capability Negotiation

   The failover solution described here relies on a capability exchange
   occurring as part of the initial IKEv2 exchange.  The capability for
   failover support may be indicated by the initiator as part of the
   IKE_INIT or IKE_AUTH exchange and the failover support and any
   corresponding information (such as list of gateways or state) is
   included by the gateway as part of the IKE_AUTH exchange.  The
   capability negotiation is authenticated as part of the mutual
   authentication processes during the IKE_AUTH exchange or is integrity
   protected by the MAC in the SK payload.

   Further, if the responder includes a ticket containing the session



Dondeti & Narayanan      Expires August 29, 2007               [Page 20]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   state, that ticket is encrypted and integrity protected in a self-
   contained manner.  This is so that upon session resumption, the
   gateway can verify the validity of the ticket.  The SA used to
   encrypt and integrity protect the ticket depends on the type of SAs
   used in the secure domain, as described in Section 6.1.

6.3.  Properties of SA Ticket Creation, Distribution and Use

   For the purpose of stateless session resumption, the gateway may
   distribute a ticket containing the SA state to the client.  Any
   gateway in the secure domain may then allow the client to resume the
   IKE session upon successful processing of the ticket and installation
   of the SA.  There are some security properties to consider in such
   ticket creation and distribution.

   The ticket must contain information that will allow the gateway
   resuming the session to determine the validity of the ticket based on
   the lifetime policies of the secure domain.  The ticket itself may
   also contain information necessary to determine its lifetime that is
   allowed by the issuing gateway.  This will prevent a ticket from
   being indefinitely used.

   All the contents of the ticket, except the SPI that indicates the SA
   to be used, must be encrypted and a MAC must be generated on the
   encrypted data.  This prevents an eavesdropper from obtaining the
   contents of the ticket.

   In addition to the confidentiality of the ticket contents itself,
   ticket revocation is an issue that cannot be easily addressed without
   some gateway side state.  If a ticket needs to be revoked and the
   client needs to be denied access, the gateways in the secure domain
   must contain some state or must be able to obtain the necessary
   information from a trusted source elsewhere.  This will allow the
   infrastructure to reject resumption of a session after a client has
   been revoked access.

   Every time the SA state is updated or the client attaches to a new
   gateway, it receives a new ticket which is supposed to be used for
   subsequent session resumption.  However, there is no way the gateways
   in the secure domain can ensure that the client always presents the
   latest ticket, unless some state on the ticket itself is maintained
   in the secure domain.  While such state will be significantly less
   than storing the entire SA, that still somewhat negates the goal of
   remaining stateless.

   Hence, if the infrastructure is completely stateless on the tickets,
   it is feasible for the client to re-use old tickets.  For the client
   itself, there is typically no incentive in using an older ticket, as



Dondeti & Narayanan      Expires August 29, 2007               [Page 21]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   opposed to a newer one and hence, it is less of a problem.  However,
   the possibility of ticket re-use leads to possible message replays.
   An attacker would be able to capture an IKE_SESSION_RESUME request
   message and replay it at a later time.  Since the ticket contains an
   older value of the Gateway Switch Count (GSC), the message will be
   accepted by the gateway, as long as the lifetime of the ticket is
   still valid.  While this would result in the IKE SA being installed
   on the gateway, it will result in a new IPsec SA being created, which
   will not be available to the attacker.  Hence, replay of IPsec
   packets is not feasible in this case.  Hence, the worst impact of
   message replays with old tickets is the installation of the IKE_SA at
   the gateway and creation of a new IPsec SA.  It should be noted that
   if that gateway happens to be still serving the client to which the
   ticket actually belongs, it will most likely lead to re-installation
   of the same IKE SA or rejection of the replayed IKE_SESSION_RESUME
   since a different IKE SA for the same client is already present.
   Hence, ticket re-use is not a serious problem, although it could
   result in consumption of unnecessary resources at the gateway.

   If an attacker replayed a message with a ticket and successfully
   created state at the gateway and the client attempted to re-connect
   to that gateway, its request may be rejected by the gateway.  Hence,
   depending on the timing of the replay, it is feasible to cause a DoS
   attack on the legitimate client.

6.4.  Properties of the Session Resumption Protocol

   This document defines an IKE_SESSION_RESUME exchange to allow
   resumption of an already established IKE SA.  The security properties
   of this exchange are largely similar to that of the
   IKE_CREATE_CHILD_SA exchange.  The only difference is that before the
   creation of the IPsec SA, the recipient processing session resume
   request message first needs to provisionally install the IKE SA
   corresponding to the request.  This IKE SA may be retrieved from the
   SA store or from the ticket presented by the client.  The gateway
   must first install this SA and verify the validity of the
   IKE_SESSION_RESUME Request message.  If the session resume request
   message is valid, the installed SA is kept; otherwise it is deleted
   and any related state updates are rolled back.  When the validity
   check succeeds, the processing of the rest of the message and
   creation of the IPsec SA is analogous to processing an
   IKE_CREATE_CHILD_SA message.


7.  IANA Considerations

   This document specifies a new IKEv2 exchange type and several notify
   payload types.  Detailed instructions to IANA will be provided when



Dondeti & Narayanan      Expires August 29, 2007               [Page 22]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   the protocol specification becomes more stable.


8.  Acknowledgments

   Thanks to Paul Hoffman for his valuable input to discussions on the
   design of this protocol.


9.  Normative References

   [1]  Narayanan, V., "IPsec Gateway Failover and Redundancy - Problem
        Statement and Goals", draft-vidya-ipsec-failover-ps-00 (work in
        progress), December 2006.

   [2]  Bradner, S., "Key words for use in RFCs to Indicate Requirement
        Levels", BCP 14, RFC 2119, March 1997.

   [3]  Kent, S. and K. Seo, "Security Architecture for the Internet
        Protocol", RFC 4301, December 2005.

   [4]  Kaufman, C., "Internet Key Exchange (IKEv2) Protocol", RFC 4306,
        December 2005.

   [5]  Eronen, P., "IKEv2 Mobility and Multihoming Protocol (MOBIKE)",
        RFC 4555, June 2006.


Authors' Addresses

   Lakshminath Dondeti
   QUALCOMM, Inc.
   5775 Morehouse Dr
   San Diego, CA
   USA

   Phone: +1 858-845-1267
   Email: ldondeti@qualcomm.com













Dondeti & Narayanan      Expires August 29, 2007               [Page 23]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


   Vidya Narayanan
   QUALCOMM, Inc.
   5775 Morehouse Dr
   San Diego, CA
   USA

   Phone: +1 858-845-2483
   Email: vidyan@qualcomm.com











































Dondeti & Narayanan      Expires August 29, 2007               [Page 24]


Internet-Draft     IPsec Failover Redundancy Solution      February 2007


Full Copyright Statement

   Copyright (C) The IETF Trust (2007).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Dondeti & Narayanan      Expires August 29, 2007               [Page 25]