Internet DRAFT - draft-herbert-ila-ilamp

draft-herbert-ila-ilamp



 



INTERNET-DRAFT                                                T. Herbert
Intended Status: Standard                                     Quantonium
Expires: June 2018                                                      
                                                                        
                                                       December 21, 2017


             Identifier Locator Addressing Mapping Protocol
                       draft-herbert-ila-ilamp-00


Abstract

   Identifier-locator protocols rely on a mapping system that is able to
   map identifiers to locators. ILA nodes that perform ILA translations
   need to access the mapping system via a protocol. This document
   specifies the ILA Mapping Protocol that is used by ILA forwarding
   nodes and hosts to populate and maintain a cache of ILA mappings.

Status of this Memo

   This Internet-Draft is submitted to IETF in full conformance with the
   provisions of BCP 78 and 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/1id-abstracts.html

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


Copyright and License Notice

   Copyright (c) 2017 IETF Trust and the persons identified as the
   document authors. All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
 


T. Herbert               Expires June 24, 2018                  [Page 1]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document. Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document. Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.


Table of Contents

   1  Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2  Reference topology  . . . . . . . . . . . . . . . . . . . . . .  4
     2.1 Functional components  . . . . . . . . . . . . . . . . . . .  5
     2.2 ILA forwarding nodes and hosts . . . . . . . . . . . . . . .  5
       2.2.1 ILA forwarding nodes . . . . . . . . . . . . . . . . . .  5
       2.2.2 ILA hosts  . . . . . . . . . . . . . . . . . . . . . . .  5
       2.2.3 ILA address to SIR address translation . . . . . . . . .  5
       2.2.4 ILA Forwarding . . . . . . . . . . . . . . . . . . . . .  5
     2.3 ILA routers  . . . . . . . . . . . . . . . . . . . . . . . .  6
       2.3.1 Forwarding routers . . . . . . . . . . . . . . . . . . .  6
       2.3.2 Mapping routers  . . . . . . . . . . . . . . . . . . . .  6
       2.3.3 ILA router synchronization . . . . . . . . . . . . . . .  7
   3  ILA Mapping Protocol  . . . . . . . . . . . . . . . . . . . . .  7
     3.1 Common header format . . . . . . . . . . . . . . . . . . . .  8
     3.2 Hello messages . . . . . . . . . . . . . . . . . . . . . . .  8
   4  ILAMP Version 0 . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.1 Map request  . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.2 Map information  . . . . . . . . . . . . . . . . . . . . . . 10
     4.3 Extended map information . . . . . . . . . . . . . . . . . . 11
     4.4 Locator unreachable  . . . . . . . . . . . . . . . . . . . . 12
     4.5 Identifier and locator types . . . . . . . . . . . . . . . . 13
       4.5.1 Identifier types . . . . . . . . . . . . . . . . . . . . 13
       4.5.2 Locator types  . . . . . . . . . . . . . . . . . . . . . 13
   5  Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
     5.1 Version negotiation  . . . . . . . . . . . . . . . . . . . . 14
     5.2 Populating an ILA cache  . . . . . . . . . . . . . . . . . . 14
       5.2.1 ILA Redirects  . . . . . . . . . . . . . . . . . . . . . 15
         5.2.1.1 Proactive push with redirect . . . . . . . . . . . . 15
         5.2.1.2 Redirect rate limiting . . . . . . . . . . . . . . . 15
       5.2.2 Map request/reply  . . . . . . . . . . . . . . . . . . . 15
       5.2.3 Push mappings  . . . . . . . . . . . . . . . . . . . . . 16
     5.3 Cache maintenance  . . . . . . . . . . . . . . . . . . . . . 16
       5.3.1 Timeouts . . . . . . . . . . . . . . . . . . . . . . . . 16
       5.3.2 Cache refresh  . . . . . . . . . . . . . . . . . . . . . 16
       5.3.3 Cache timeout values . . . . . . . . . . . . . . . . . . 17
     5.4 ILA forwarding node and host receive processing  . . . . . . 17
     5.5 Locator unreachable handling . . . . . . . . . . . . . . . . 17
 


T. Herbert               Expires June 24, 2018                  [Page 2]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


     5.6 Control Connections  . . . . . . . . . . . . . . . . . . . . 18
     5.7 Protocol errors  . . . . . . . . . . . . . . . . . . . . . . 18
   6  Security Considerations . . . . . . . . . . . . . . . . . . . . 19
   7  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 20
   8  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 20
     8.1  Normative References  . . . . . . . . . . . . . . . . . . . 20
     8.2  Informative References  . . . . . . . . . . . . . . . . . . 20
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 20








































 


T. Herbert               Expires June 24, 2018                  [Page 3]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


1  Introduction

   The ILA Mapping Protocol (ILAMP) is a control plane protocol that
   provides ILA nodes mapping information. ILA [ILA] nodes that perform
   ILA translation rely on a mapping system to provide identifier to
   locator mappings. There are two levels of mapping protocols to be
   defined: one used by ILA routers that require the full set of ILA
   mappings for a domain, and one used by ILA nodes that maintain a
   caches of mappings. 

   The ILA mapping system is effectively a key/value database that maps
   identifiers to locators. The protocol for sharing mapping information
   amongst ILA routers, nodes that maintain a full table of mappings,
   can thus be a database. A database schema for the ILA mapping system
   will be described in a separate document. 

   ILA separates the control plane from the data plane, so alternative
   control plane protocols may be used with a common data plane. For
   instance, BGP could be used as a mapping system protocol [ILABGP].

2  Reference topology

   This section provides a reference topology forILA.

   The topology is general however can be adapted to specific ILA use
   cases such as data center virtualization and mobility networks. 

                                  Internet
                                      |
                             +-----------------+
                             |     ILA-FR      |
                             |Forwarding router|
                             +--------+--------+
           +------------+        _____|_____        +------------+
           |   ILA-MR   |       (  Shared   )       |   ILA-MR   |
           | IMP router +-------( Database  )-------+ IMP router |
           +------+-----+       (___________)       +------+-----+
                  |                                        |
          +-------+--+----------+            +----------+--+-------+
          |          |          |            |          |          | 
      +---+---+  +---+---+  +---+---+    +---+---+  +---+---+  +-------+
      | ILA-N |  | ILA-N |  | ILA-H |    | ILA-N |  | ILA-N |  | ILA-H |
      +-------+  +-------+  +-------+    +-------+  +-------+  +-------+
          |          |                       |          |
      End hosts   End hosts              End hosts   End hosts



 


T. Herbert               Expires June 24, 2018                  [Page 4]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


2.1 Functional components

   There are four types of functional nodes in the ILA architecture:

     ILA-N: ILA forwarding nodes

     ILA-H: ILA hosts

     ILA-FR: ILA forwarding routers

     ILA-MR: ILA mapping routers

2.2 ILA forwarding nodes and hosts

2.2.1 ILA forwarding nodes

   ILA forwarding nodes (ILA-N) are deployed in the network
   infrastructure towards the edges to provide caches for ILA
   forwarding. ILA forwarding nodes have two functions: ILA address to
   SIR address translation and ILA forwarding. As indicated in the
   reference topology, forwarding nodes may deployed near the point of
   device attachment (e.g. base station, eNodeB) of user devices (e.g.
   UEs).

2.2.2 ILA hosts

   ILA hosts (ILA-H) are end hosts that participate in ILA. These may be
   servers that provide ILA to work with virtualization techniques such
   as VMs or containers. ILA hosts perform the same functions as ILA
   forwarding nodes, however the source of packets is local to the same
   host so there are some optimizations that may be applied.

2.2.3 ILA address to SIR address translation

   ILA forwarding nodes and hosts perform ILA address to SIR address
   translation. This is a reverse ILA translation in order to restore
   the original addresses in a packet for delivery. Forwarding the
   packet on to the destination is done based on the SIR address. For
   instance, a forwarding node may map a SIR address to a layer 2
   address of a directly attached device that has the SIR address. Note
   that this functionality is required somewhere in the path between the
   node that writes a locator into an address and the ultimate
   destination device.

2.2.4 ILA Forwarding

   An ILA forwarding node or host may perform ILA translation and
   forward packets directly to peer ILA nodes in the same domain. The
 


T. Herbert               Expires June 24, 2018                  [Page 5]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   mappings for this are maintained in a working set cache. As a cache
   there must be methods to populate, evict, and timeout entries. A
   cache is considered an optimization so the system should be
   functional without its use (e.g. if the cache has no entries). 

2.3 ILA routers

   ILA routers (denoted by ILA-R*) are deployed within the network
   infrastructure and collectively contain a database of all identifier
   to locator mappings in the domain, as well as all identifier group
   information for the domain. The database may be sharded across some
   number of ILA routers for scalability. ILA routers that maintain the
   database or a shard may be replicated for scalability and
   availability.

   ILA routers provide two main functions: ILA forwarding and mapping
   resolution. An ILA router may perform one or the other of these
   functions or may provide both at the same time.

2.3.1 Forwarding routers

   Forwarding routers (ILA-FR) perform ILA translation when packets
   enter a domain. A destination address of a packet that is a SIR
   address is translated to an ILA address. The process is that the
   router performs a lookup on the destination address in the mapping
   table and a locator is returned. The locator is written into the
   destination address of the packet (that is the high order sixty-four
   bits are overwritten with a locator).

   In the case of a sharded database being used, the high order bits of
   the identifier indicate the shard number. This is included in a
   routing prefix so that the packet is routed to an ILA router that
   contains the database for the relevant shard.

2.3.2 Mapping routers

   A mapping router (ILA-MR) provides ILA forwarding nodes and hosts
   mapping information. A mapping router may also perform ILA
   translations and forwarding. A mapping router implements ILAMP to
   communicate with ILA forwarding nodes and hosts. Mapping information
   is provided by a request/reply protocol, ILA redirects, or by a push
   mechanism.

   An ILA router that is performing mapping resolution will respond to
   mapping requests from ILA forwarding nodes or ILA hosts. The mapping
   request protocol allows a node to request the locator information for
   an identifier address.

 


T. Herbert               Expires June 24, 2018                  [Page 6]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   A mapping router can send ILA redirects to ILA forwarding nodes and
   ILA hosts in order to inform them of a direct ILA path. A redirect is
   sent to the upstream ILA forwarding node or host of the source which
   is determined by an ILA lookup the source address.

2.3.3 ILA router synchronization

   ILA routers, both those that are forwarding and those that provide
   mapping resolution, must synchronize the contents of the database.
   This synchronization is done for each shard. When a change occurs to
   an identifier-locator mapping, for instance the locator for an
   identifier changes, the shard that contains the identifier must be
   synchronized in as little time to converge as possible.

   There are a number of options to use for implementing the ILA mapping
   system and router protocol. One option is to use a key/value database
   (such as a NoSQL database like Redis).

   The idea of the database is that each shard is a distributed database
   instance with some number of replicas. When a write is done in the
   database, the change is propagated throughout all of the replicas for
   the shard using the standard database replication mechanisms. Mapping
   information is written to the database using common database API and
   requires authenticated write permissions. Each ILA router can read
   the database for the associated shard to perform its function.

   The specifics of applying a database and a database schema for ILA
   will be provided in other documents.

3  ILA Mapping Protocol

   The ILA Mapping Protocol (ILAMP) is used between ILA forwarding nodes
   and ILA mapping routers. The purpose of the protocol is to populate
   and maintain the ILA mapping cache in forwarding nodes. 

   ILAMP defines redirects, a request/response protocol, and a push
   mechanism to populate the mapping table. Unlike traditional routing
   protocols that run over UDP, this protocol is intended to be run over
   TCP. TCP provides reliability, statefulness implied by established
   connections, ordering, and security in the form of TLS. Secure
   redirects are facilitated by the use of TCP.

   ILAMP is used to send message between ILA routers and ILA forwarding
   nodes or hosts. The messages are sent over the TCP stream and must be
   delineated by a receiver. Different versions of ILAMP are allowed and
   the version used for communication is negotiated by Hello messages.


 


T. Herbert               Expires June 24, 2018                  [Page 7]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


3.1 Common header format

   All ILAMP messages begin with a two octet common header:

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      | Type  |       Length          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The contents of the common header are: 

     o Type: Indicates the type of message. A type 0 message is a hello
       message. Types greater than zero are interpreted per the
       negotiated version.

     o Length: Length of the message in octets. This includes the common
       header. The minimal length of a message is 2 octets and the
       maximum length is 1,048,575 octets.

   Following the two octet common header is variable length data that is
   specific to the version and type the message.

3.2 Hello messages

   Hello messages indicate the versions of ILAMP that a node supports.
   Hello message MUST be sent by each side as the first message in the
   connection.

   The format of an ILAMP Hello message is:

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |  0    |           4             |R|  Rsvd     | MinV  | MaxV  |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The contents of the Hello message are:

     o Type = 0. This is indicates the type is a Hello message.

     o Router bit: Indicates the sender is an ILA router. If the sender
       is an ILA forwarding node or host this bit is cleared.

     o Rsvd: Reserved bits. Must be set to zero on transmit.

     o MinV: Minimum version number supported by the sending node.

     o MaxV: Maximum version number supported by the sending node.

   Version numbers are from 0 to 15. This document describes version 0
   of ILAMP.
 


T. Herbert               Expires June 24, 2018                  [Page 8]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


4  ILAMP Version 0

   The message types in version 0 of IMP are:

     o Map request (Type = 1)

     o Map information (Type = 2)

     o Extended map information (Type = 3)

     o Locator unreachable (Type = 4)

4.1 Map request

   A map request is sent by an ILA forwarding node or host to an ILA
   mapping router to request mapping information for a list of
   identifiers. The format of a map request is:

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   0   |       Length          |         Rsvd          | IDType| 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
   |                                                               | |
   ~                         Identifier                            ~ ent
   |                                                               | |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/

   The contents of the map request message are:

     o Type = 1. This is indicates the type is map request.

     o Length: Set to 4 plus the size of the identifier times the number
       of identifiers in the list.

     o Rsvd: Reserved bits. Must be set to zero when sending.

     o IDType: Identifier type. Specifies the identifier type. This also
       implies the length of each identifier in the request list.
       Identifier types are defined below.

     o Identifier: An identifier of type indicated by IDType. The size
       of an identifier is specified by the type.

   The Identifier field is repeated for each identifier in the list. The
   number of identifiers being requested is (message length - 4) /
   (identifier size).



 


T. Herbert               Expires June 24, 2018                  [Page 9]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


4.2 Map information

   Map information messages are sent by an ILA router to an ILA
   forwarding node or host. This message provides a list of identifier
   to locator mappings. The format of a map information message is:

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   2   |       Length          | Rsvd  |SubType|LocType| IDType| 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
   |                                                               | |
   ~                            Identifier                         ~ e
   |                                                               | n
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ t
   |                                                               | |
   ~                            Locator                            ~ |
   |                                                               |/
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The contents of the map information message are:

     o Type = 2. This is indicates the type is map information.

     o Length: Set to 4 plus the size of an identifier and locator times
       the number of identifier/locator pairs in the list.

     o Rsvd: Reserved bits. Must be set to zero when sending.

     o SubType: Specifies the reason that ILA-R sent this message. Sub
       types are

       o 0: Redirect

       o 1: Map reply to a map request

       o 2: Push map information

     o LocType: Locator type. Specifies the locator type. This also
       implies the length of each locator in the list. Locator types are
       defined below.

     o IDType: Identifier type. Specifies the identifier type. This also
       implies the length of each identifier in the list. Identifier
       types are defined below.

     o Identifier: An identifier of type indicated by IDType. The size
       of an identifier is specified by the type.

     o Locator: A locator of type indicated by LocType. The size of a
 


T. Herbert               Expires June 24, 2018                 [Page 10]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


       locator is specified by the type.

   The Identifier/Locator pair is repeated for each mapping being
   reported in the list. The number of identifiers being requested is
   (message length - 4) / (identifier size + locator size).

