Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Distributed RIP Routing with Ryu & Mininet

This project implements a distributed RIP (Routing Information Protocol) routing architecture using Ryu SDN Controllers and Mininet for network simulation.

Overview

  • Distributed Control Plane: 4 Ryu controllers communicating via REST APIs to exchange routing tables.
  • Distance Vector Logic: Automatic RIP route advertisement every 5 seconds.
  • QoS Implementation: DSCP tagging and proactive/reactive flow rules to manage traffic priority.
  • Mininet Topology: 4 switches (OpenFlow 1.3), 4 routers, and 9 hosts.

File Structure

  • updated_ryu_controller.py: The core logic for L2 switching, L3 routing, RIP table updates, and QoS flow installation.
  • mininet_final.py: The Mininet network topology definition using TCLink for link characteristics.
  • run_all.sh: Automation script to start the 4 Ryu controllers with distinct environment variables and ports.
  • running_commands_eng.pdf: Reference document containing operational steps.

Setup & Execution

Step 1: Starting the Ryu Controllers (Terminal 1)

In the first terminal, run the bash script that automatically brings up all 4 controllers in the background. They listen on ports 6653-6656.

# 1. Navigate to the project folder
cd /path/to/your/project/folder

# 2. Make the script executable (if not already)
chmod +x run_all.sh

# 3. Run the script for the controllers
./run_all.sh

Step 2: Starting the Mininet Topology (Terminal 2)

Once the controllers are running successfully, open a second terminal to start the topology.

# 1. Navigate to the project folder
cd /path/to/your/project/folder

# 2. Run the mininet topology script
python mininet_final.py

Testing the Network

Once the script finishes the setup and the mininet> prompt appears, you can perform the following tests to verify your implementation:

  • Connectivity Test: Run the following command inside the Mininet CLI to ensure all nodes can communicate:
mininet> pingall
  • RIP & QoS Verification: Test the RIP routing path and the specific QoS configuration for the VIP node 1.
  • Flow Inspection: Check the priority VIP header on switch 2 using the following command:
sudo ovs-ofctl -O OpenFlow13 dump-flows r2

Requirements

  • Ryu Framework: Ensure Ryu is installed.
  • Mininet: Installed for network emulation.
  • Python 3: Required for script execution.

About

Distributed RIP routing implementation using Ryu SDN controllers and Mininet network simulation.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages