Internet DRAFT - draft-flinck-lisp-membertest

draft-flinck-lisp-membertest






LISP                                                           H. Flinck
Internet-Draft                                   Nokia  Siemens Networks
Intended status: Informational                             March 1, 2010
Expires: September 2, 2010


          Membership test for Mapping Information optimization
                    draft-flinck-lisp-membertest-00

Abstract

   This document defines how a membership test can be used to convey all
   or some of the EID-to-RLOC mappings from an Egress Tunnel Router to
   requesting Ingress Tunnel Router.  This draft proposes that an
   authoritative ETR MAY return a group membership test in the LISP Map-
   Reply Message that indicates if a given EID is served by the ETR.
   The membership test is implemented as a Bloom filter.  A Bloom filter
   is compact data structure to represent a set of elements.  The
   membership test "aggregates" EIDs beyond prefix based aggregation.
   Membership test decreases the load of the mapping system and
   distributes the EID-to-RLOC resolution between an ITR and an ETR.

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/ietf/1id-abstracts.txt.

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

   This Internet-Draft will expire on September 2, 2010.

Copyright Notice

   Copyright (c) 2010 IETF Trust and the persons identified as the



Flinck                  Expires September 2, 2010               [Page 1]

Internet-Draft                 Member Test                    March 2010


   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (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 BSD License.


1.  Introduction

   LISP [I-D.ietf-lisp] architecture divides the IP address space into
   two separate name spaces: Endpoint IDs (EIDs), used within sites, and
   Routing Locators (RLOCs), used on the transit network (the Internet)
   that connect the sites.  Communication across the transit network
   requires a mapping between these two spaces.  To achieve this
   mapping, LISP architecture assumes the existence of a database to
   store and propagate those mappings globally between gateway devices
   at the name space boundary.  Several of such databases have been
   proposed, among them: LISP-CONS [CONS], LISP-NERD [NERD], and LISP+
   ALT [I-D.ietf-lisp-alt], together with a network based API called
   LISP Map-Server [I-D.ietf-lisp-ms].

   As defined currently by the LISP protocol [I-D.ietf-lisp], a host
   that wants to communicate with an other host in another domain needs
   to first resolve the FQDN of the destination to a destination EID.
   The packet is then sent to through an Ingress Tunnel Router (ITR) to
   the destination.  If the Ingress Tunnel Router acting as a gateway
   between the two name spaces doesn't have a mapping for the
   destination EID to destination RLOC that is needed for tunnelling
   across the transit network, the ITR needs to resolve the EID-to-RLOC
   mapping from a mapping system possibly using a map resolver.  The
   current implementation approach is to drop the first packet of the
   flow that didn't have a matching map entry.  An alternative is to
   buffer the first packet.  However, buffering adds complexity to the
   design in terms of buffer management and a delay component to the
   delivery of the first packet.  In both cases whether the first packet
   is dropped or buffered map resolution has a cost in terms of
   decreased service experience (by causing a longer and varying service
   start-up time of sessions) or cost of equipment, or both.  Map
   resolution is a costly operation and therefore its gain should be
   maximized and utilization should be minimized.  The default behaviour
   of an ITR is to resolve a destination EID to a (set of) locator(s)
   (RLOCs) and cache the mapping in order to improve usability and to



Flinck                  Expires September 2, 2010               [Page 2]

Internet-Draft                 Member Test                    March 2010


   avoid the delay impact of the resolution process to session set up
   times.  The resolved mapping of EID-to-RLOC set can be either per
   host EID or per an EID-prefix if EID aggregates into a prefix served
   by the Egress Tunnel Router (ETR).

   This draft proposes a method to increase the gain of a successful
   mapping resolution.  The idea is to retrieve more mappings by the
   same Map-Reply message rather than just the missing EID-to-RLOC
   mapping information.  The proposed solution is complementing the
   caching of mappings where an earlier resolved EID-to-RLOC mapping can
   be shared with the other flows passing the same ITR.  The cost of
   caching of mapping information has been previously studied in [cost]
   where it has been found to be beneficial by reducing the mapping
   resolution signalling.  Our approach complements caching by
   increasing the information that is returned to the ingress tunnel
   router.

   The gain of the map resolution can be improved by providing the
   requestor more mapping information than the very specific mapping
   that was originally queried for.  The ETR or its proxy that is
   authoritative for a given EID-to-RLOC mapping could in one extreme
   case return all of its mappings, or just the some subset, maybe the
   most requested ones.  The number of the mappings could easily be
   overwhelming if the EIDs do not aggregate, so a compressed expression
   is required.  For example, if we have EIDs that do not aggregate
   under a EID-prefix, and ETR is servicing small businesses of size of
   100 host, we would need to send 100 * (EID-to-RLOC) mapping
   information, that is at least 3200 bytes.  For an enterprise with
   1000 host with unaggregatable EIDs it would be 32 Kbytes.
   Enterprises larger than 1000 hosts are likely to have their EID-
   prefixes, but because the number of different prefixes will be so
   small the use of the membership test is not meaningful.

   This draft proposes that the authoritative ETR MAY return a group
   membership test that indicates if a given EID is served by the ETR in
   addition to the specific mapping information that is returned in the
   LISP Map-Reply Message.


2.  Terminology

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







Flinck                  Expires September 2, 2010               [Page 3]

Internet-Draft                 Member Test                    March 2010


    Endpoint ID (EID):

      A 32-bit (for IPv4) or 128-bit (for IPv6) value used in the source
      and destination address fields of the first (most inner) LISP
      header of a packet.  The host obtains a destination EID the same
      way it obtains an destination address today, for example through a
      DNS lookup or SIP exchange.  Defined in [I-D.ietf-lisp].

    EID-prefix:

      A power-of-2 block of EIDs which are allocated to a site by an
      address allocation authority.  EID-prefixes are associated with a
      set of RLOC addresses which make up a "database mapping".  EID-
      prefix allocations can be broken up into smaller blocks when an
      RLOC set is to be associated with the smaller EID- prefix.  As in
      [I-D.ietf-lisp].

    Ingress Tunnel Router (ITR):

      A router which accepts an IP packet with a single IP header (more
      precisely, an IP packet that does not contain a LISP header).  The
      router treats this "inner" IP destination address as an EID and
      performs an EID-to-RLOC mapping lookup.  The router then prepends
      an "outer" IP header with one of its globally-routable RLOCs in
      the source address field and the result of the mapping lookup in
      the destination address field.  Note that this destination RLOC
      may be an intermediate, proxy device that has better knowledge of
      the EID-to-RLOC mapping closer to the destination EID.  In
      general, an ITR receives IP packets from site end-systems on one
      side and sends LISP-encapsulated IP packets toward the Internet on
      the other side.  Defined in [I-D.ietf-lisp].

   Egress Tunnel Router (ETR):

      A router that accepts an IP packet where the destination address
      in the "outer" IP header is one of its own RLOCs.  The router
      strips the "outer" header and forwards the packet based on the
      next IP header found.  In general, an ETR receives LISP-
      encapsulated IP packets from the Internet on one side and sends
      decapsulated IP packets to site end-systems on the other side.
      ETR functionality does not have to be limited to a router device.
      A server host can be the endpoint of a LISP tunnel as well.
      Defined in [I-D.ietf-lisp].

   EID-to-RLOC Cache:

      A short-lived, on-demand table in an ITR that stores, tracks, and
      is responsible for timing-out and otherwise validating EID-to-RLOC



Flinck                  Expires September 2, 2010               [Page 4]

Internet-Draft                 Member Test                    March 2010


      mappings.  This cache is distinct from the full "database" of EID-
      to-RLOC mappings, it is dynamic, local to the ITR(s), and
      relatively small while the database is distributed, relatively
      static, and much more global in scope.  Defined in [I-D.ietf-
      lisp].

   Routing Locator (RLOC):

      The IPv4 or IPv6 address of an egress tunnel router (ETR).  It is
      the output of a EID-to-RLOC mapping lookup.  An EID maps to one or
      more RLOCs.  Typically, RLOCs are numbered from topologically-
      aggregatable blocks that are assigned to a site at each point to
      which it attaches to the global Internet; where the topology is
      defined by the connectivity of provider networks, RLOCs can be
      thought of as PA addresses.  Multiple RLOCs can be assigned to the
      same ETR device or to multiple ETR devices at a site.  Defined in
      [I-D.ietf-lisp].

   Membership test

      Bloom filter based membership test.  Bloom filters [Bloom] offer a
      compact method to represent a set of n elements using a vector of
      m bits.  The Bloom filters use k independent hash functions that
      hash a set of input elements to one of the m array positions.
      False positives are possible, but false negatives are not.


3.  Membership test for identifier locator mapping

   The membership test offers means for an authoritative ETR to provide
   a set of EID to RLOC mappings to a requestor in an efficient way
   beyond what prefix based aggregation can offer.  As explained in the
   Introduction section the resolution process is expensive in terms of
   delay, jitter and lost packets so that it would be beneficial to
   resolve more mappings with the same transactions if possible.  The
   membership test is a hash of EIDs.  The membership test acts as a
   compressed representation of the end point identifiers that an ETR
   can serve.  An ETR can express with it the most frequently requested
   mappings, or any other subset or all of the mappings.  The use of
   membership test doesn't require that the EIDs aggregate into
   prefixes.  This makes it optimal for cases where an ETR is serving
   EIDs from different EID blocks.  In the Map-Reply message that the
   ETR returns to ITR, the ETR MAY provide one or more membership test
   hashes depending on the size of the mapping base that needs to be
   compressed to the requesting ITR.  Multiple membership tests are
   useful in cases where there are different sets of hosts such as very
   frequently used, static hosts or nomadic, etc.  When an ITR gets a
   new packet without a matching identifier locator mapping it runs the



Flinck                  Expires September 2, 2010               [Page 5]

Internet-Draft                 Member Test                    March 2010


   membership tests before resorting to a new mapping resolution
   transaction.  If a membership test provides a positive match there is
   no reason to buffer the first packet longer than what it takes to
   execute the membership test.  Membership test is hash operation that
   is quick to execute (we use MD5 for this purpose, see next sections
   of this document).  If no membership test provides a positive match,
   the default mapping resolution is executed as defined in LISP
   specification.

   When a packet arrives from a host to an ITR following steps SHOULD
   take place:

   1.  An EID-to-RLOC mapping cache look up is performed based on the
       destination EID to find the destination RLOC as defined in
       [I-D.ietf-lisp].

   2.  If the look up returns a destination RLOC then the packet is
       encapsulated and forwarded as defined in the default behavior of
       LISP to the destination RLOC.

   3.  If the look up doesn't result into a RLOC then a membership test
       cache is checked and the tests are executed using the destination
       EID as an input.

   4.  If any of the membership tests results into a match then the
       corresponding RLOC is used for creating a Map-Request message
       that is "piggybacked" with the packet from the host and forwarded
       to ETR.  Map-Request is formulated as defined in [I-D.ietf-lisp]
       for cases of reachability tests, or refreshing a mapping before
       TTL expiration (see section 6.1.3 in [I-D.ietf-lisp]).  That is
       the destination IP address used for the Map-Request is one of the
       matching RLOCs.  A successful membership test is handled as if
       there was a cache entry that is becoming stale to that particular
       EID-to-RLOC mapping.

   5.  In the case of no matching RLOCs in membership tests, the map
       resolution is invoked as defined in LISP and a Map-Request
       Message is sent to the mapping system.

   If an ITR receives an ICMP Network or ICMP Host Unreachable message
   for an RLOC it is using for an ETR, it MUST also remove the
   membership test vector associated with the RLOC.  If the ITR receives
   a Negative Map-Reply then a related membership test should be removed
   from the cache.

   When a Map-Request Message arrives to the authoritative ETR the
   message is processed as following:




Flinck                  Expires September 2, 2010               [Page 6]

Internet-Draft                 Member Test                    March 2010


   1.  The router looks up the destination EID in the router's EID-to-
       RLOC database.  An EID-to-RLOC Map-Reply message with the mapping
       information complemented with one or more optional membership
       test information elements is originated by the ETR.  If there is
       no entry for the requested EID then a Negative Map-Reply is
       returned as defined in [I-D.ietf-lisp].

   When an ITR receives the Map-Reply message, it parses the message and
   stores the mapping information from the packet.  This information is
   put in the ITR's EID-to-RLOC mapping cache (this is the on-demand
   cache referred in [I-D.ietf-lisp] ).  The optional membership test(s)
   and the associated RLOC(s) of the originating ETR are stored
   ("conceptually") into a separate cache with a time out value if such
   exists in the membership test option.  The management of the
   membership test cache can be as simple as removing least frequently
   used entry from the cache when the cache is running out of space.
   The membership test entries can also time out if a time out value was
   provided in the membership test option.  Membership tests that result
   false positives will cause a Negative Map-Reply which removes the
   related membership test.  A new membership test may be provided with
   the Map-Reply that replaces a previous one.

   The ETR SHOULD calculate the membership tests beforehand and just add
   the membership test option with proper tests to the Map-Reply
   message.


