Skip to content

MininetIDS is an integrated environment for developing and evaluating Machine Learning-based Intrusion Detection Systems in Software-Defined Networks. It combines Mininet for network emulation and Ryu for SDN control, enabling advanced IDS research and deployment.

License

Notifications You must be signed in to change notification settings

ranauzairahmed/MininetIDS

Repository files navigation

MininetIDS

MininetIDS is a consolidated environment for training, testing, and deploying Machine Learning-based Intrusion Detection Systems (ML-IDS) in Software-Defined Networks (SDN). It leverages Mininet for network emulation and the Ryu controller for SDN management, providing a comprehensive platform for researchers and network security professionals to develop and evaluate advanced IDS solutions in SDN environments.

Features

  • Dataset management (import, select, analyze, preprocess)
  • Machine learning model training (Logistic Regression, KNN, Naive Bayes, Decision Tree, Random Forest)
  • Network topology management
  • Integration with Ryu controller for IDS functionality
  • Feature selection and data preprocessing tools

Included Datasets

MininetIDS comes with two pre-included datasets for testing and evaluation:

  1. MininetFlows

    • Generated using Mininet
    • Contains DoS attacks:
      • ICMP flood
      • TCP SYN flood
      • UDP flood
      • LAND attack
    • Includes normal traffic:
      • HTTP
      • TCP
      • UDP
      • ICMP
  2. NSL-KDD

    • Widely used benchmark dataset for network intrusion detection research
    • Improved version of the original KDD Cup 1999 dataset
    • Contains various types of network attacks and normal traffic

These datasets provide a starting point for testing and evaluating IDS models within the MininetIDS environment. The MininetFlows dataset offers simulated traffic that closely matches the Mininet environment, while NSL-KDD provides a standard benchmark for comparison with other IDS research.

Installation

  1. Update your system:
    sudo apt-get update
    
  2. Install Git:
    sudo apt-get install git
    
  3. Clone the repository:
    git clone https://github.com/ranauzairahmed/MininetIDS.git
    
  4. Navigate to the project directory:
    cd MininetIDS
    
  5. If you already have Mininet and Ryu working properly:
    pip install -r requirements.txt
    
  6. Otherwise, make the installation script executable:
    chmod +x install.sh
    
  7. Run the installation script:
    ./install.sh
    

Usage

To start the MininetIDS interface, run:

python3 MininetIDS.py

This will launch the command-line interface where you can use various commands to manage datasets, train models, and control the IDS.

For a full list of commands, use the help command in the MininetIDS interface.

Example Demonstration

NSL-KDD with MininetIDS

License

MIT License

Faculty of Computing
BSCS - Final Year Project

Supervisor:

Dr. Muhammad Siraj Rathore
muhammad.siraj@cust.edu.pk
Faculty Profile
Google Scholar
ResearchGate

Group:

Rana Uzair Ahmed
ranauzairahmed.official@gmail.com
LinkedIn

Raja Tayyab Nawaz
tayyabnawaz177@gmail.com
LinkedIn

Reference

SDN Network DDoS Detection Using Machine Learning

About

MininetIDS is an integrated environment for developing and evaluating Machine Learning-based Intrusion Detection Systems in Software-Defined Networks. It combines Mininet for network emulation and Ryu for SDN control, enabling advanced IDS research and deployment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published