4.3 Extended map information

   An extended locator map information message is sent by an ILA router
   to associate more than one locator with an identifier as well as
   providing an expiration time for an identifier locator mapping and
   additional locator specific attributes. The format of an extended map
   information is:

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   3   |       Length          | Rsvd  |SubType|LocType|IDType | 
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+
   |                                                               |   |
   ~                            Identifier                         ~   |
   |                                                               |   r
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+   e
   |  Num locator  |               Record timeout                  |   c
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\  o
   | Prio  | Rsvd  | Weight        |             Rsvd              | e r
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ t d
   |                                                               | t |
   ~                            Locator                            ~ | |
   |                                                               |/  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ <-+

   The contents of the map reply message are:

     o Type = 3. This indicates an extended map information message

     o Length: Set to 4 plus the sum of sizes for each identifier record
       in the list.

     o Rsvd: Reserved bits. Must be set to zero when sending.

     o SubType: Specifies the reason that an ILA router sent this
       messages. Sub types are:

       o 0: Map reply to a map request

       o 1: Redirect

       o 2: Push map information

 


T. Herbert               Expires June 24, 2018                 [Page 11]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


     o LocType: Locator type. Specifies the locator type. This also
       implies the length of each locator in the list. Locator types are
       defined below.

     o IDType: Identifier type. Specifies the identifier type. This also
       implies the length of each identifier in the list. Identifier
       types are defined below.

     o Num locator: Number of locators being reported for an identifier.

     o Record timeout: The time to live for the identifier information
       in seconds. A value of zero indicates the default is used.

     o Priority:  Relative priority of a locator. Locators with higher
       priority values have preference to be used. Locators that have
       the same priority may be used for load balancing.

     o Weight: Relative weights assigned to each locator. In the case
       that locators have the same priority the weights are used to
       control how traffic is distributed. A weight of zero indicates no
       weight and the mapping is not used unless all locators for the
       same priority have a weight of zero.

     o Locator: A locator of type specified in LocType.

   The identifier record is repeated for each mapping being reported and
   the locator entry is repeated for each locator being reported for an
   identifier. The total number of identifiers being reported is
   determined by parsing the message.

4.4 Locator unreachable

   A locator unreachable message is sent by an ILA router to ILA
   forwarding node or host in the event that a locator or locators are
   known to no longer be reachable. The format of a locator unreachable
   message is:

   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   4   |       Length          |     Rsvd      |LocType| Rsvd  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+\
   |                                                               | |
   ~                           Locator                             ~ ent
   |                                                               | |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+/

   The contents of the locator ureachable message are:

     o Type = 4. This is indicates the type is a locator unreachable
 


T. Herbert               Expires June 24, 2018                 [Page 12]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


       message.

     o Length: Set to 4 plus the size of the locator times the number of
       locators in the list.

     o Rsvd: Reserved bits. Must be set to zero when sending.

     o LocType: Locator type. Specifies the locator type. This also
       implies the length of each locator in the list. Locator types are
       defined below.

     o Locator: A locator of type indicated by LocType. The size of a
       locator is specified by the type.

   The Locator field is repeated for each locator in the list. The
   number of locators being reported is (message length - 4) / (locator
   size).

4.5 Identifier and locator types

4.5.1 Identifier types

   Identifier types used in IDType fields of ILAMP messages are:

     o IPv6 address (IDType = 1): 128 bit IPv6 address

     o ILA Identifier (IDType = 2): 64 bit ILA identifier

     o 32 bit index (IDType = 3): 32 bit index into an identifier table

     o 64 bit index (IDType = 4): 64 bit index into an identifier table

   For the table index types it is assumed that a table mapping index to
   and identifier is shared with ILA forwarding nodes and hosts.

4.5.2 Locator types

   Locator types used in LocType fields of ILAMP messages are:

     o IPv6 address (LocType = 1): 128 bit IPv6 address

     o ILA Identifier (LocType = 2): 64 bit ILA locator

     o 32 bit index (LocType = 3): 32 bit index into an locator table

     o 64 bit index (LocType = 4): 64 bit index into an locator table

   For the table index types it is assumed that a table mapping index to
 


T. Herbert               Expires June 24, 2018                 [Page 13]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   and locator is shared with ILA forwarding nodes and hosts.