4.  Message Format

   The membership test extends the LISP Map-Reply Message Format by
   defining a new Mapping Protocol Data option that carries the
   membership data.  The option is always associated with a record of a
   locator (RLOC) field in the Map-Reply 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=M |T|         Reserved    |Length of the Membership test  |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        Membership test vector(0)              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                        Membership test vector (1 ... 3)       |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                          Membership  TTL                      |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+




Flinck                  Expires September 2, 2010               [Page 7]

Internet-Draft                 Member Test                    March 2010


    Type:

      M: ( set to 1) Membership test information element.  T: Set to 0
      if no TTL value is included, Set to 1 if TTL for the test vector
      is included.

    Length of the Membership test

      16-bit unsigned integer.  The length of the option (including the
      type, reserved and length fields) in units of 8 octets.  In some
      cases an RLOC may be associated to multiple Membership test
      vectors (e.g. frequently used, etc)

    Membership test vector

      Multiple of 16 octets (128 bits) long Bloom filter.

    Membership  TTL

      The time in minutes the recipient of the Map-Reply will store the
      membership test.  If the TTL is 0, the entry should be removed
      from the cache immediately.  If the value is 0xffffffff, the
      recipient can decide locally how long to store the test.

   Bloom filters [Bloom] may result into false positives which in this
   application context means that an EID is interpreted to belonging
   incorrectly to an ETR that doesn't host the EID.  The error case
   degenerates into stale mapping information and the ETR should remove
   the previously sent Membership test from the ITR by setting TTL value
   = 0, or by providing a new Membership test vector (or vectors).  In
   this case the first packet is lost, and the ITR needs to revert into
   full map resolution process.


