Official repository for the paper to WTESTBEDS - 1º Workshop de Testbeds
This repository has all the files needed to run the topology and which was put as an example in the article "FreeRouter in a Nutshell: A "Protocoland'' routing platform for Open and Portable Carrier-Class Testbeds" sent to WTESTBEDS - 1st Testbeds Workshop.
Freertr is a control plane: Router OS process speaks various network protocols, (re)encap packets, and exports forwarding tables to hardware switches. Basically, it is only necessary to install the Java Runtime Environment (JRE). Below is demonstrated how to install it on operating systems: Linux, Windows and macOS.
For demonstration purposes, the Debian-based Linux installation was chosen.
#sudo apt-get install default-jre-headless --no-install-recommends
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk list java
sdk install java 17.0.2-open
sdk default java 17.0.2-open
java -version
In order to install the Windows version of Java, you need to visit the official Java website and download the Windows executable. After the download, check if your user has permission to install and perform the installation through the graphical environment.
The freeRouter homepage is at freertr.net. Starting from this page, you'll find various resources such as source code (there is also a GitHub mirror), binaries, and other images that might be of your interest. From there we just download the freeRouter jar files.
#wget freertr.net/rtr.jar
Now it's time to run the topology, to run it, download all the hardware and software files that are in the repository, in the same folder.
NOTE
To orchestrate the execution of the topology we use
tmux
, if you don't have it installed, remember to install it.
sudo apte-get install tmux
or
brew install tmux
Edit the star-topology.sh
file.
vim start-topology.sh
This file has two environment variables $STR
and $HWSW
, add the path according to your operating system.
./start-topology
To access routers by telnet use telnet <ip address> <port>
.
For Example: Accessing Router R1
telnet 127.0.0.1 1123
R1# Show interfaces summary
R1# show ipv4 route v1
R1# ping 6.6.6.1 vrf v1
R1# traceroute 6.6.6.1 vrf v1
Abnt:
BORGES, Everson Scherrer; PONTES, Edgard da Cunha; MATE, Csaba; LOUI, Frederic; MARTINELLO, Magnos; RIBEIRO, Moisés R. N.. FreeRouter in a Nutshell: A "Protocoland" routing platform for Open and Portable Carrier-Class Testbeds. In: WORKSHOP DE TESTBEDS, 1. , 2022, Niterói. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 36-46. DOI: https://doi.org/10.5753/wtestbeds.2022.223341.
Bibtex:
@inproceedings{wtestbeds,
author = {Everson Borges and Edgard Pontes and Csaba Mate and Frederic Loui and Magnos Martinello and Moisés Ribeiro},
title = {FreeRouter in a Nutshell: A "Protocoland" routing platform for Open and Portable Carrier-Class Testbeds},
booktitle = {Anais do I Workshop de Testbeds},
location = {Niterói},
year = {2022},
pages = {36--46},
publisher = {SBC},
address = {Porto Alegre, RS, Brasil},
doi = {10.5753/wtestbeds.2022.223341},
url = {https://sol.sbc.org.br/index.php/wtestbeds/article/view/20752}
}