Statistics
| Branch: | Revision:

iof-website / software.md @ fcf2a923

History | View | Annotate | Download (5.96 KB)

1
---
2
layout: default
3
title: IoF - Internet on FIRE
4
---
5

    
6
<div id="home">
7
<h1>IoF - Software</h1>
8

    
9
The software developed within the project to generate BGP topologies and the corresponding BIRD configurations, as well as the scripts used for controlling the experiments on the Fed4FIRE+ testbeds is Open Source and it is public on [GitHub](https://github.com/internetonfire/iof-tools).
10

    
11
The repository includes all the instructions required to run the experiments, including the setup of the software on a Linux-based system (preferably Ubuntu 18.04, but we have used the scripts on macOS as well).
12
If you are not working on a Unix system or wants to avoid installing the tools, we provide you with a pre-configured Virtual Machine with all the software pre-installed.
13

    
14
# IoF Virtual Machine
15
You can download the Virtual Machine to reproduce our experiments from this link (size 5.3 GB): [IoF VM](https://drive.google.com/open?id=1er9C3m2_6asA1knFneKprCcxnVD6Ofwv).
16
The machine is an Ubuntu 18.04 with all the software needed already installed and our repository already cloned. You 
17
can import the `ova` file in any recent virtualization platform (if you don't have one, you can use 
18
[VirtualBox](https://www.virtualbox.org)).
19

    
20
The credentials to access the vm are:
21

    
22
**USER**: iof
23

    
24
**PASS**: iof
25

    
26
The jFed software is already installed, you can start it by opening a Terminal and typing `jFed-Experimenter`. The only
27
step needed is the copy of the certificate and keys related to your [iMinds Auhority](https://authority.ilabt.iminds.be) 
28
account and, if you plan on reproducing big topologies, the configuration of your user on the omni_config file. All
29
these steps are detailed in the [README.md](https://github.com/internetonfire/iof-tools/#internet-on-fire-scripts-repo) of the IoF repository.
30
In short, you should have your public and your **unencrypted** private keys stored inside the virtual machine in `~/.ssh/iminds.pub` and `~/.ssh/iminds.key`, respectively.
31

    
32
## Reproducing our specific simulations
33

    
34
**NOTE:** this section refers to the instructions in an appendix of a paper currently under review.
35
The appendix can be downloaded [here](/docs/Reproducibility.pdf).
36
As soon as possible, we will publish the complete paper under the Publications section.
37

    
38
As detailed in the *Reproducing IoF* appendix, all the configuration files to reproduce the simulations presented in the paper are
39
already available in our repository in the `experimentFiles` directory. In the appendix, there are only the commands to
40
reproduce a single simulation (Fabrikant Topology with 17 nodes). Below you will find the commands to reproduce all the
41
topologies.
42

    
43
### Fabrikant simulations
44
You will find all the Bird configuration directories on `~/src/iof-tools/experimentFiles/fabrikant/bird-config-files`.
45
As already detailed in the [README.md](https://github.com/internetonfire/iof-tools/blob/master/experimentFiles/README.md#experiment-files) file inside the `experimentFiles` folder, the folders names indicate the type of
46
MRAI setting and the size of the gadget: `0_$MRAISETTING$_f$GADGETSIZE$n-dest`. You can select the topology you want and
47
substitute the *copy* command present on the Appendix with the topoogy directory you want to simulate. Depending on the
48
size of the gadget, the parameters of the `./run-simulation.sh` script have to be changed:
49

    
50

    
51
| Gadget Size | Command to use |
52
| :---------: | ---------------|
53
| 5 |  `./run-experiment.sh -a 7 -n 5 -r 1` |
54
| 7 |  `./run-experiment.sh -a 9 -n 7 -r 1` |
55
| 9 |  `./run-experiment.sh -a 11 -n 9 -r 1` |
56
| 11 | `./run-experiment.sh -a 13 -n 11 -r 1` |
57
| 13 | `./run-experiment.sh -a 15 -n 13 -r 1` |
58
| 15 | `./run-experiment.sh -a 17 -n 15 -r 1` |
59
| 17 | `./run-experiment.sh -a 19 -n 17 -r 1` |
60

    
61
All the remaining parts (fetching, analyzing, plotting) are the same as those detailed in the Appendix. If you want to
62
run more than a single topology on the same deployed physical nodes some steps are needed: after you have finished a simulation
63
you must clean the network config and redeploy the new topology.
64
You can find the detailed informations on how to do it 
65
on the repository's [README.md](https://github.com/internetonfire/iof-tools/#internet-on-fire-scripts-repo).
66

    
67

    
68
If you don't want to use our pre generated Bird config files, you can use all our toolchain to reproduce the same topology
69
graphs and configurations by yourself. A detailed description on how to use the toolchain is available inside the [README.md](https://github.com/internetonfire/iof-tools/#internet-on-fire-scripts-repo).
70

    
71
### Internet like simulations
72
You will find the Bird configuration directories on `~/src/iof-tools/experimentFiles/elmokashfi/bird-config-files.tgz`.
73
The deployment phase on the testbed is the same as the Fabrikant topologies, but you will need more physical resources.
74
All our simulations have been run with a 4:1 ratio (4 AS on a single core), so you have to reserve at least 1000 cores.
75
To reproduce exactly our simulations, you must generate the network change on the same Autonomous Systems as we did.
76
Again, for details on how to manage this kind of operation inside the [README.md](https://github.com/internetonfire/iof-tools/#internet-on-fire-scripts-repo).
77
Below you will find the list of the AS generating the change and some simple scripts to automate the runs:
78

    
79
Autonomous Systems generating the change:
80
1. AS1815
81
2. AS871
82
3. AS3786
83
4. AS2624
84
5. AS2919
85
6. AS1127
86
7. AS3257
87
8. AS3462
88
9. AS1403
89
10. AS2218
90

    
91
These are the commands used to do 5 runs, breaking the AS3462:
92

    
93
```
94
ssh -F ssh-config nodeXX "sed -i -E 's/(#)(include  \"bgpSessionExp.*)/\2/' iof-bird-daemon/nodes-config/h_3461/bgp_h_*.conf"
95
./run-experiment.sh -a 3462 -r 5 -o RES-4K-30SEC-BROKEN3462 &&
96
ssh -F ssh-config nodeXX "sed -i -E 's/(^include  \"bgpSessionExp.*)/#\1/' iof-bird-daemon/nodes-config/h_3461/bgp_h_*.conf"
97
```
98

    
99
You will need to change `nodeXX` with the node where the AS3462 is running. You can easily concatenate a list of these commands to be able to 
100
simulate with different AS generating the network change, without having to redeploy the topology.
101
</div>