Sign inSign up

darcy95/lispcache-emulator

By darcy95

•Updated about 7 years ago

A software that is able to emulate the cache of LISP xTRs: http://www.kimjuhoon.com/lispemul.html

Image
0

261

darcy95/lispcache-emulator repository overview

⁠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.

⁠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⁠

Tag summary

Content type

Image

Digest

Size

354.5 MB

Last updated

about 7 years ago

docker pull darcy95/lispcache-emulator