5  Operation

5.1 Version negotiation

   The first message sent by each side of an ILAMP connection is a Hello
   message. Hello messages contain the minimum and maximum versions of
   ILAMP supported. The minimum and maximum values form an inclusive
   range.

   When a host receives and ILAMP Hello it determines which version is
   negotiated. The negotiated version is the maximum version number
   support by both sides. For instance, if a node advertises a minimum
   version of 0 and maximum of 1 and receives a peer Hello message with
   a minimum version of 0 and maximum of 2; then the negotiated version
   is 1 since that is the greatest version supported by both sides. The
   peer host will also determine that 1 is the negotiated version.

   If there is no common version supported between the peers, that is
   their supported version ranges are disjoint, then version negotiation
   fails. The connection MUST be terminated and error message SHOULD be
   logged.

   If both sides set the router bit or both clear the router bit in a
   Hello message, then this is an error and the connection MUST be
   terminated and error message SHOULD be logged. Both sides cannot have
   the same role in an ILAMP session.

5.2 Populating an ILA cache

   ILA forwarding nodes and ILA hosts maintain a cache of identifier to
   locator mappings. There are three means that this cache can be
   populated by ILAMP:

     o ILA redirect

     o Mapping request/reply

     o Push mappings

   ILA redirects are RECOMMNDED to be the primary means of obtaining
   mapping information. Request/reply and push mappings may be used in
   limited circumstances, however generally these techniques don't
   scale.

   Note that forwarding nodes and hosts do not hold packets that are
   pending mapping resolution. If a node does not have a mapping for a
 


T. Herbert               Expires June 24, 2018                 [Page 14]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   destination in its cache then packet is forwarded in the network. The
   packet should be translated by an ILA router and sent to the proper
   destination node.

5.2.1 ILA Redirects

   A mapping router can send ILA redirects in conjunction with
   forwarding packets. Redirects are sent to ILA forwarding nodes and
   ILA hosts in order to inform them of a direct ILA path. A redirect is
   sent to the upstream ILA forwarding node or host of the source which
   is determined by an ILA lookup on the source address of the packet
   being forwarded. The found locator is used to infer an address of the
   ILA forwarding node or host. For instance, the address of the
   forwarding node might be <locator>::1 where <locator> is a sixty-four
   bit prefix and 0:0:0:1 is reserved as a special identifier. Note that
   this technique assumes a symmetric path towards the source. If a
   redirect is sent then the received packet that motivated the redirect
   MUST be ILA translated and forwarded by the router.

5.2.1.1 Proactive push with redirect

   In addition to sending an ILA redirect to the ILA forwarding node or
   host, a mapping router MAY send an ILA push to the ILA forwarding
   node or host of the destination to inform it of the identifier to
   locator mapping for the source address in a packet. This is an
   optimization to push the ILA translation that will be used in the
   reverse direction of the communications. In order to do this, the
   mapping router performs an ILA lookup on the source address (which
   should already be done to perform the redirect). An ILA push message
   is then sent to the forwarding node or host based on its locator.

5.2.1.2 Redirect rate limiting

   A mapping router SHOULD rate limit the number of redirects it sends
   to a forwarding node or host for each redirected address. The rate
   limit SHOULD be configurable. The default SHOULD be that no more than
   one redirect is sent every one half of the minimum identifier timeout
   being used. The minimum rate limit SHOULD be to send no more than one
   redirect per second per redirected identifier. If a mapping change is
   detected the rate limiting SHOULD be reset so that redirects for a
   new mapping can be sent immediately.

5.2.2 Map request/reply

   A forwarding node or host may send a map request message to obtain
   mapping information for a locator. If the receiving mapping router
   has the mapping information it responds with a map information
   message. If the mapping router does not have a mapping entry for the
 


