Project for the Software Defined Networking course A.Y. 2020/2021 @Polimi
Author 👨🏼💻 | Email 📨 | Version 📐 | Language 🐍 |
---|---|---|---|
Dario Crippa | [email protected] | 1.0.0 |
Python |
These scripts rely on the virtual machine provided by Prof. Verticale here
It was developed with an older version of this VM so unexpected errors might occur
# Install the VM
git clone https://github.com/gverticale/sdn-vm-polimi
# Install Vagrant (use Homebrew on MacOS)
brew install vagrant
# Configure the VM
cd VirtualMachineFolder
vagrant up
# Connect to the VM via SSH
vagrant ssh
# Install sFlow
bash /vagrant/setup/sflow-setup.sh
# Clone this project inside the VM
git clone https://github.com/AstroWLAN/ElephantFlowsManagement
Open three distinct tabs in your terminal application
1️⃣ sFlow
# Execute sFlow
sflow-rt/start.sh
2️⃣ Controller
# Launch the RYU controller configuration script
cd controllerFolderPath
ryu-manager --observe-links controller_config.py
3️⃣ Network
# Launch the Mininet network configuration script
cd controllerFolderPath
sudo python3 network_config.py
At controller startup you have to choose between two different operational modes
Mode 🕹️ | Description ✏️ |
---|---|
Enabled | Enable the CMS algorithm rules installed locally in the switches |
Disabled | Disable the CMS algorithm packets will be managed directly by the controller |
With the CMS algorithm enabled the amount of time requested to send all the packets through the network will be very smaller
The best way to solve the biggest amount of problems with the Mininet environment is to perform a complete cleanup
sudo mn -c