Skip to content

darcy95/lispcache-emulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

## 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, http://dx.doi.org/10.1016/j.comnet.2012.11.007
* A Deep Dive into the LISP Cache and What ISPs Should Know about It, http://dx.doi.org/10.1007/978-3-642-30045-5_30
* A Local Approach to Fast Failure Recovery of LISP Ingress Tunnel Routers, http://dx.doi.org/10.1007/978-3-642-30045-5_30

## 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 https://github.com/markofu/hackeire.git`
- 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 `10.20.0.0/24` and `209.85.143.0/24`
- Let's assume that these two network prefixes are internal network prefixes of the two LISP xTR routers. Let's ignore the fact that 10.20.0.0/24 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 10.20.0.0/24`
  - `2 209.85.143.0/24`
- 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 xTR.sh`
- 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 `./lispcache-emulator.pl --help` and by examining xTR.sh batch script

## Source code

git clone https://github.com/darcy95/lispcache-emulator

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published