Giter VIP home page Giter VIP logo

defensive_sdn's Introduction

Network Tomography

The topic of the homework is to do network tomography with OpenFlow switches. This seems to be a good book about the topic.

To be able to simulate a computer network we use Linux's namespaces (i.e. process virtualization) and Open vSwitch.

To make this easy the professor proposes to use Mininet and Ryu.

But since a lot of stuff can be done directly from the Open vSwitch command line interface (ovs-ofctl), I can probably get away with mush less.

Please note that mininet uses nameless/anonymous/unnamed namespaces, to see them, once they are created it is sufficient to use the command ip netns list-id. Here a few sources from a mailing list and the usual StackOverflow. To list all the OpenVSwitch bridges/switches the commands ovs-vsctl show and ovs-vsctl list-br, it seems that they must be run from the current user to see the switches.

This video shows how to create network namespaces by hand and how to connect them! It is perfect for what I want to do. some usefull comand to look into are: ip(1) and brctl(1), the second one seems to be a way to connect network namespaces without Openflow capabilities.

This is some useful documentation about using Openflow with Open vSwitch.

This describes how Mininet works at a high level. The mininet(1) command is written mostly in Python but it is based on this tiny C program which executes commands in separated network namespaces.

Wireshark or tcpdump can be used to sniff Openflow traffic because it runs on top of TCP, as shown in this video.

A cool reference of OpenVSwitch commands.

If you have networks with loops in mininet here is the solution.

A basic OpenFlow controller written in C.

ovs-vsctl set-controller s1 tcp:localhost:6633 must be used to make the Installing the default controller

defensive_sdn's People

Contributors

l0r3m1psum avatar

Watchers

 avatar

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.