Network Working Group                                   David B. Johnson
INTERNET DRAFT                                Carnegie Mellon University
7 July 1995                                              Charles Perkins
                                                         IBM Corporation



                    Route Optimization in Mobile IP

                    draft-ietf-mobileip-optim-02.txt


Status of This Memo

   This document is a product of the Mobile IP Working Group of the
   Internet Engineering Task Force (IETF).  Comments should be submitted
   to working group mailing list at mobile-ip@tadpole.com.

   Distribution of this document is unlimited.

   This document is an Internet-Draft.  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".

   To learn the current status of any Internet-Draft, please check
   the "1id-abstracts.txt" listing contained in the Internet- Drafts
   Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).



















Johnson and Perkins           Expires 7 January 1996            [Page i]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


Abstract

   This document defines extensions to the operation of the base
   Mobile IP protocol to allow for optimization of datagram routing from
   a correspondent node to a mobile node.  Without Route Optimization,
   all datagrams destined to a mobile node are routed through that
   mobile node's home agent, which then tunnels each datagram to the
   mobile node's current location.  The protocol extensions described
   here provide a means for correspondent nodes that implement them
   to cache the binding of a mobile node and to then tunnel their own
   datagrams for the mobile node directly to that location, bypassing
   the possibly lengthy route for each datagram to and from the mobile
   node's home agent.  Extensions are also provided to allow datagrams
   in flight when a mobile node moves, and datagrams sent based on an
   out-of-date cached binding, to be forwarded directly to the mobile
   node's new binding.



































Johnson and Perkins           Expires 7 January 1996           [Page ii]


Internet Draft        Route Optimization in Mobile IP        7 July 1995




                                Contents



Status of This Memo                                                    i

Abstract                                                              ii

 1. Introduction                                                       1

 2. Route Optimization Overview                                        3
     2.1. Binding Caching . . . . . . . . . . . . . . . . . . . . .    3
     2.2. Foreign Agent Handoff . . . . . . . . . . . . . . . . . .    3
     2.3. Binding Cache Updates . . . . . . . . . . . . . . . . . .    5
     2.4. Registration Key Establishment Using the Home Agent . . .    7
     2.5. Registration Key Establishment Using Diffie-Hellman . . .    7

 3. Route Optimization Message Formats                                10
     3.1. Binding Warning Message . . . . . . . . . . . . . . . . .   11
     3.2. Binding Request Message . . . . . . . . . . . . . . . . .   12
     3.3. Binding Update Message  . . . . . . . . . . . . . . . . .   13
     3.4. Binding Acknowledge Message . . . . . . . . . . . . . . .   15

 4. Route Optimization Extension Formats                              16
     4.1. Previous Foreign Agent Notification Extension . . . . . .   17
     4.2. Route Optimization Authentication Extension . . . . . . .   19
     4.3. Home Agent Registration Key Request Extension . . . . . .   20
     4.4. Mobile Node Registration Key Reply Extension  . . . . . .   21
     4.5. Foreign Agent Registration Key Reply Extension  . . . . .   22
     4.6. Diffie-Hellman Registration Key Request Extension . . . .   23
     4.7. Diffie-Hellman Registration Key Reply Extension . . . . .   24

 5. Mobility Security Association Management                          25

 6. Binding Cache Considerations                                      27
     6.1. Cache Management  . . . . . . . . . . . . . . . . . . . .   27
     6.2. Receiving Binding Warning Messages  . . . . . . . . . . .   27
     6.3. Receiving Binding Update Messages . . . . . . . . . . . .   28
     6.4. Using Special Tunnels . . . . . . . . . . . . . . . . . .   28

 7. Home Agent Considerations                                         30
     7.1. Rate Limiting . . . . . . . . . . . . . . . . . . . . . .   30
     7.2. Receiving Binding Request Messages  . . . . . . . . . . .   30
     7.3. Receiving Registration Key Requests . . . . . . . . . . .   31
     7.4. Receiving Special Tunnels . . . . . . . . . . . . . . . .   31




Johnson and Perkins          Expires 7 January 1996           [Page iii]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


 8. Foreign Agent Considerations                                      32
     8.1. Establishing a Registration Key . . . . . . . . . . . . .   32
     8.2. Previous Foreign Agent Notification . . . . . . . . . . .   32
     8.3. Receiving Tunneled Datagrams  . . . . . . . . . . . . . .   33
     8.4. Sending Special Tunnels . . . . . . . . . . . . . . . . .   34

 9. Mobile Node Considerations                                        35
     9.1. Requesting a Registration Key . . . . . . . . . . . . . .   35
     9.2. Notifying Previous Foreign Agents . . . . . . . . . . . .   35

References                                                            37

Appendix A. Using a Master Key at the Home Agent                      38

Chairs' Addresses                                                     39

Authors' Addresses                                                    40


































Johnson and Perkins           Expires 7 January 1996           [Page iv]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


1. Introduction

   The base Mobile IP protocol [6] allows any mobile node to move about,
   changing its point of attachment to the Internet, while continuing
   to be addressed by its home IP address.  Correspondent nodes sending
   IP datagrams to a mobile node address them to the mobile node's home
   address in the same way as to any destination.

   While the mobile node is connected to the Internet away from its
   home network, it is served by a "home agent" on its home network
   and is associated with a "care-of address" indicating its current
   location.  The association between a mobile node's home address and
   its care-of address is known as a "mobility binding".  The care-of
   address is generally the address of a "foreign agent" on the network
   being visited by the mobile node, which forwards arriving datagrams
   locally to the mobile node.  Alternatively, the care-of address may
   be temporarily assigned to the mobile node using DHCP [3] or other
   means.  All IP datagrams addressed to the mobile node are routed by
   the normal IP routing mechanisms to the mobile node's home network,
   where they are intercepted by the mobile node's home agent, which
   then tunnels each datagram to the mobile node's current care-of
   address.  Datagrams sent by a mobile node use the foreign agent as a
   default router but require no other special handling or routing.

   This scheme allows transparent interoperation with mobile nodes,
   but forces all datagrams for a mobile node to be routed through
   its home agent; packets to the mobile node are often routed along
   paths that are significantly longer than optimal.  For example, if a
   mobile node, say MN1, is visiting some subnet, even datagrams from
   a correspondent node on this same subnet must be routed through the
   Internet to MN1's home agent on MN1's home network, only to then
   be tunneled back to the original subnet to MN1's foreign agent for
   delivery to MN1.  This indirect routing can significantly delay the
   delivery of the datagram to MN1 and places an unnecessary burden on
   the networks and routers along this path through the Internet.  If
   the correspondent node in this example is actually another mobile
   node, say MN2, then datagrams from MN1 to MN2 must likewise be routed
   through MN2's home agent on MN2's home network and back to the
   original subnet for delivery to MN1.

   This document defines extensions to the base Mobile IP protocol to
   allow for the optimization of datagram routing from a correspondent
   node to a mobile node.  These extensions provide a means for nodes
   that implement them to cache the binding of a mobile node and to then
   tunnel their own datagrams directly to the care-of address indicated
   in that binding, bypassing the possibly lengthy route to and from
   that mobile node's home agent.  Extensions are also provided to allow
   datagrams in flight when a mobile node moves, and datagrams sent



Johnson and Perkins           Expires 7 January 1996            [Page 1]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   based on an out-of-date cached binding, to be forwarded directly
   to the mobile node's new care-of address.  These extensions are
   collectively referred to as Route Optimization in this document.

   All operation of Route Optimization that changes the routing of IP
   datagrams to the mobile node is authenticated using the same type of
   authentication mechanism used in the base Mobile IP protocol.  This
   authentication generally relies on a "mobility security association"
   established in advance between the node sending a message and the
   node receiving the message that must authenticate it.  When the
   required mobility security association has not been established, a
   Mobile IP implementation using Route Optimization operates in the
   same way as the base Mobile IP protocol.

   Section 2 of this document provides an overview of the operation of
   Route Optimization.  Section 3 defines the message types used by
   Route Optimization, and Section 4 defines the message extensions
   used.  Section 5 discusses the problem of managing the mobility
   security associations needed to provide authentication of all
   messages that affect the routing of datagrams to a mobile node.
   The final four sections of this document define in detail the
   operation of Route Optimization from the point of view of each of the
   entities involved:  considerations for nodes maintaining a binding
   cache are presented in Section 6, mobile node considerations in
   Section 9, foreign agent considerations in Section 8, and home agent
   considerations in Section 7.

























Johnson and Perkins           Expires 7 January 1996            [Page 2]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


2. Route Optimization Overview

2.1. Binding Caching

   Route Optimization provides a means for any node that wishes to
   optimize its own communication with mobile nodes to maintain a
   "binding cache" containing the mobility binding of one or more mobile
   nodes.  When sending an IP datagram to a mobile node, if the sender
   has a binding cache entry for the destination mobile node, it may
   tunnel the datagram directly to the care-of address indicated in the
   cached mobility binding.

   In the absence of any binding cache entry, datagrams destined for
   a mobile node will be routed to the mobile node's home network in
   the same way as any other IP datagram, and are then tunneled to the
   mobile node's current care-of address by the mobile node's home
   agent.  This is the only routing mechanism supported by the base
   Mobile IP protocol.  With Route Optimization, as a side effect of
   this indirect routing of a datagram to a mobile node, the original
   sender of the datagram may be informed of the mobile node's current
   mobility binding, giving the sender an opportunity to cache the
   binding.

   A node may create a binding cache entry for a mobile node only when
   it has received and authenticated the mobile node's mobility binding.
   Likewise, a node may update an existing binding cache entry for a
   mobile node, such as after the mobile node has moved to a new foreign
   agent, only when it has received and authenticated the mobile node's
   new mobility binding.

   A binding cache will, by necessity, have a finite size.  Any node
   implementing a binding cache may manage the space in its cache
   using any local cache replacement policy.  If a datagram is sent
   to a destination for which the cache entry has been dropped from
   the cache, the datagram will be routed normally through the mobile
   node's home network and will be tunneled to the mobile node's care-of
   address by its home agent.  This indirect routing to the mobile node
   will result in the original sender of the datagram being informed of
   the mobile node's current mobility binding, allowing it to add this
   entry again to its binding cache.


2.2. Foreign Agent Handoff

   When a mobile node moves and registers with a new foreign agent, the
   base Mobile IP protocol does not notify the mobile node's previous
   foreign agent.  IP datagrams intercepted by the home agent after
   the new registration are tunneled to the mobile node's new care-of



Johnson and Perkins           Expires 7 January 1996            [Page 3]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   address, but datagrams in flight that had already been intercepted
   by the home agent and tunneled to the old care-of address when the
   mobile node moved are lost and are assumed to be retransmitted by
   higher-level protocols if neeeded.  The old foreign agent eventually
   deletes the mobile node's registration after the expiration of the
   lifetime period established when the mobile node registered there.

   Route Optimization provides a means for the mobile node's previous
   foreign agent to be reliably notified of the mobile node's new
   mobility binding, allowing datagrams in flight to the mobile
   node's previous foreign agent to be forwarded to its new care-of
   address.  This notification also allows any datagrams tunneled to the
   mobile node's previous foreign agent from correspondent nodes with
   out-of-date binding cache entries for the mobile node (that have not
   yet learned that the mobile node has moved), to be forwarded to its
   new care-of address.  Finally, this notification allows any resources
   consumed by the mobile node's binding at the previous foreign agent
   (such as radio channel reservations) to be released immediately,
   rather than waiting for the mobile node's registration to expire.

   Optionally, during registration with a new foreign agent, the mobile
   node and the foreign agent may establish a new shared secret key
   as a "registration key".  When the mobile node later registers
   with a new foreign agent, if it established a registration key
   during registration with its previous foreign agent, it may use
   this key to notify the previous foreign agent that it has moved.
   This notification may also optionally include the mobile node's new
   care-of address, allowing the previous foreign agent to create a
   binding cache entry for the mobile node to serve as a "forwarding
   pointer" to its new location.  Any tunneled datagrams for the mobile
   node that arrive at this previous foreign agent after this binding
   cache entry has been created will then be re-tunneled by this
   foreign agent to the mobile node's new location using the mobility
   binding in this binding cache entry.  The registration key is used
   to authenticate the notification sent to the previous foreign agent.
   Other uses of the registration key are possible, such as for use as
   an encryption key for providing privacy over a wireless link between
   the mobile node and its foreign agent, but such uses are beyond the
   scope of this document.  Once established, the registration key for a
   mobile node can be stored by the foreign agent with the mobile node's
   visitor list entry.

   As part of the registration procedure, the mobile node may
   request that its new foreign agent attempt to notify its previous
   foreign agent on its behalf, by including a Previous Foreign Agent
   Notification extension in its Registration Request message sent to
   the new foreign agent.  The new foreign agent then builds a Binding
   Update message and transmits it to the mobile node's previous foreign



Johnson and Perkins           Expires 7 January 1996            [Page 4]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   agent as part of registration, requesting an acknowledgement from
   the previous foreign agent.  The Previous Foreign Agent Notification
   extension includes only those values needed to construct the Binding
   Update message that are not already contained in the Registration
   Request message.  The authenticator for the Binding Update message is
   computed by the mobile node based on its registration key shared with
   its previous foreign agent.

   The mobile node is responsible for occasionally retransmitting a
   Binding Update message to its previous foreign agent until the
   matching Binding Acknowledge message is received, or until the mobile
   node can be sure of the expiration of its registration with that
   foreign agent.

   The binding cache entry created at the mobile node's previous foreign
   agent is treated in the same way as any other binding cache entry.
   In particular, it is possible that this binding cache entry will be
   deleted from the cache at any time.  In this case, the foreign agent
   will be unable to re-tunnel subsequently arriving tunneled datagrams
   for the mobile node directly to its new location.  Suppose a node
   (for instance, such a previous foreign agent) receives a datagram
   that has been tunneled to this node, but this node is unable to
   deliver the datagram locally to the destination mobile node (the node
   is not the mobile node itself, and it is not a foreign agent with a
   visitor list entry for the mobile node).  To attempt delivery of the
   datagram in this case, the node must encapsulate the datagram as a
   "special tunnel" datagram (Section 8.4), destined to the mobile node.
   Otherwise, the datagram would eventually reach the mobile node's
   home network, be intercepted by the mobile node's home agent, and be
   tunneled to the mobile node's current care-of address.  If the home
   agent were to tunnel the datagram back to the same foreign agent, a
   loop would be created.


2.3. Binding Cache Updates

   When a mobile node's home agent intercepts a datagram from the
   home network and tunnels it to the mobile node, the home agent may
   deduce that the original source of the datagram has no binding
   cache entry for the destination mobile node.  In this case, the
   home agent MAY send a Binding Update message to the original source
   node, informing it of the mobile node's current mobility binding.
   No acknowledgement for this Binding Update message is needed, since
   additional future datagrams from this source node intercepted by the
   home agent for the mobile node will cause transmission of another
   Binding Update.  In order for this Binding Update to be authenticated
   by the original source node, the home agent and this source node must
   have established a mobility security association.