5.  Calculation of the membership tests

   The accuracy of the membership test depends on the length of the test
   vector, number of independent hashes, k, and the number of elements,
   n, (that is the number of unique EIDs) that is inserted into the
   filter [Bloom], [Dharma].

   We suggest to use fixed sets of the parameters defined for two cases.
   One is for small businesses, where the unaggregatable EIDs are in the
   order if 100 hosts and the other one is for larger companies/sites
   with unaggregatable EIDs of the order of 1000.  The reason for this
   is to minimize the protocol logic, and to avoid any parameter
   negotiation between ITRs and ETRs.  For the case of 100 EIDs we fix
   the number of hash functions to k=20, length of the test vector to



Flinck                  Expires September 2, 2010               [Page 8]

Internet-Draft                 Member Test                    March 2010


   4096 bits (32*128 bits) and require 10exp-6 probability of false
   positives, the number of EIDs that can be covered is now 140.
   Compare this to the corresponding full map information (140*256=
   35840 bits) the savings are 88%.  For case of 1000 EIDs we fix the
   number of hash functions to k=20, length of the test vector to 32768
   bits (256*128bits) and require 10exp-6 probability of false
   positives, the number of EIDs that can be covered is now 1350.  In
   any case if the error probability or the covered EID do not meet the
   accuracy needs, more Membership test vectors with smaller covered EID
   sets could be added to the Map-Reply.  It is a local decision of ETR
   how many Membership test vectors optimizes its RLOC-to-EID mappings.
   ETR chooses the size of the Membership test vector based on how many
   EID-to-RLOC mappings it has.  In our scheme only the size changes,
   number of hash functions and error probability remains the same
   limiting the trade offs.  Therefore two sets of parameters and
   covered EID sets (one for less than 140 EIDs and the other for less
   than 1350 EIDs) is sufficient.  A site with more than 1000s of EIDs
   is likely to have aggregatable EID space.

   If an ETR is hosting EID-prefixes and EIDs, the Membership test
   SHOULD be used for host EIDs.  EID-prefixes should be sent to the
   requesting ITR as defined in the base protocol [I-D.ietf-lisp] and
   sent separately.  Adding prefix support to the Membership test is
   possible, but not covered in this draft because it introduces
   unnecessary complexity.  An ETR is unlikely to host such a number of
   individual EID-prefixes that it would be justifiable to use a
   Membership test for prefixes.

   For the k hash functions we use MD5 algorithm [RFC1321], because of
   its availability in all platforms and because its output matches 128
   length that is the size of IPv6 address and fits therefore well to
   IPv6 header structure, although the Membership test vector is part of
   LISP header.  MD5 is a cryptographic message digest algorithm that
   hashes arbitrary length strings to 128 bits.  It has relatively fast
   implementation.  Output of a MD5 hash function is used to set a
   corresponding bit in the Membership Test vector that is multiple of
   128 bits.  Notice that the Membership test vectors should be
   calculated beforehand in the ETR so that the results are ready before
   any Map-Reply with the Membership test is requested.  Membership test
   vector content can change between ITRs and Map-Replies, they can even
   be customized per requesting ITR.

   Following pseudo code shows how the Membership test vector is
   calculated.  This is just a standard use of Bloom filter code.







Flinck                  Expires September 2, 2010               [Page 9]

Internet-Draft                 Member Test                    March 2010


MemberShipTest (array_of_EIDs_n= n elements, hash_function = "MD5",
number_of_hashes = 20, filter_size_m = 4086)
{
membership_test = allocate _tablesize_of (filter_size_m);
                                          // table size for m

        for (i= 0; i < size_number_of_elements_n(array_of_EIDs_n); ++i){
                // for each n elements
         for (k= 0; k < number_of_hashes; ++k) {
                // for each hashes set a bit in the membership test
            (membership_test [hash_function((uint8_t )k+1, EID(i))]= 1);

          }

        }
return membership_test;

}




6.  IANA Considerations

   This document has no requests to IANA.


7.  Security Considerations

   Use of Membership Test between an ITR and an ETR doesn't add to any
   new security issues between the ITR, mapping system or ETR beyond the
   current LISP solution.  If an ITR can trust an EID-to-RLOC mapping
   from an ETR, it can trust the Membership test as well.  False
   positives are handled in the same way as the stale mapping cache EID-
   to-RLOC entries.


8.  Acknowledgments

   Acknowledgements belong to Johanna Heinonen, Petteri Poeyhonen,
   Sreenu Sasubilli, Jarno Rajahalme and for good comments, questions
   and improvements.  This work was supported by TEKES as part of the
   Future Internet program of TIVIT


9.  References





Flinck                  Expires September 2, 2010              [Page 10]

Internet-Draft                 Member Test                    March 2010


9.1.  Normative References

   [I-D.ietf-lisp]
              Farinacci, D., Fuller, V., Meyer, D., and D. Lewis,
              "Locator/ID Separation Protocol (LISP)",
              draft-ietf-lisp-06 (work in progress), January 2010.

   [I-D.ietf-lisp-alt]
              Fuller, V., Farinacci, D., Meyer, D., and D. Lewis, "LISP
              Alternative Topology (LISP+ALT)", draft-ietf-lisp-alt-02
              (work in progress), January 2010.

   [I-D.ietf-lisp-ms]
              Fuller, V. and D. Farinacci, "LISP Map Server",
              draft-ietf-lisp-ms-04 (work in progress), October 2009.

   [RFC1321]  Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
              April 1992.

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

9.2.  Informative References

   [Bloom]    "http://en.wikipedia.org/wiki/Bloom_filter".

   [CONS]     Farinacci, D.,, Fuller, V., and Meyer, D., "LISP-CONS: A
              Content distribution Overlay Network  Service for LISP",
              draft-meyer-lisp-cons-05.txt (work in progress),
              November 2007.

   [Dharma]   Dharmapurikar S., Krishnamurthy P., and Taylor, D.E.,
              "Longest prefix matching using bloom filters", IEEE/ACM
              Transactions on Networking (TON)  Volume 14 Issue 2 ,
              April 2006.

   [NERD]     Lear, E., "NERD: A Not-so-novel EID to RLOC Database",
              draft-lear-lisp-nerd-07.txt (work in progress),
              April 2008.

   [cost]     Iannone L. and Bonaventure O., "On the Cost of Caching
              Locator/ID mappings", CoNEXT New York, USA, December 2007.









Flinck                  Expires September 2, 2010              [Page 11]

Internet-Draft                 Member Test                    March 2010


Author's Address

   Hannu Flinck
   Nokia  Siemens Networks
   Linnoitustie 6
   Espoo  02600
   Finland

   Email: hannu.flinck@nsn.com










































Flinck                  Expires September 2, 2010              [Page 12]