/
README
46 lines (37 loc) · 3.54 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
## 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