Johnson and Perkins           Expires 7 January 1996            [Page 5]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   Similarly, when any node receives a tunneled datagram that was
   tunneled to this node, if it is not the current foreign agent
   serving the destination (it has no visitor list entry for this mobile
   node), the node receiving this tunneled datagram may deduce that
   the tunneling node has an out-of-date binding cache entry for the
   destination mobile node.  In this case, the receiving node MAY send a
   Binding Warning message to the tunneling node, advising it that its
   binding cache entry for the mobile node is out-of-date.  As in the
   case of a Binding Update sent by the mobile node's home agent, no
   acknowledgement of this Binding Warning is needed, since additional
   future datagrams for the mobile node tunneled by the same node will
   cause the transmission of another Binding Warning.

   However, unlike the Binding Update message, no authentication of the
   Binding Warning message is necessary, since it does not directly
   affect the routing of IP datagrams to the mobile node.  Instead, when
   a node receives a Binding Warning message, that node sends a Binding
   Request message to the indicated mobile node's home agent, requesting
   the mobile node's current mobility binding.  The home agent then
   answers this Binding Request message with a Binding Update message;
   when the Binding Update message is received, the node may then create
   a binding cache entry for the mobile node.  In order for this node
   and the home agent to exchange these Binding Request and Binding
   Update messages, they must have established a mobility security
   association.

      DISCUSSION: An alternative design would be to send a Binding
      Warning-like message directly to the home agent, which would
      then send a Binding Update to the correspondent node.  This
      accomplishes the same thing in 2 messages instead of 3
      (Binding Warning, Binding Request, Binding Update), but the
      authentication of the binding may be more difficult without
      a request-update exchange between the correspondent node and
      the home agent.

   Each Binding Update message indicates the maximum lifetime of any
   binding cache entry created from the Binding Update.  When sending
   the Binding Update message, the home agent SHOULD set this lifetime
   to the remaining service lifetime associated with the mobile node's
   current registration.  Any binding cache entry established or updated
   in response to this Binding Update message must be marked to be
   deleted after the expiration of this period.  A node wanting to
   provide continued service with a particular binding cache entry may
   attempt to reconfirm that mobility binding before the expiration of
   this lifetime period.  Such reconfirmation of a binding cache entry
   may be appropriate when the node has indications (such as an open
   transport-level connection to the mobile node) that the binding
   cache entry is still needed.  This reconfirmation is performed by



Johnson and Perkins           Expires 7 January 1996            [Page 6]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   the node sending a Binding Request message to the mobile node's home
   agent, requesting it to reply with the mobile node's current mobility
   binding in a new Binding Update message.


2.4. Registration Key Establishment Using the Home Agent

   One method of establishing a registration key is for the mobile node
   to request its home agent to generate one during registration, and
   for the home agent to send a copy of this key to both the mobile
   node and its new foreign agent.  The home agent in this case acts
   as a "key distribution center" (KDC) for the mobile node and the
   foreign agent.  The mobile node requests this by including a Home
   Agent Registration Key Request extension in its Registration Request
   message.  The home agent sends the generated key to the mobile node
   and to its foreign agent by including a Mobile Node Registration Key
   Reply extension and a Foreign Agent Registration Key Reply extension
   its Registration Reply message.  The Mobile Node Registration Key
   Reply extension contains a copy of the chosen key encrypted under a
   key and algorithm shared between the home agent and the mobile node,
   and a Foreign Agent Registration Key Reply extension contains a copy
   of the same key encrypted under a key and algorithm shared between
   the home agent and the foreign agent.

   In order for the registration key to be established using this
   method, the foreign agent must have a mobility security association
   with the home agent.  For example, if mobile nodes from some home
   network often visit this foreign agent, it may in general be worth
   the effort of creating such a mobility security association between
   this foreign agent and the home agent serving that home network.  If
   no mobility security association exists, a mobile node may instead be
   able to establish a registration key with its home agent using the
   alternative method described in the next section.


2.5. Registration Key Establishment Using Diffie-Hellman

   An alternate method defined in this document for establishing a
   registration key is for the mobile node and its foreign agent to
   execute the Diffie-Hellman key exchange algorithm [2] as part of the
   mobile node's registration.  The Diffie-Hellman algorithm is a public
   key cryptosystem that allows two parties to establish a shared secret
   key, such that the shared secret key cannot be determined by other
   parties overhearing the messages exchanged during the algorithm.  It
   is used, for example, in other protocols that require a key exchange,
   such as in the Cellular Digital Packet Data (CDPD) system [1].
   Briefly, the Diffie-Hellman algorithm involves the use of two large
   public numbers, which must be known by both parties involved in the



Johnson and Perkins           Expires 7 January 1996            [Page 7]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   algorithm, but need not be kept secret; the two public numbers may be
   different for each execution of the algorithm and are not used once
   the algorithm completes.  Each party chooses a private random number,
   computes a function of this number and the two public numbers, and
   sends the result of this function in a message to the other party.
   Each party then computes the (same) shared secret key using its own
   private random number, the value received from the other party, and
   the two public numbers.

   To use this algorithm during registration with a foreign agent,
   the mobile node includes a Diffie-Hellman Registration Key Request
   extension in its Registration Request message, containing its
   values for the two public numbers and the function of its own
   private random number.  When it receives the Registration Request
   message, the foreign agent chooses its own private random number and
   computes shared secret key value.  The foreign agent also includes a
   Diffie-Hellman Registration Key Reply extension in its Registration
   Reply message to the mobile node, including the function of its own
   private random number.  The mobile node then also computes the shared
   secret key value.

   The Diffie-Hellman algorithm allows the mobile node and its foreign
   agent to establish a registration key without any pre-existing
   mobility security associations, but the Diffie-Hellman algorithm
   itself is covered by a patent.  The method of establishing a
   registration key using Diffie-Hellman thus may not be usable by those
   who have not licensed the patent.

   Also, establishing a registration key using Diffie-Hellman is
   computationally more expensive than the method described in
   Section 2.4.  The use of Diffie-Hellman described here, though, is
   designed to allow the Diffie-Hellman computations to be overlapped
   with other activities.  The mobile node may choose the two public
   numbers at any time, or may use the same two public numbers for
   all registrations; for example, a mobile node may be configured by
   the administrator of its home network with the two public numbers,
   which the mobile node may continue to use until reconfigured by
   its home network administrator.  The mobile node may also choose
   its private random number and compute its function of this and the
   two public numbers at any time.  For example, after completing one
   registration, the mobile node may choose the random number for its
   next registration and begin the computation on this random number,
   such that it has completed this computation before it is needed in
   its next registration; in its simplest form, the mobile node may
   use the same random number and computed value for any number of
   registrations, or even for all registrations.  The foreign agent
   may choose its random number and begin computation its based on
   this number as soon as it receives the mobile node's Registration



Johnson and Perkins           Expires 7 January 1996            [Page 8]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   Request message, and need only complete this computation before it
   sends the matching Registration Reply message for the mobile node's
   registration.

      DISCUSSION: We could add a bit in the Agent Advertisement
      message, indicating that this foreign agent supports the
      Diffie-Hellman extension.  This would save the mobile node
      the effort of attempting Diffie-Hellman with a foreign agent
      that did not support it.

      DISCUSSION: This could be extended to support other similar
      key exchange algorithms, either by adding a new Request
      and Reply extension for each, or by adding a field in the
      extensions to indicate which algorithm is to be used.
      Diffie-Hellman seems the only obvious choice, though,
      currently.



































