Subject: [rrg] Terminology: Loc/Id sep., LISP, CEE & CES, namespace

From: Robin Whittle <[email-masked]>
Date: Sun, 31 Jan 2010 19:00:53 +1100

Short version:      LISP (Locator Identifier Separation Protocol) is
                    a misnomer.  LISP separates an Edge (EID) subset
                    of the global unicast address space from the
                    remaining addresses, which are known as Core
                    (RLOC) address space.

                    LISP, APT, Ivip, TRRP, TIDR and RANGER are
                    Core-Edge Separation (CES) architectures - they
                    all create a separate "edge" subset of the global
                    unicast address space.

                    No CES architecture separates Locators from
                    Identifiers.

                    No CES architecture creates a new namespace.

                    In today's Internet, and with the addition of
                    LISP or any other CES architecture, the roles of
                    Locator and Identifier are both played by the IP
                    address.  (This is widely regarded in the RRG
                    as a bad thing, to be corrected - but I argue
                    the contrary.)

                    HIP and other Core-Edge Elimination (CEE)
                    architectures such as ILNP, Name Based Sockets,
                    GLI-Split and many others DO separate Locators
                    from Identifiers.

                    In a CEE architecture, the role of Locator is
                    performed by one kind of object and the role of
                    Identifier is played by another.  These roles are
                    played by objects which are in separate
                    namespaces.

                    CEE architectures remove the need for "edge"
                    space in the form of prefixes devoted to
                    end-user networks.  With CEE, all addresses
                    used by hosts can be PA addresses, so there is
                    no "core" vs. "edge" distinction - all IP
                    addresses (or whatever is used to perform the
                    Locator role) are from ISP's well aggregated
                    prefixes.

                    In this context, "separation of location and
                    identity", "Loc/ID separation" and the like
                    are ambiguous.  Many people will think this
                    refers to LISP, or to Core-Edge Separation -
                    and these terms may be intended to refer to
                    LISP and other CES architectures.

                    But this is mistaken use of a perfectly
                    valid term, which properly refers to CEE
                    architectures such as HIP and ILNP.  I have
                    used the term mistakenly in this way too.

In msg05845, Noel wrote:

> I thought we did have rough consensus on the need for the
> separation of location and identity?

I think there's no official list of what we have achieved rough
consensus on.  On 2009-04-17 I tried to list some such items:

  http://www.ietf.org/mail-archive/web/rrg/current/msg04851.html

I don't recall there being a consensus call on the need for
"separation of location and identity".   On 2009-04-07 there was a
poll about defining the terms locator, identifier and address:

  http://www.ietf.org/mail-archive/web/rrg/current/msg04724.html

and these were accepted, resulting in a terminology page in the wiki:

  http://trac.tools.ietf.org/group/irtf/trac/wiki/RRGTerminology?version=1

I suggest using terms such as "Loc/ID split" with care, because they
mean different, contradictory, things to different people.  Many people
(including me in the past), when they hear these terms, think immediately
of LISP and other CES architectures (previously known as "map-encap",
"map-and-encaps" etc.).  But this is a mistake.

The authors of CEE proposals such as GLI-Split use this term to refer
to their own architectures, which are completely and utterly
different from LISP and other CES architectures.  From the GLI-Spit
paper:

  http://www3.informatik.uni-wuerzburg.de/~menth/Publications/papers/Menth-GLI-Split.pdf

     Abstract

     GLI-Split is a new addressing and routing architecture for
     the Internet. It splits the functionality of current IP
     addresses into a global locator, a local locator, and an
     identifier, and encodes them in IPv6 addresses. It implements
     the locator/identifier split and makes routing in the core of the
     Internet more scalable.  ...

HIP (RFC4423) is described, in May 2006, as involving separation of
locators from identifiers:

     In the HIP architecture, the end-point names and locators are
     separated from each other.  IP addresses continue to act as
     locators.  The Host Identifiers take the role of end-point
     identifiers.

ILNP uses the same terminology:

  http://ilnp.cs.st-andrews.ac.uk/docs/id/draft-rja-ilnp-intro-03.txt

     At present, the IRTF Routing Research Group is studying
     different approaches to evolving the Internet Architecture.
     Several different classes of evolution are being considered.
     One class is often called "Map and Encapsulate", where
     traffic would be mapped and then tunnelled through the
     inter-domain core of the Internet.  Another class being
     considered is sometimes known as "Identifier/Locator Split".
     This document relates to a proposal that is in the latter
     class of evoluationary approaches.

These three CEE architectures use "locator identifier
split/separation" to identify their themselves.  HIP and ILNP predate
LISP.

I believe LISP is a misleading name, since it does not separate
identifiers from locators.  LISP is a CES architecture, not a CEE
architecture.

LISP and other CES architectures are completely different from CEE
architectures.  To see why, here is an analysis of various naming
systems.

Naming Systems
--------------

In today's Internet, the conventional IP naming system has 2 levels.

The three roles are implemented with the Text name role implemented
on its own with FQDNs and both the Identifier and Locator roles
handled simultaneously by the IP address.  Core Edge Separation (CES)
architectures retain this arrangement.

  Role             Level           Conventional IP & with CES
  ----             -----

  Text name        FQDN

  Identifier     ]
                 ] IP address
  Locator        ]

Many people think this conventional approach of making the IP address
play both Identifier and Locator roles is a bad thing.  It does
create more work for the routing system, but overall I think the
benefits of this approach outweigh the disadvantages of requiring
hosts to deal with separate Identifier and Locators.

The primary advantage of this system is that when a packet is sent to
some destination IP address, the host which sent it can be sure that
(assuming it is not dropped) the packet will only go to a host with a
known identity: that signified by the destination IP address.  The
packet can't go to a host with any other Identifier.

With Core Edge Elimination (CEE) architectures, the sending host can
only achieve this (ensuring the packet goes to a host with the
desired Identifier) by looking up the Identifier in a mapping system,
such as DNS, to find one or more Locators - then the packet is
addressed to the Locator.

In some CEE architectures the three roles: Text name, Identifier and
Locator are implemented separately.

  Role             Level           Some CEE architectures such as HIP
  ----             -----

  Text name        FQDN

  Identifier       HIT

  Locator          IPv6 address

HIP is a pure CEE architecture, in which three completely separate
levels are used for the three roles.

ILNP and its predecessors, as listed in section 2.1 of Ran's and
colleague's historical notes:

  http://www.cs.st-andrews.ac.uk/~saleem/papers/2007/mobiwac2007/mobiwac2007-abh2007.pdf

have the Identifier as the lower 64 bits of what will become the IP
address, and the "Locator" in the upper 64 bits.  Actually, the full
"Locator" is the whole 128 bits, but the 64 Locator bits is
sufficient to specify which ISP network the destination host can be
reached in.

  Role             Level               Other CEE architectures such
  ----             -----               as ILNP

  Text name        FQDN

  Identifier       ---- ---- IIII IIII

  Locator          LLLL LLLL ---- ----

I am still trying to understand Christian Vogt's Name Based Sockets.
 It is a CEE architecture and appears to have a 2 level system in
which both the Text name and Identifier roles are played by the FQDN,
and the Locator role is played by the IP address.

  Role             Level             Name Based Sockets (CEE)
  ----             -----

  Text name    ]
               ]   FQDN
  Identifier   ]

  Locator          IPv6 address

This is the exact opposite of the conventional IP level system.

However, I think that Name Based Sockets must be more complex than
this, since it is intended that a single FQDN can enable the
selection of one of multiple separate hosts.  In that case, as far as
I know, the role of Identifier must be performed by some combination
of FQDN and specific Locators out of the larger set of Locators for
the multiple physical hosts.  I am seekding guidance on this from
Christian.

Namespaces
----------

However they do it, all CEE architectures have separate namespaces
for Locators and Identifiers.  The true meaning of "Loc/ID
separation/split" and the like is these CEE architectures.

All CES architectures, including LISP, APT, Ivip, TRRP, TIDR and
RANGER do NOT alter the naming structure of IPv4 or IPv6.

CES architectures separate "edge" addresses from the remaining "core"
addresses.  Edge addresses are a subset of the union of the two - the
union is the global unicast address space.  Neither the "edge" nor
"core" subsets are separate namespaces.

The subset of the 2^32 IPv4 addresses which constitute the global
unicast subset are within a single namespace.  Private addresses,
such as those within 10.0.0.0/8, do involve a separate namespace for
every network which implements them.  This is because 10.1.2.3 can
mean one thing in network A and another in network B.

A global unicast address such as 12.34.56.78 always means the same
thing.

If the prefix 12.34.0.0/16 is used as SPI (Scalable PI) space (Ivip)
or EID space (LISP) then this address range is regarded as
("separated") as the "edge" subset, and removed from the remainder of
the global unicast set, which is now known as the "core" subset.
Multiple such prefixes in total constitute the total "edge" (SPI,
EID) subset.

Edge (SPI, EID) addresses are not in a separate namespace.
12.34.56.78 still means only one thing in the whole Internet.

Hosts and all routers except ITRs make no distinction between
addresses which are in the "edge" subset.  ITRs process packets
differently if they have an "edge" addresses in their destination
field.  They tunnel the packet to an ETR, based the results of
looking up the mapping of this address in global mapping system.

Let's state it again  =^)
-------------------------

Core-Edge Separation (CES) architectures (LISP, Ivip etc.) DO NOT
alter the naming structure of IPv4 or IPv6:

  Role             Level           Conventional IP & with CES
  ----             -----

  Text name        FQDN

  Identifier     ]
                 ] IP address
  Locator        ]

They separate an "edge" subset of global unicast addresses from what
remains as the "core" subset.

Core-Edge Elimination (CEE) architectures (HIP, ILNP, GLI-Split,
Name Based Sockets) DO alter the naming structure to one of several
models, in which the roles of Identifier and Locator are always
performed by separate objects, in separate namespaces.

CEE architectures always involve separating Locators and Identifiers
- into separate namespaces.

The only proper use of terms such as "Locator Identifier Separation"
is for CEE architectures, since no CES architecture does this.

 - Robin

More about the meaning of the term "namespace":

  http://www.firstpr.com.au/ip/ivip/namespace/

More on the difference between CES and CEE, and why "LISP" is a misnomer:

  http://www.firstpr.com.au/ip/ivip/loc-id-sep-vs-ces/

To see why I chose Core Edge Separation for Ivip, please see the
Architectural Choices section of:

  http://tools.ietf.org/html/draft-whittle-ivip-arch

and this discussion of why CEE architectures, by imposing more
responsibilities on hosts, will lead to increased delays in
establishing sessions - with those delays being worse still for hosts
on slow, unreliable links such as 3G wireless or satellite:

  http://www.firstpr.com.au/ip/ivip/RRG-2009/host-responsibilities/