Public Repository

Last pushed: 2 years ago
Short Description
Short description is empty for this repo.
Full Description

Reproducing Network

This repository contains steps to reproduce a scenario about the image below. This was chosen as part of course exam from University of Campinas - Unicamp (Brazil).

PhD Professor: Christian Rodolfo Esteve Rothenberg

Student: Juan Sebastian Mejia Vallejo

The image 1 is the original image of the paper.

Introduction:

This document have the target to reproduce the network of figure 4, and his results (figures 5 and 6) of the paper [Network Programmability Using POX Controller] (http://sbsstc.ac.in/icccs2014/Papers/Paper28.pdf) and allow easy reproducing to everyone who want to do the same.

Tools/sotware used:

Steps to run the container

On Terminal :
You can use screen tool to create more terminal windows (how to use, see in references).

a) Run the container:
sudo docker run --privileged=true -it juanmejia/mininet:v1.

b) POX is a python based SDN controller that is inherited from the NOX controller. Now you to use POX controller, type the following command in terminal window:

$python pox.py log.level --DEBUG &

you can see working something like this:

[1] 84
root@7c597633f3f6:/pox# POX 0.2.0 (carp) / Copyright 2011-2013 James McCauley, et al.
DEBUG:core:POX 0.2.0 (carp) going up...
DEBUG:core:Running on CPython (2.7.6/Mar 22 2014 22:59:56)
DEBUG:core:Platform is Linux-3.16.0-30-generic-x86_64-with-Ubuntu-14.04-trusty
INFO:core:POX 0.2.0 (carp) is up.
DEBUG:openflow.of_01:Listening on 0.0.0.0:6633

VERIFYING HUB BEHAVIOR:
Tcpdump Output before Running 'Ping' Utility

To verify hub behavior, and to reproduce the figure 5, start a topology that contains single switch and 5 hosts and run it with POX controller, type the following command in terminal window:

sudo mn --topo single,5 --mac --switch ovsk --controller remote &

you can see something like this:

[2]
*** Creating network
*** Adding controller
*** Adding hosts:
INFO:openflow.of_01:[None 1] closed
h1 h2 h3 h4 h5 
*** Adding switches:
s1 
*** Adding links:
(h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1) 
*** Configuring hosts
h1 h2 h3 h4 h5 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet>

Now type "pingall" in order to check conectivity beetwen hosts:
mininet> pingall

You can see something like this:

*** Ping: testing ping reachability
h1 -> X X X X 
h2 -> X X X X 
h3 -> X X X X 
h4 -> X X X X 
h5 -> X X X X 
*** Results: 100% dropped (0/20 received)

Try running a basic hub example:

To verify hub behavior, and to reproduce the figure 6, and execute hub.py type the following command in terminal window:

$python pox.py log.level --DEBUG hub &

you can see something like this:

POX 0.2.0 (carp) / Copyright 2011-2013 James McCauley, et al.
INFO:hub:Hub running.
DEBUG:core:POX 0.2.0 (carp) going up...
DEBUG:core:Running on CPython (2.7.6/Mar 22 2014 22:59:56)
DEBUG:core:Platform is Linux-3.16.0-30-generic-x86_64-with-Ubuntu-14.04-trusty
INFO:core:POX 0.2.0 (carp) is up.
DEBUG:openflow.of_01:Listening on 0.0.0.0:6633
INFO:openflow.of_01:[None 1] closed
INFO:openflow.of_01:[00-00-00-00-00-01 2] connected
INFO:hub:Hubifying 00-00-00-00-00-01

Now, using other process, type the following command in terminal window:
sudo mn --topo single,5 --mac --switch ovsk --controller remote &

you can see something like this:

*** Error setting resource limits. Mininet's performance may be affected.
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2 h3 h4 h5 
*** Adding switches:
s1 
*** Adding links:
(h1, s1) (h2, s1) (h3, s1) (h4, s1) (h5, s1) 
*** Configuring hosts
h1 h2 h3 h4 h5 
*** Starting controller
c0 
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet> pingall
*** Ping: testing ping reachability
h1 -> h2 h3 h4 h5 
h2 -> h1 h3 h4 h5 
h3 -> h1 h2 h4 h5 
h4 -> h1 h2 h3 h5 
h5 -> h1 h2 h3 h4 
*** Results: 0% dropped (20/20 received)

Results:

We observed similar results from paper. The network was configured and deployed using POX controller as HUB, and gets to send packets successfully to all host.

##References:

Docker Pull Command
Owner
juanmejia

Comments (0)