Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


## Locator/ID Separation Protocol Cache Emulator

The LISP Cache emulator is software that is able to emulate the tasks of LISP
xTRs and that is essentially designed to be fed with packet-level Internet
traffic. Therefore, like a real LISP router, the emulator needs two data
stores, namely the LISP Database and the LISP Cache. The LISP Database is a
manually configured list of internal network prefixes (EIDs), while the LISP
Cache stores EID-to-RLOC mapping when there is a request for it and removes it
according to the preconfigured expiration rule.  The emulator uses a local BGP
prefixes database fed with the list of BGP prefixes published by the iPlane
Project. This BGP prefixes database is used to group EID-to-RLOCs mappings with
the granularity of existing BGP prefixes.

If you are not familiar with LOCator/ID Sepration Protocol (LISP), I recommend
you to read following papers as the entry point. 

* Caching Locator/ID mappings: An experimental scalability analysis and its implications,
* A Deep Dive into the LISP Cache and What ISPs Should Know about It,
* A Local Approach to Fast Failure Recovery of LISP Ingress Tunnel Routers,

## Pulling

$ sudo docker pull darcy95/lispcache-emulator

## Usage examples

- Pull the docker image from the repository: `sudo docker pull darcy95/lispcache-emulator`
- For testing the code, you can record your own traces by using tcpdump or download publicly available pcap files from the Internet
- In this example, we will use pcap files downloaded from the project of github user **markofu** (thanks to markofu). `git clone`
- We will use `hackeire/2011/pcap/c1.pcap` file
- By examining the trace with tcpdump, we can find out that most of the origin IP addresses of non-multicast traffic can be aggregated as `` and ``
- Let's assume that these two network prefixes are internal network prefixes of the two LISP xTR routers. Let's ignore the fact that belongs to the private IP address block. We only want to test how this emulator works. In fact, for the real LOCator & ID separation routing, the source/destination IP addresses must be globally routable
- These two prefixes will be stored in the `list-database` file. The first column is the index of the xTR router and the second column is the network prefix
- So, it will look like following after we add the internal prefix information to the `list-database` file:
  - `1`
  - `2`
- Now, run an instance of the image as a background container: `sudo docker run -d -it --rm --name lispemul darcy95/lispcache-emulator /bin/bash`
- Then, feed the pcap file into the emulator: `cat hackeire/2011/pcap/c1.pcap | sudo docker exec -i lispemul /bin/bash`
- After feeding is done, you can find several log files in `/logs` inside of the container. Enter the container by invoking the following command: `sudo docker exec -it lispemul /bin/bash`
- You can also find the log files in the mounted directory on the host. The directory is typically the directory with a long long name under `/var/lib/docker/volumes directory`
- Read the DESCRIPTION file to find out what each column of the log files is.
- If you want to modify the experiment for your project (or research), check out the parameters of the script by invoking `./ --help` and by examining batch script

## Source code

git clone


The LISP Cache emulator is software that is able to emulate the tasks of LISP xTRs




No releases published
You can’t perform that action at this time.