This project is a SRv6 Sandbox base on Mininet.
-
Linux Kernel higher than 4.15
-
Latest Mininet Installed
-
Quagga Installed
-
Python Installed
The install guide is base on Ubuntu 18.04 LTS version
-
Upgrade Kernel to the recommended version
apt-get install linux-headers-4.15.0-38 linux-headers-4.15.0-38-generic linux-image-4.15.0-38-generic linux-modules-4.15.0-38-generic linux-modules-extra-4.15.0-38-generic
-
Reboot and check if the kernel is upgraded
uname -a Linux ubuntu 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
-
Install Mininet and Quagga
apt-get install mininet gawk libreadline-dev libc-ares-dev wget https://github.com/Quagga/quagga/releases/download/quagga-1.2.4/quagga-1.2.4.tar.gz tar -xzvf ./quagga-1.2.4.tar.gz cd ./quagga-1.2.4 ./configure --enable-vtysh --enable-user=root --enable-group=root --enable-vty-group=root make install
-
Install iproute2
wget https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-4.9.0.tar.gz tar -xzvf ./iproute2-4.9.0.tar.gz cd ./iproute2-4.9.0 apt-get install bison flex make make install
-
Install python dependencies
pip install mako ipaddress ipmininet --no-deps
-
Run Environment
sudo python topo.py
In file topo.py:
You can define topology by adding Host/Router and adding Links.
Use build_dx4_tunnel to build a DX4 Tunnel Use build_dx6_tunnel to build a DX6 Tunnel Use RouterConfiguration to Initialize a Router to SRv6 Router.
For manual configuration, run dx4_r1.sh on R1 and dx4_r3 on R3
After running sudo python topo.py, you will be promoted to a Mininet shell.
Run "xterm " to go to the destinated host shell
For example, xterm R1 will give you access to R1 shell.