Johnson and Perkins           Expires 7 January 1996            [Page 9]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


3. Route Optimization Message Formats

   Route Optimization defines four message types used for management
   of binding cache entries.  Each of these messages begins with a
   one-octet field indicating the type of the message.

   The following Type codes are defined in this document:

      16 = Binding Warning message
      17 = Binding Request message
      18 = Binding Update message
      19 = Binding Acknowledge message







































Johnson and Perkins           Expires 7 January 1996           [Page 10]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


3.1. Binding Warning Message

   A Binding Warning message is used to advise a node that it appears
   to have either no binding cache entry or an out-of-date binding
   cache entry for some mobile node.  When any node receives a datagram
   tunneled to itself, if it is not the current foreign agent for the
   destination mobile node, it MAY send a Binding Warning message to the
   node that originated the tunneled datagram.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |                   Reserved                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Mobile Node Home Address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         16

      Reserved

         Sent as 0; ignored on reception.

      Mobile Node Home Address

         The home address of the mobile node to which the Binding
         Warning message refers.






















Johnson and Perkins           Expires 7 January 1996           [Page 11]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


3.2. Binding Request Message

   A Binding Request message is used by a node to request a mobile
   node's current mobility binding from the mobile node's home agent.
   It is sent by a node upon receiving a Binding Warning message, or by
   a node desiring to update the mobility binding in a binding cache
   entry that it holds for the mobile node.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |                  Reserved                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Mobile Node Home Address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                         Identification                        +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         17

      Reserved

         Sent as 0; ignored on reception.

      Mobile Node Home Address

         The home address of the mobile node to which the Binding
         Request refers.

      Identification

         A 64-bit sequence number, assigned by the node sending the
         Binding Request message, used to assist in matching requests
         with replies, and in protecting against replay attacks.













Johnson and Perkins           Expires 7 January 1996           [Page 12]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


3.3. Binding Update Message

   The Binding Update message is used to notify another node of a mobile
   node's current mobility binding.  It MAY be sent by the mobile node's
   home agent in response to a Binding Request message.  It MAY also
   be sent by a mobile node, or by the foreign agent with which the
   mobile node is registering, when notifying the mobile node's previous
   foreign agent that the mobile node has moved.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |A|I|M|G|  Rsvd |            Lifetime           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                            Lifetime                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Mobile Node Home Address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        Care-of Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                         Identification                        +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | Extensions ...
   +-+-+-+-+-+-+-+-

      Type

         18

      Acknowledge (A)

         The Acknowledge (A) bit is set by the node sending the Binding
         Update message to request a Binding Acknowledge message be
         returned acknowledging its receipt.

      Identification Present (I)

         The Identification Present (I) bit is set by the node sending
         the Binding Update message to indicate whether or not the
         Identification field is present.

      Minimal Encapsulation (M)

         If the Minimal Encapsulation (M) bit is set, datagrams may be
         tunneled to the mobile node using the minimal encapsulation
         protocol used in the base Mobile IP protocol.



Johnson and Perkins           Expires 7 January 1996           [Page 13]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


      GRE Encapsulation (G)

         If the GRE Encapsulation (G) bit is set, datagrams may be
         tunneled to the mobile node using the GRE encapsulation
         protocol [5].

      Rsvd

         Sent as 0; ignored on reception.

      Lifetime

         The number of seconds remaining before the binding cache entry
         must be considered expired.  A value of all ones indicates
         infinity.  A value of zero indicates that no binding cache
         entry for the mobile node should be created, and any existing
         binding cache entry (and visitor list entry, in the case of
         a mobile node's previous foreign agent) for the mobile node
         should be deleted.  The lifetime is typically equal to the
         remaining lifetime of the mobile node's registration.

      Mobile Node Home Address

         The home address of the mobile node to which the Binding Update
         message refers.

      Care-of Address

         The current care-of address of the mobile node.  When set equal
         to the home address of the mobile node, the Binding Update
         message instead indicates that no binding cache entry for the
         mobile node should be created, and any existing binding cache
         entry (and visitor list entry, in the case of a mobile node's
         previous foreign agent) for the mobile node should be deleted.

      Identification

         If present, a 64-bit number, assigned by the node sending the
         Binding Request message, used to assist in matching requests
         with replies, and in protecting against replay attacks.

   The Route Optimization Authentication extension (Section 4.2) is
   required.








Johnson and Perkins           Expires 7 January 1996           [Page 14]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


3.4. Binding Acknowledge Message

   A Binding Acknowledge message is used to acknowledge receipt of a
   Binding Update message.  It is sent by a node receiving the Binding
   Update message, if the Acknowledge (A) bit is set in the Binding
   Update message.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |N|               Reserved                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Mobile Node Home Address                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                         Identification                        +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         19

      N

         This bit is set if the acknowledgement is negative.  For
         instance, if the binding update was not accepted, but the
         incoming datagram has the Acknowledge flag set, then the N bit
         is set in this Binding Acknowledge message.

            DISCUSSION: Alternatively, we could replace this bit with
            a status code, as in the Registration Reply message.  The
            mobile node could log the error, but currently has no
            real way to recover from it.

      Reserved

         Sent as 0; ignored on reception.

      Mobile Node Home Address

         Copied from the Binding Update message being acknowledged.

      Identification

         Copied from the Binding Update message being acknowledged, if
         present there.




Johnson and Perkins           Expires 7 January 1996           [Page 15]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4. Route Optimization Extension Formats

   Route Optimization defines the following Mobile IP message
   extensions:

       96 = Previous Foreign Agent Notification Extension
       97 = Route Optimization Authentication Extension
       98 = Home Agent Registration Key Request Extension
       99 = Mobile Node Registration Key Reply Extension
      100 = Foreign Agent Registration Key Reply Extension
      101 = Diffie-Hellman Registration Key Request Extension
      102 = Diffie-Hellman Registration Key Reply Extension







































Johnson and Perkins           Expires 7 January 1996           [Page 16]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.1. Previous Foreign Agent Notification Extension

   The Previous Foreign Agent Notification extension may be included
   in a Registration Request message sent to a foreign agent.  It
   requests the new foreign agent to send a Binding Update message on
   behalf of the mobile node, to the mobile node's previous foreign
   agent, to notify it that the mobile node has moved.  The previous
   foreign agent deletes the mobile node's visitor list entry, and also
   creates a binding cache entry for the mobile node pointing to its new
   care-of address if a new care-of address is included in the Binding
   Update message.  The Previous Foreign Agent Notification extension
   contains only those values not otherwise already contained in the
   Registration Request message, that are needed for the new foreign
   agent to construct the Binding Update message.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |         Cache Lifetime        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                 Previous Foreign Agent Address                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                   New Care-of Address Address                 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Authenticator ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         96

      Length

         10 plus the length of the Authenticator

      Cache Lifetime

         The number of seconds remaining before the binding cache entry
         created by the previous foreign agent must be considered
         expired.  A value of all ones indicates infinity.  A value
         of zero indicates that the previous foreign agent should not
         create a binding cache entry for the mobile node once it has
         deleted the mobile node's visitor list entry.  The Cache
         Lifetime value is copied into the Lifetime field of the Binding
         Update message.






Johnson and Perkins           Expires 7 January 1996           [Page 17]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


      Previous Foreign Agent Address

         The IP address of the mobile node's previous foreign agent
         to which the new foreign agent should send a Binding Update
         message on behalf of the mobile node.

      New Care-of Address

         The new care-of address for the new foreign agent to send in
         the Binding Update message to the previous foreign agent.  This
         SHOULD be either the care-of address being registered in this
         new registration (i.e., to cause IP datagrams from the previous
         foreign agent to be tunneled to the new foreign agent) or the
         mobile node's home address (i.e., to cause the previous foreign
         agent to only delete its visitor list entry for the mobile
         node).

      Authenticator

         The authenticator value to be used in the Route Optimization
         Authentication extension in the Binding Update message sent by
         the new foreign agent to the mobile node's previous foreign
         agent.  This authenticator is calculated only over the Binding
         Update message body.



























Johnson and Perkins           Expires 7 January 1996           [Page 18]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.2. Route Optimization Authentication Extension

   The Route Optimization Authentication extension is used to
   authenticate certain Route Optimization management messages.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |        Authenticator ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         97

      Length

         The length of the Authenticator

      Authenticator

         (variable length) A hash value taken over a stream of bytes
         including the shared secret, all prior extensions in their
         entirety, the the Route Optimization management data, and
         the type and length of this extension, but not including the
         Authenticator field itself.

























Johnson and Perkins           Expires 7 January 1996           [Page 19]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.3. Home Agent Registration Key Request Extension

   The Home Agent Registration Key Request extension may be used in
   Registration Request messages to request a registration key from
   the mobile node's home agent.  The extension is authenticated along
   with the rest of the Registration Request message, and thus no
   additional authenticator is included in the extension.  In response
   to a Home Agent Registration Key Request extension, the home agent
   MAY include a Mobile Node Registration Key extension and a Foreign
   Agent Registration Key extension in its Registration Reply message,
   containing encrypted copies of the registration key for the mobile
   node the foreign agent, respectively.

    0                   1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         98

      Length

         0

   The mobility security association assumed to exist between the home
   agent and the mobile node will be used to encrypt the key sent in
   the Mobile Node Registration Key Reply extension, unless a Key
   Identification extension is also included with the Registration
   Request message.



















Johnson and Perkins           Expires 7 January 1996           [Page 20]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.4. Mobile Node Registration Key Reply Extension

   The Mobile Node Registration Key Reply extension may be used in
   Registration Reply messages to send a registration key from the
   mobile node's home agent to the mobile node.  When used, the home
   agent MUST also include a Foreign Agent Registration Key Reply
   extension in the Registration Reply message, giving a copy of the
   same key to the mobile node's new foreign agent.  The Mobile Node
   Registration Key Reply extension is authenticated along with the
   rest of the Registration Reply message, and thus no additional
   authenticator is included in the extension.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |  Mobile Node Encrypted Key ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         99

      Length

         The length of the Mobile Node Encrypted Key

      Mobile Node Encrypted Key

         (variable length) The registration key, chosen by the home
         agent, encrypted based on the mobility security association
         between the home agent and the mobile node.  The same key must
         be sent, encrypted for the foreign agent in a Foreign Agent
         Registration Key extension in this Registration Reply message.


















Johnson and Perkins           Expires 7 January 1996           [Page 21]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.5. Foreign Agent Registration Key Reply Extension

   The Foreign Agent Registration Key Reply extension may be used
   in Registration Reply messages to send a registration key from
   the mobile node's home agent to the mobile node's new foreign
   agent.  When used, the home agent MUST also include a Mobile Node
   Registration Key Reply extension in the Registration Reply message,
   giving a copy of the same key to the mobile node.  The Foreign Agent
   Registration Key Reply extension is authenticated by including an
   authenticator in the extension, computed based on the mobility
   security association shared between the home agent and the foreign
   agent.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |  Foreign Agent Encrypted Key ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Authenticator ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         100

      Length

         The length of the Foreign Agent Encrypted Key plus the length
         of the Authenticator

      Foreign Agent Encrypted Key

         (variable length) The registration key, chosen by the home
         agent, encrypted based on the mobility security association
         between the home agent and the foreign agent.  The same key
         must be sent, encrypted for the mobile node in a Mobile Node
         Registration Key extension in this Registration Reply message.

      Authenticator

         (variable length) A hash value taken over a stream of bytes
         including the shared secret and the fields in this extension
         other than the Authenticator field itself.








Johnson and Perkins           Expires 7 January 1996           [Page 22]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.6. Diffie-Hellman Registration Key Request Extension

   The Diffie-Hellman Registration Key Request extension may be included
   in a Registration Request message sent to a foreign agent.  It begins
   the Diffie-Hellman key exchange algorithm [2] between the mobile node
   and its new foreign agent, as described in Section 2.5.  The foreign
   agent SHOULD then include a Diffie-Hellman Registration Key Reply
   extension in its Registration Reply message sent to the mobile node
   in order to complete the key exchange.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              p ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                              g ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          g**x mod p ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         101

      Length

         2 plus 3 times the length of each of p, g, and g**x mod p.  The
         values p, g, and g**x mod p must all be the same length, which
         must be a multiple of 8 bits.

      p

         One of the two public numbers involved in the Diffie-Hellman
         key exchange algorithm.  The value p should be a large prime
         number.

      g

         One of the two public numbers involved in the Diffie-Hellman
         key exchange algorithm.  The value g should be less than p, and
         should be a primitive root of p.

      g**x mod p

         The mobile node chooses a large random number, x, and includes
         the computed value g**x mod p in the extension.



Johnson and Perkins           Expires 7 January 1996           [Page 23]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


4.7. Diffie-Hellman Registration Key Reply Extension

   The Diffie-Hellman Registration Key Reply extension SHOULD be
   included in a Registration Reply message sent by a foreign agent to
   a mobile node that include a Diffie-Hellman Registration Key Request
   extension in its Registration Request message to the foreign agent.

    0                   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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Length    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                          g**y mod p ...
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      Type

         101

      Length

         2 plus the length of g**y mod p.  The length of g**y mod p must
         be a multiple of 8 bits.

      g**x mod p

         The foreign agent chooses a large random number, y, and
         includes the computed value g**y mod p in the extension.
         The values of g and p are taken from the Diffie-Hellman
         Registration Key Request extension from the mobile node's
         Registration Request message.




















Johnson and Perkins           Expires 7 January 1996           [Page 24]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


5. Mobility Security Association Management

   One of the most difficult aspects of Route Optimization for Mobile IP
   in the Internet today is that of providing authentication for all
   messages that affect the routing of datagrams to a mobile node.
   In the base Mobile IP protocol, all routing of datagrams to the
   mobile node while away from its home network is controlled by the
   home agent, since only the home agent is aware of the mobile node's
   mobility binding and only the home agent tunnels datagrams to
   the mobile node.  Authentication is achieved based on a manually
   established mobility security association between the home agent and
   the mobile node.  Since the home agent and the mobile node are both
   owned by the same organization (both are assigned IP addresses within
   the same IP subnet), this manual configuration is manageable, and
   (for example) can be performed while the mobile node is at home.

   However, with Route Optimization, authentication is more difficult
   to manage, since a Binding Update may in general need to any node in
   the Internet.  Since no general authentication or key distribution
   protocol is available in the Internet today, the Route Optimization
   procedures defined in this document make use of the same type of
   manually configured mobility security associations used in the base
   Mobile IP protocol.  For use with Route Optimization, a mobility
   security association held by a correspondent node or a foreign agent
   must in general include the same parameters as required by the base
   Mobile IP protocol specification [6].

   For a correspondent node to be able to create a binding cache entry
   for a mobile node so that it can tunnel its own IP datagrams directly
   to the mobile node at its current location, the correspondent node
   and the mobile node's home agent must have established a mobility
   security association.  This mobility security association, though,
   may be used in creating and updating binding cache entries at this
   correspondent node for all mobile nodes served by this home agent.
   This places the correspondent node in a fairly natural relationship
   with respect to the mobile nodes served by this home agent.  For
   example, these mobile nodes may represent different people affiliated
   with the organization owning the home agent and these mobile nodes,
   with which the user of this correspondent node often collaborates.
   In this case, the effort of establishing the necessary mobility
   security association with this home agent may be justified.  It is
   similarly possible for a home agent to have a manually established
   mobility security association with the foreign agents often used by
   its mobile nodes, or for a particular mobile node to have a manually
   established mobility security association with the foreign agents
   serving the foreign networks that it often visits.





Johnson and Perkins           Expires 7 January 1996           [Page 25]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   In general, if the movement and communication patterns of a mobile
   node or the group of mobile nodes served by the same home agent are
   sufficient to justify establishing a mobility security association
   with the mobile node's home agent, users or network administrators
   are likely to do so.  Without establishing a mobility security
   association, nodes will not currently be able to use the Route
   Optimization extensions but can use the base Mobile IP protocol; in
   this case, though, datagrams destined for a mobile node have to be
   routed through the mobile node's home agent, to be tunneled to the
   mobile node's current location.









































Johnson and Perkins           Expires 7 January 1996           [Page 26]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


6. Binding Cache Considerations

   Any node may maintain a binding cache in order to optimize its own
   communication with mobile nodes.  When sending an IP datagram, if the
   sending node has a binding cache entry for the destination node, it
   MAY tunnel the datagram to the mobile node's care-of address using
   the encapsulation techniques described for home agents in the base
   Mobile IP protocol specification [6].  Any optional encapsulation
   methods supported are indicated by flag bits in the Binding Update
   message.

   When a mobile node's home agent intercepts a datagram on the home
   network and tunnels it to the mobile node, the originating node
   generally has no binding cache entry for the destination mobile node.
   In such cases, the home agent MAY send a Binding Update message to
   the originator.

   Similarly, when a node other than the foreign agent currently
   serving a mobile node receives a datagram for a mobile node, and
   this datagram has been tunneled to that node, the node tunneling
   the datagram generally has an out-of-date binding for the mobile
   node in its binding cache.  In such cases, the node receiving the
   tunneled datagram MAY send a Binding Warning message to the tunneling
   node, which SHOULD then request a new binding for the mobile node by
   sending a Binding Request message to the mobile node's home agent.


6.1. Cache Management

   A node maintaining a binding cache may use any reasonable strategy
   for managing the space within the cache.  When a new entry needs to
   be added to the binding cache, the node MAY choose to drop any entry
   already in the cache, if needed, to make space for the new entry.
   For example, a "least-recently used" (LRU) strategy for cache entry
   replacement is likely to work well.

   Each binding in the binding cache also has an associated lifetime,
   specified by in the Binding Update message in which the node obtained
   the binding.  After the expiration of this time period, the binding
   MUST be deleted from the cache.


6.2. Receiving Binding Warning Messages

   A node maintaining and using a binding cache will receive a Binding
   Warning message if its binding cache entry for a datagram it has
   tunneled is out-of-date, as determined by the node which receives the
   tunneled datagram.  When a node receives a Binding Warning message,



Johnson and Perkins           Expires 7 January 1996           [Page 27]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   it SHOULD request an updated binding for this mobile node from the
   mobile node's home agent, using a Binding Request message.  Included
   in the Binding Request message is a 64-bit identification field, in
   the same format described in the base Mobile IP protocol document,
   for matching the request with the returned Binding Update message.
   The node SHOULD silently discard any Binding Update messages that
   do not correspond with its latest Binding Request message for this
   mobile node.


6.3. Receiving Binding Update Messages

   When a node receives a Binding Update message, it MUST verify
   the authentication in the message, using the mobility security
   association it shares with the mobile node's home agent.  The
   authentication data is found in the Route Optimization Authentication
   extension (Section 4.2).  If the authentication succeeds, then a
   binding cache entry SHOULD be updated for use in future transmissions
   of data to the mobile node.  Otherwise, an authentication exception
   SHOULD be raised.


6.4. Using Special Tunnels

   Whenever any node receives a tunneled datagram for for which it has
   no binding cache entry or visitor list entry for the datagram's
   destination, the node may deduce then it has received the tunneled
   datagram in error.  In this case, the node should forward the
   datagram to the destination mobile node's home agent.  This tunneling
   should be done using a special form of tunneling called a "special
   tunnel", in which the tunneled datagram's destination address is
   set equal to the destination address in the tunneled datagram.
   Thus, both the "inner" and "outer" destination addresses are set to
   the home address of the mobile node.  The tunneled datagram will
   thus be routed to the mobile node's home network, where it will be
   intercepted by the mobile node's home agent in the same way as other
   datagrams addressed to the mobile node.

   The home agent should then tunnel the datagram to the current care-of
   address for the mobile node.  However, the home agent MUST NOT tunnel
   the datagram to the current care-of address if the special tunnel
   of the datagram originated at that care-of address.  The use of the
   special tunnel format allows the home agent to identify the node
   that tunneled the datagram to it (as well as the original sender of
   the datagram).  If the home agent believes that the current care-of
   address for the mobile node is the same as the source of the special
   tunnel, then the home agent SHOULD discard the datagram; in this
   case, the foreign agent serving the mobile node appears to have lost



Johnson and Perkins           Expires 7 January 1996           [Page 28]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   its entry for the mobile node in its visitor list, for example, if
   the foreign agent has crashed and rebooted.

   After tunneling the datagram to the current care-of address for the
   mobile node, the home agent MAY notify the source of the special
   tunnel of the mobile node's current binding, by sending it a Binding
   Update message.












































Johnson and Perkins           Expires 7 January 1996           [Page 29]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


7. Home Agent Considerations

   The home agent will be the frequent source of Binding Update messages
   sent to correspondent nodes that are communicating with its mobile
   nodes.  Any correspondent node that has no binding cache entry for a
   mobile node, will send normal, untunneled datagrams through the home
   agent by the normal routing in the Internet.  When the home agent
   first receives a datagram for a mobile node, it SHOULD also send a
   Binding Update message to the originator of the datagram in hopes
   that the originator will be able to create a binding cache entry for
   that mobile node.  Then, future datagrams sent by this node to the
   mobile node should not need the involvement of the home agent.

   As the Route Optimization extensions to the base Mobile IP protocol
   become widely implemented and deployed, more and more Internet nodes
   will be able to maintain a binding cache, and it is hoped that home
   agents will need to be involved only rarely with routing datagrams to
   mobile nodes.  The home agent might usually need to be involved only
   when a correspondent node first begins sending datagrams to a mobile
   node to which it has not sent previous datagrams within some long
   period of time.


7.1. Rate Limiting

   A home agent must provide some mechanism to limit the rate at which
   it sends Binding Update messages to to the same node about any given
   mobility binding, after tunneling a datagram intercepted on the home
   network.  This is especially important because it is expected that,
   within the short term, many Internet nodes will not be equipped with
   a binding cache.  In this case, continual transmissions of Binding
   Warning messages to such a correspondent node will only exacerbate
   the problem of the traffic bottleneck at the home agent, and will
   unnecessarily waste Internet resources between the home agent and the
   correspondent node.


7.2. Receiving Binding Request Messages

   When the home agent receives a Binding Request message, it consults
   its home list and determines the correct binding information to be
   sent to the requesting node.  Before satisfying the request, the
   home agent must check whether or not the mobile node has allowed the
   information to be disseminated.  If the mobile node specified the 'P'
   bit in its Registration Request message, then the home agent must not
   satisfy any Binding Requests.  In this case, the home agent SHOULD
   return Binding Update in which both the care-of address and the
   lifetime are set to zero.  Such a Binding Update message indicates



Johnson and Perkins           Expires 7 January 1996           [Page 30]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   that the binding cache entry for the specified mobile node should
   be deleted.  This situation can never arise by the action of any
   correctly operating node maintaining a binding cache, but it is still
   possible that an intelligent correspondent node might try to obtain
   bindings for mobile nodes.


7.3. Receiving Registration Key Requests

   When the home agent receives a Registration Request message, a Home
   Agent Registration Key Request extension (Section 4.3) may be present
   in the message, requesting the home agent to provide a registration
   key to the mobile node and its foreign agent, as described in
   Section 2.2.  In that event, the home agent employs a good algorithm
   for producing random keys [4] and encrypts the result separately for
   use by the foreign agent and by the mobile node.  The chosen key is
   encrypted under a key and algorithm shared between the home agent and
   the mobile node, and the encrypted key is placed in a Mobile Node
   Registration Key Reply extension (Section 4.4) in the Registration
   Reply message.  The same key also is encrypted under a key and
   algorithm shared between the home agent and the foreign agent, and
   the encrypted key is placed in a Foreign Agent Registration Key Reply
   extension (Section 4.5) in the Registration Reply message.


7.4. Receiving Special Tunnels

   The home agent may also receive tunneled datagrams destined for the
   mobile node.  If the tunnel source is the same as the foreign agent
   shown in the home list entry for the mobile node, then the home
   agent MUST NOT send the datagram back to that same foreign agent.
   Otherwise, the home agent can tunnel the tunneled datagram to the
   current foreign agent, encapsulating the incoming tunneled datagram
   in its entirety.

   The home agent also, in this case, takes responsibility for sending
   information to the originator of the datagram (whose source address
   will be in the inner datagram header inside the encapsulation), to
   allow that originator to update its binding cache entry for the
   target mobile node.  If the home agent has a mobility security
   association with the correspondent node which originated the
   datagram, an authenticated Binding Update message can be sent
   directly.








Johnson and Perkins           Expires 7 January 1996           [Page 31]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


8. Foreign Agent Considerations

   In addition to managing the resources needed to handle registrations
   in the base Mobile IP protocol, the foreign agent assisting with
   Route Optimization assumes two additional responsibilities.  The
   first is the maintenance of a binding cache for forwarding datagrams
   to mobile nodes as they switch connections to new foreign agents.
   The second is a small modification to the registration procedure, to
   allow for timely notification possible for previous foreign agents.


8.1. Establishing a Registration Key

   As part of the registration procedure, a mobile node and its new
   foreign agent can establish a registration key.  This registration
   key is, as described in Section 7.3, computed by the mobile node's
   home agent and transmitted back to the foreign agent (and to
   the mobile node) in the Registration Reply message.  Within this
   document, the registration key is used only for authentication of a
   single Binding Update message; other uses for the registration key
   are possible, but are outside the scope of this discussion.  For
   instance, the foreign agent and mobile node may negotiate to use
   the registration key to provide privacy along the wireless link
   connecting them.

   The actual request for the registration key is made by the mobile
   node (Section 2.2).  When the foreign agent receives the Registration
   Reply containing a Foreign Agent Registration Key Reply extension
   and a Mobile Node Registration Key Reply extension, the foreign
   agent removes the extension containing its own registration key,
   and forwards the rest of the Registration Reply message to the
   mobile node.  The Foreign Agent Registration Key Reply extension
   is covered by its own authentication, not by the authentication
   covering the Registration Reply message itself, and thus removing the
   Foreign Agent Registration Key Reply extension does not interfere
   with the mobile node's ability to verify the authentication on the
   Registration Reply message.


8.2. Previous Foreign Agent Notification

   When a mobile node registers with a new foreign agent, it may request
   that the new foreign agent send a Binding Update message to its
   previous foreign agent.  This Binding Update must be authenticated,
   using the Route Optimization Authentication extension (Section 4.2),
   as must all Binding Updates.  The Acknowledge bit in this Binding
   Update message must be set.




Johnson and Perkins           Expires 7 January 1996           [Page 32]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   When the previous foreign agent receives the Binding Update, it will
   use the mobility security association set up with the mobile node
   during its previous registration to authenticate the message.  If
   the message authentication is correct, the old visitor list entry
   will be deleted and a Binding Acknowledge message returned to the
   sender.  In addition, if a new care-of address was included with the
   new binding, a binding cache entry will be created for it, and the
   previous foreign agent can tunnel datagrams to the mobile node's
   current care-of address using that binding cache, just as any node
   maintaining a binding cache.

   In particular, the previous foreign agent can tunnel the Binding
   Acknowledge message back to the new care-of address specified in
   the received binding.  This creates an interesting problem for the
   new foreign agent when it receives the acknowledgment before the
   registration reply from the home agent.  It is suggested that the new
   foreign agent deliver the acknowledgment to the mobile node anyway,
   even though the mobile node is technically unregistered.  If there
   is concern that this provides a loophole for unauthorized traffic
   to the mobile node, the new foreign agent could limit the number of
   datagrams delivered to the unregistered mobile node to this single
   instance.  Alternatively, a new extension to the Registration Reply
   message can be defined to carry along the acknowledgement from the
   previous foreign agent.  This latter approach would have the benefit
   that fewer datagrams would be transmitted over bandwidth-constrained
   wireless media during registrations.

   The lifetime associated with the binding cache, in this situation,
   can be substantially shorter than other binding caches for several
   reasons.  First, the home agent is presumably tunneling datagrams to
   the new foreign agent; second, any active correspondent node will
   probably get a new binding cache entry for the mobile node after
   receiving the Binding Warning message from the previous foreign
   agent.  Lastly, even if the binding cache entry expires prematurely,
   the previous foreign agent can special tunnel any straggling
   datagrams back to the home agent for further delivery.


8.3. Receiving Tunneled Datagrams

   If the mobile node's current foreign agent receives a tunneled
   datagram for the mobile node, it can be assumed that the tunneled
   datagram was originated by a node maintaining a binding cache.
   There may be pathological or special cases where this assumption is
   false, but one would almost have to intentionally run custom code
   to invalidate the assumption.  Since the foreign agent currently
   serving a mobile node can assume that the sending node forwarded the
   datagram based on correct binding cache information, the foreign



Johnson and Perkins           Expires 7 January 1996           [Page 33]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   agent can also assume that the sending cache agent has already issued
   notification to the source of the original datagram.  Thus, the
   current foreign agent never needs to send a Binding Warning message
   to the node which last tunneled the datagram.

   On the other hand, a foreign agent which is tunneling received
   datagrams on behalf of a mobile node not in its visitor list should,
   just as any other node implementing Route Optimization, send Binding
   Warning messages to the originator of these datagrams.  If the
   datagrams it receives are not tunneled, the foreign agent should
   limit the rate at which it sends Binding Warning messages to the
   originators, since those originators may be unable to interpret such
   notifications.  It is expected that reception of such un-tunneled
   datagrams by any foreign agent will be rare.


