An SDN forwarding packets strategy based on Dijkstra algorithm to find shortest path on network topology using POX controller.
After clone this repository, start Docker services with Docker Compose:
docker-compose up -d
Check out container logs with:
docker-compose logs -f --tail=200 mininet sdn-controller
Create your Mininet topology file on /network
folder;
Controller service interface will be exposed on address 172.16.238.12:6633
, make sure your network points to the correct address.
Enter on Mininet container with:
docker-compose exec mininet bash
Then, run your tests with:
mn -c && python network/PATH_TO_YOUR_TOPOLOGY_FILE.py
Here is some examples:
# Triangular topology (Without controller)
mn -c && python network/triangular/traditional.py
# Triangular topology
mn -c && python network/triangular/sdn.py
# Custom topology with loops (Without controller)
mn -c && python network/custom/traditional.py
# Custom topology with loops
mn -c && python network/custom/sdn.py
Comparing built controller with traditional Ethernet network packet forwarding strategy using STP protocol.
After running a performance test, generate csv
database:
# Custom topology with loops
./network/database_generator.sh network/custom/results/TRADITIONAL 10
./network/database_generator.sh network/custom/results/SDN 10
A sample data analisys Jupyter Notebook (analisys.ipynb
) comparing traditional approch and software definition is shown: