GithubHelp home page GithubHelp logo

parasgulati8 / sdn-simulation-with-openflow Goto Github PK

View Code? Open in Web Editor NEW
13.0 2.0 10.0 7 KB

Use Mininet to create topologies with OpenFlow switches and install flows to simulate network operations

Python 81.37% Shell 18.63%
sdn-network sdn-switch openflow fat-tree sdn-controller sdn-topo openflow-controller mininet wireshark

sdn-simulation-with-openflow's Introduction

SDN-Simulation-with-OpenFlow

Use Mininet to create topologies with OpenFlow switches and install flows to simulate network operations

MiniNet creates scalable Software-Defined Networks (up to hundreds of nodes) using OpenFlow, on a single PC. It allows to quickly create, interact with and customize a software defined network prototype with complex topologies, and can be used to emulate real networks โ€“ all on your PC MiniNet can work with any kind of OpenFlow controller

Simple SDN Topology

Simulating a software defined network with 2 hosts and 5 switches using mininet and OpenFlow switches. Topology_1

Used Mininet to create the topology above, where A, B, C, D, and E are all Openflow switches. Enforced the following policies so that,

Traffic from H1 -> H2

  • HTTP traffic with d_port=80 follows path: A-B-D
  • other traffic follows path: A-C-E-D
  • Traffic from H2 -> H1

  • HTTP traffic with s_port=80, follow path: D-C-A
  • other traffic, follow path: D-B-E-C-A
  • Fat-Tree topology in Mininet

    Installed OpenFlow switches, hosts and links in the below fashion to create a N=4 Fat-Tree topology.

    Installed OpenFlow switches, hosts and links in the below fashion to create a N=6 Fat-Tree topology

    Installation

    The code for simple SDN topology is in "topology.py". First you need to create the topology with the python script. But the packets will not flow until you install the flows in the switches. The flows for this topology are in shell script "Flows.sh". You can run the shell script in a separate terminal to install the flows.

    Then run the ping command in mininet to test the network. If the packets are dropped, that means the flows are not installed in controller and hence the switches do not know how to handle the packets.

    After successfully installing the flows, you can run the wireshark and capture the packets flowing in the network to check the flows. The code for Fat Tree topologies are present in "FatTree_4.py" and "FatTree_6.py". There are no flows in FatTree networks. However you can easily install the flows using commands similar to previous topology.

    sdn-simulation-with-openflow's People

    Contributors

    parasgulati8 avatar

    Stargazers

     avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

    Watchers

     avatar  avatar

    sdn-simulation-with-openflow's Issues

    Need help

    Hello, I am very interested in this project, but it is always unsuccessful to run on my own computer. Do you have a demo video or specific running steps of this project for reference?

    Thank you very much for your help!

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google โค๏ธ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.