8.4. Sending Special Tunnels

   If a foreign agent receives a tunneled datagram for a mobile node
   which is unknown, then the foreign agent can tunnel the datagram back
   to the home agent.  This requires special care at the home agent.
   The foreign agent must use the mobile node's address as the tunnel
   destination, and its own address as the tunnel source.  The home
   agent will then capture the special tunneled datagram and re-tunnel
   it to the mobile node via its current foreign agent.  The foreign
   agent sending the special tunnel should not notify the originator of
   the datagram about its out-of-date binding, as this will be done by
   the home agent which receives the special tunnel datagram.























Johnson and Perkins           Expires 7 January 1996           [Page 34]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


9. Mobile Node Considerations

9.1. Requesting a Registration Key

   When a mobile node sends a Registration Request message, it can
   also request a registration key to be established between itself
   and the prospective foreign agent.  The key will be used later to
   authenticate the Binding Update sent to this foreign agent to notify
   it that the mobile node has moved to a new care-of address.  The
   mobile node allows the home agent to pick the registration key,
   because it is expected that the mobile node is less likely to have
   good means for producing pseudo-random numbers [4].  The registration
   key will be returned to the mobile node in a Mobile Node Registration
   Key Reply extension to the Registration Reply message from the home
   agent.  A separate copy of the registration key is also returned to
   the foreign agent in a Foreign Agent Registration Key Reply extension
   to the Registration Reply message.


9.2. Notifying Previous Foreign Agents

   If the mobile node wishes to instruct its prospective foreign agent
   to send a Binding Update message to the mobile node's previous
   foreign agent, it includes a Previous Foreign Agent Notification
   extension (Section 4.1) in its Registration Request message.  This
   notification usually results in quicker establishment of a binding
   cache entry at the previous foreign agent, because the previous
   foreign agent is likely to be much closer to the new foreign agent
   than the home agent is.

   Since the prospective new foreign agent does not have access to
   the registration key which was established between the mobile node
   and its previous foreign agent, the mobile node must compute the
   appropriate authentication value for use by the prospective foreign
   agent.  This authentication is computed over the fields of the
   expected Binding Update message.

   When the Binding Acknowledgment message from the previous foreign
   agent is received by the new foreign agent, it detunnels it and
   sends it to the mobile node.  In this way, the mobile node can
   still discover that its previous foreign agent has updated its
   visitor list and binding cache.  This is important, because otherwise
   the previous foreign agent would often become a "black hole" for
   datagrams destined for the mobile node.  The new foreign agent has no
   further responsibility for helping to update the binding cache at the
   previous foreign agent.





Johnson and Perkins           Expires 7 January 1996           [Page 35]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


   The mobile node expects to eventually receive a Binding
   Acknowledgement from its previous foreign agent, signifying that the
   mobile node's entry has been erased from its visitor list.  If the
   acknowledgement has not been received after sufficient time, the
   mobile node is responsible for retransmitting another Binding Update
   message to its previous foreign agent.  Although the previous foreign
   agent may have already deleted the registration key from its records,
   the mobile node should continue to retransmit its Binding Update
   message until the previous foreign agent responds with a Binding
   Acknowledgement.

   Since the mobile node is responsible for handling the Binding
   Acknowledgement from its previous foreign agent, there is no need
   to add any status code or bit to the Registration Reply from its
   prospective new foreign agent




































Johnson and Perkins           Expires 7 January 1996           [Page 36]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


References

   [1] CDPD Forum.  Cellular Digital Packet Data system specification.
       Release 1.0, July 1993.

   [2] W. Diffie and M. E. Hellman.  New directions in cryptography.
       IEEE Transactions on Information Theory, IT-22(6):644--654,
       November 1976.

   [3] Ralph Droms.  Dynamic Host Configuration Protocol.  RFC 1541,
       October 1993.

   [4] Donald E. Eastlake 3rd, Stephen D. Crocker, and Jeffrey I.
       Schiller.  Randomness recommendations for security.  RFC 1750,
       December 1994.

   [5] Stan Hanks, Tony Li, Dino Farinacci, and Paul Traina.  Generic
       Routing Encapsulation (GRE).  RFC 1701, October 1994.

   [6] Charles Perkins, editor.  IP mobility support.  Internet Draft,
       draft-ietf-mobileip-protocol-10.txt, May 1995.  Work in progress.






























Johnson and Perkins           Expires 7 January 1996           [Page 37]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


Appendix A. Using a Master Key at the Home Agent

   Rather than storing each mobility security association that it has
   established with many different correspondent nodes and foreign
   agents, a home agent may manage its mobility security associations so
   that each of them can be generated from a single "master" key.  With
   the master key, the home agent could build a key for any given other
   node by computing the node-specific key as

      MD5(node-address || master-key || node-address)

   where node-address is the IP address of the particular node for which
   the home agent is building a key, and master-key is the single master
   key held by the home agent for all mobility security associations it
   has established with correspondent nodes.  The node-specific key is
   built by computing an MD5 hash over a string consisting of the master
   key with the node-address concatenated as a prefix and as a suffix.

   Using this scheme, when establishing each mobility security
   association, the network administrator managing the home agent
   computes the node-specific key and communicates this key to the
   network administrator of the other node through some "secure"
   channel, such as over the telephone.  The mobility security
   association is configured at this other node in the same way as any
   mobility security association.  At the home agent, though, no record
   need be kept that this key has been given out.  The home agent need
   only be configured to know that this scheme is in use for all of its
   mobility security associations.

   When the home agent then needs a mobility security association as
   part of the Route Optimization protocol, it builds the node-specific
   key based on the master key and the IP address of the other node with
   which it is attempting to authenticate.  If the other node knows
   the correct node-specific key, the authentication will succeed;
   otherwise, it will fail as it should.
















Johnson and Perkins           Expires 7 January 1996           [Page 38]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


Chairs' Addresses

   The working group can be contacted via the current chairs:

      Tony Li
      cisco Systems
      170 W. Tasman Drive
      San Jose, CA  95134

      Phone:  +1-408-526-8186
      E-mail: tli@cisco.com



      Jim Solomon
      Motorola, Inc.
      1301 E. Algonquin Road
      Schaumburg, IL  60196

      Phone:  +1-708-576-2753
      E-mail: solomon@comm.mot.com






























Johnson and Perkins           Expires 7 January 1996           [Page 39]


Internet Draft        Route Optimization in Mobile IP        7 July 1995


Authors' Addresses

   Questions about this document can also be directed to the authors:

      David B. Johnson
      Computer Science Department
      Carnegie Mellon University
      5000 Forbes Avenue
      Pittsburgh, PA  15213-3891

      Phone:  +1-412-268-7399
      Fax:    +1-412-268-5576
      E-mail: dbj@cs.cmu.edu



      Charles Perkins
      Room J1-A25
      T. J. Watson Research Center
      IBM Corporation
      30 Saw Mill River Rd.
      Hawthorne, NY  10532

      Phone:  +1-914-784-7350
      Fax:    +1-914-784-7007
      E-mail: perk@watson.ibm.com

























Johnson and Perkins           Expires 7 January 1996           [Page 40]