T. Herbert               Expires June 24, 2018                 [Page 15]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   requested identifier it MAY reply with in all zeros locator (LocType
   = 2 and 64 bit locator is all zeroes).

   Map requests are NOT RECOMMENDED to be used to populate entries in
   the cache table that are not present. The problem with this technique
   is that an ILA forwarding node or host may generate a map request for
   each new destination that it gets from a downstream end host. A
   downstream end host could launch a Denial of Service (DOS) attack
   whereby it sends packets with random destination addresses that
   requires a mapping looking. In the worse case scenario the mapping
   router would send a map request for every packet received. Rate
   limiting the sending of map requests does not mitigate the problem
   since that would prevent the cache from getting mappings for
   legitimate destinations.

5.2.3 Push mappings

   A mapping router may push mappings to an ILA forwarding node or host
   without being requested to do so. This mechanism could be used to
   pre-populate an ILA cache. Pre-populating the cache might be done if
   the network has a very small number of identifiers or there are a set
   of identifiers that are likely to be used for forwarding in most ILA
   forwarding nodes and hosts (identifiers for common services in the
   network for instance). When a mapping router detects a changed
   mapping, the locator changes for instance, the new mapping can be
   pushed to the ILA nodes and hosts.

   The push model is NOT RECOMMENDED as a primary means to populate an
   ILA cache since this does not scale. Conceivably, one could keep
   track of all ILA mappings and to which nodes the mapping information
   was provided. When a mapping changes, mapping information could be
   sent to those nodes that expressed interest. Such a scheme will not
   scale in deployments that have many mappings.

5.3 Cache maintenance

5.3.1 Timeouts

   A node SHOULD apply a timeout for the mapping entry using either the
   default timeout or record timeout if one was received in an extended
   map information message. If the timeout fires then the mapping entry
   is removed. Subsequent packets may cause a mapping router to send a
   redirect so that the mapping entry gets repopulated in the cache.

5.3.2 Cache refresh

   In order to avoid cycling a mapping entry with a redirect for a
   mapping that times out, a node MAY try to refresh the mapping before
 


T. Herbert               Expires June 24, 2018                 [Page 16]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   timeout. This should only be done if the cache entry has been used to
   forward a packet during the timeout interval.

   A cache refresh is performed by sending a map request for an
   identifier before its cache entry expires. If a map information
   messages is received for the identifier then the timeout can be reset
   and there are no other side effects.

5.3.3 Cache timeout values

   The RECOMMENDED default timeout for identifiers is one minute. If a
   node sends a map request to refresh a mapping, the RECOMMENDED
   default is to send the request ten seconds before the the mapping
   expires.

5.4 ILA forwarding node and host receive processing

   If an ILA forwarding node or host receives an ILA addressed packet
   with its locator it will check its local mapping database to
   determine if the identifier is local. If the identifier is local, a
   forwarding node will forward the packet to its destination after ILA
   to SIR address translation has been done on the packet's destination
   address. Similarly, an ILA host will receive the packet into it's
   local stack after ILA to SIR address translation.

   If the identifier is not local then the ILA forwarding node or host
   will perform ILA to SIR address translation on the destination
   address and forward the packet into the network. This may happen if
   an end node has moved to be attached to a different ILA forwarding
   node in host and the new locator has not yet been propagated to all
   ILA nodes. The packet should traverse a mapping router which can send
   an ILA redirect back the source's ILA forwarding node or host as
   described above.

   When a node migrates its point of attachment from one forwarding node
   or host to another, the local mapping on the old node is removed so
   that any packets that are received and destined to the migrated
   identifier are re-injected with a SIR address as described above.  A
   "negative" mapping with timeout may also be set ensure that the node
   is able to infer the SIR address from a destination address (e.g.
   would be needed with foreign identifiers).

5.5 Locator unreachable handling

   When connectivity to a locator is loss the mapping system should
   detect this. A locator unreachable message MAY be sent by an ILA
   router to ILA forwarding nodes or hosts informing them that a locator
   is no longer reachable. Each forwarding node or host SHOULD remove
 


T. Herbert               Expires June 24, 2018                 [Page 17]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   any cache entries using that locator and MAY send a map request for
   the affected identifiers.

5.6 Control Connections

   ILA nodes and routers must create ILAMP connections to all the
   mapping routers that might provide routing information. In a simple
   network there may be just one mapping router to connect to. In a more
   complex network with ILA routers for sharded and replicated mapping
   system database there may be many. A list of ILA routers to connect
   to is provided to each ILA forwarding node and host. This list could
   be provided by configuration, a shared database, or an external
   protocol to ILAMP.

   Conceivably, the number of mapping routers in a network that might
   report mapping information to a host could be quite large (into the
   thousands). If managing a large number of connections at the ILA
   forwarding nodes or hosts is problematic, ILA mapping router proxies
   could be used that consolidate connections as illustrated below:

      +-------+    +-------+    +-------+     +-------+    +-------+
      |ILA-MR |    | ILA-MR|    | ILA-MR|     | ILA-MR|    | ILA-MR|
      +---+---+    +---+---+    +---+---+     +---+---+    +---+---+ 
          |            |            |             |            |
          |          +-+------------+-------------+-+          |
          +----------+            ILA-R             +----------+
                     |            PROXY             |
          +----------+                              +----------+  
          |          +-+------------+-------------+-+          |
          |            |            |             |            |
      +---+---+    +---+---+    +---+---+     +---+---+    +-------+
      | ILA-N |    | ILA-N |    | ILA-H |     | ILA-N |    | ILA-N |
      +---+---+    +---+---+    +---+---+     +---+---+    +---+---+

   In the above diagram a single ILA mapping router proxy serves five
   ILA routers and five ILA forwarding nodes and nodes. The proxy
   creates one connection to each router and each ILA forwarding node
   and host creates one connection to the proxy.

5.7 Protocol errors

   If a protocol error is encountered in processing ILAMP messages a
   peer MUST terminate the connection. It SHOULD log the error and MAY
   attempt to restart the connection. There are no error messages
   defined in ILAMP.

   Protocol errors include mismatch of length for given data, reserved
   bit not set to zero, unknown identifier type or locator types,
 


T. Herbert               Expires June 24, 2018                 [Page 18]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


   unknown type, unknown sub-type, and loss of message synchronization
   in a TCP stream. Note that if the end of a message does not end on
   field or record boundary this also considered a protocol error.

6  Security Considerations

   ILAMP must have protection against message forgery. In particular
   secure redirects and mapping information message are required to
   prevent and attacked from spoofing messages and illegitimately
   redirecting packets. This security is provided by using TCP
   connections so that origin of the messages is never ambiguous.

   Transport Layer Security (TLS) [RFC5246] MAY be used to provide
   secrecy, authentication, and integrity check for ILAMP messages.

   The TCP Authentication Option [RFC5925] MAY be used to provide
   authentication for ILAMP messages.































 


T. Herbert               Expires June 24, 2018                 [Page 19]

INTERNET DRAFT          draft-herbert-ila-ilamp                         


7  IANA Considerations

8  References

8.1  Normative References

   [RFC8200]   Deering, S. and R. Hinden, "Internet Protocol, Version 6
               (IPv6) Specification", STD 86, RFC 8200, DOI
               10.17487/RFC8200, July 2017, <https://www.rfc-
               editor.org/info/rfc8200>.

   [RFC4291]   Hinden, R. and S. Deering, "IP Version 6 Addressing
               Architecture", RFC 4291, February 2006.

   [ILA]       Herbert, T., and Lapukhov, P., "Identifier Locator
               Addressing for IPv6" draft-herbert-intarea-ila-00

8.2  Informative References

   [RFC5246]]  Dierks, T. and E. Rescorla, "The Transport Layer Security
               (TLS) Protocol Version 1.2", RFC 5246, DOI
               10.17487/RFC5246, August 2008, <https://www.rfc-
               editor.org/info/rfc5246>.

   [RFC5925]   Touch, J., Mankin, A., and R. Bonica, "The TCP
               Authentication Option", RFC 5925, DOI 10.17487/RFC5925,
               June 2010, <https://www.rfc-editor.org/info/rfc5925>.

   [BGPILA]    Lapukhov, P., "Use of BGP for dissemination of ILA
               mapping information" draft-lapukhov-bgp-ila-afi-02

Author's Address

   Tom Herbert
   Quantonium
   Santa Clara, CA
   USA


   Email: tom@quantonium.net











T. Herbert               Expires June 24, 2018                 [Page 20]