LISP: Locator/ID Separation Protocol available on IOS

Cisco IOS release 15.1(1)XB introduces some LISP features.  LISP is a relatively new protocol whose aim is to separate two functions contained within an IP address.  A host IP address contains both the Endpoint Identifier (EID) and the Routing Locator (RLOC).  What this basically means is that the IP address not only indicates the specific host, but also indicates how to locate the host on an IP network.

LISP is just one of the latest examples of abstracting a problem in order to more easily solve it.  Think about how the DNS solved an early problem: human inability to remember large amounts of unstructured data in the form of IP addresses.  Is it easier to remember or  In effect, the DNS decoupled the EID ( and locator (the name).

The problem is that IPv4 has no way of separating the host from the path.  If you trace the route to a host with IP address, each intermediate hop uses the host IP address in order to find out which interface to egress the packet.  This presents a few problems:

  • Mobility
  • Scalability
  • Multihoming
Mobility: host movement between branches of the topology will result in a host being unreachable (if the address doesn’t change).

Scalability: either your topology can match your addressing or your addressing can match your topology.  If not, scaling the network will be difficult since the network will contain a large amount of state.  Large amounts of state are not necessarily bad, but convergence within that network can take a large amount of time.

Multihoming: a host that resides on multiple segments will require EIDs for each segment.

Each of these problems have kludgey hacks to solve them.  For instance, a multihomed host can use a loopback address for its EID.  The kludgey part will mean that upstream devices will still need to reference the closest interface’s EID as a next-hop in order to reach the loopback.  This presentation explains it better than I can.

LISP is designed to solve these problems by decoupling the EID from the RLOC, and introduces a few new types of devices.  No end-user / end-device changes are necessary because an intermediate device simply maps & encapsulates the packet from one end of the network to the other.

You can get started with LISP using the following guides from Cisco:

LISP Lab Testing Application Note
Cisco IOS LISP Configuration Guide

And here’s a good article from the IP Journal.

Unfortunately they haven’t implemented all of the interesting parts of LISP, but you can see how a gateway router performs the map & encap function.  I just tried it in a lab and it works great.

For a deeper discussion on the challenges presented by IP, I highly recommend reading Patterns In Network Architecture by Jon Day.