Professional Documents
Culture Documents
OS X 10.7-10.9
download and Terminal.app
Mac Lion/Mountain VirtualBox
install XQuartz (built in)
Lion/ Mavericks
X server
gnome terminal
Linux Ubuntu 10.04+ VirtualBox already
+ SSH built in
installed
Slicing
Expedient FlowVisor Software
Commercial Switches Stanford Provided
Software Broadcom
NetFPGA
HP, NEC, Pronto, Ref. Switch Ref. Switch OpenFlow
Juniper.. and many
more OpenWRT
PCEngine
OpenVSwitch
Switches
WiFi AP
3
Trend
Research VLAN 2
Research VLAN 1
Flow Table
Controller
Production VLANs
Normal L2/L3 Processing
FlowVisor-based Virtualization
Bob’s Fabrizio’s
Alice’s Controller Controller
Controller
Topology
discovery is
per slice
OpenFlow
Protocol
OpenFlow
Protocol
OpenFlow OpenFlow
Switch Switch
7
FlowVisor-based Virtualization
8 http
Multicast Load-balancer
Broadcast
Separation not only
by VLANs, but any
L1-L4 pattern
OpenFlow OpenFlow
Switch FlowVisor & Policy Control
OpenFlow
Protocol
OpenFlow OpenFlow
Switch Switch
FlowSpace: Maps Packets to Slices
FlowVisor Message Handling
OpenFlow
Policy Check: Policy Check:
Is this rule FlowVisor Who controls
allowed? this packet?
OpenFlow
Full Line Rate OpenFlow Exception
Forwarding Firmware
Packet
Packet Data Path
Introduction to Mininet
¨ Mininet
¤ A network emulator which creates realistic virtual network
¤ Runs real kernel, switch and application code on a single machine
n Install Mininet package according to your Ubuntu version (choose one of them!)
$ sudo apt-get install mininet Ubuntu 13.04
$ sudo apt-get install mininet/quantal-backports Ubuntu 12.10
$ sudo apt-get install mininet/precise-backports Ubuntu 12.04
n Deactive OpenvSwitch controller if it is running
$ sudo service openvswitch-controller stop
$ sudo update-rc.d openvswitch-controller disable
n You can also install additional software from mininet source
$ git clone git://github.com/mininet/mininet
$ mininet/util/install.sh -fw
Mininet Tutorial (1/7)
¨ Mininet Command Line Interface Usage
¤ Interact with hosts and switches
n Start a minimal topology
$ sudo mn
n Display nodes
mininet> nodes
n Display links
mininet> net
¤ Link variations
$ sudo mn -link tc,bw=[bandwidth],delay=[delay_in_millisecond]
¤ Python Interpreter
n Print accessible local variables
$ py locals()
LEN_DPID = 16
from mininet.topo import Topo
class MyTopo( Topo ):
h1 h2 p1
acquire Controller h1 h2 p1
route
insert
flow
OS X 10.7-10.9
download and Terminal.app
Mac Lion/Mountain VirtualBox
install XQuartz (built in)
Lion/ Mavericks
X server
gnome terminal
Linux Ubuntu 10.04+ VirtualBox already
+ SSH built in
installed
¨ You should see three interfaces(eth0, eth1, lo), Both eth0 and eth1
should have IP address assigned. If this is not the case, type
$ sudo dhclient ethX
¨ To run a single command on a node, prepend the command with the name
of the node. For example, to check the IP of a virtual host, in the Mininet
console, run:
mininet> h1 ifconfig
¨ The alternative - better for running interactive commands and watching
debug output - is to spawn an xterm for one or more virtual hosts. In the
Mininet console, run:
mininet> xterm h1 h2
¨ If Mininet is not working correctly (or has crashed and needs to be
restarted), first quit Mininet if necessary (using the exit command, or control-
D), and then try clearing any residual state or processes using:
$ sudo mn -c
ovs-ofctl example usage
¨ Create another terminal window:
$ sudo ovs-ofctl show s1
¨ You'll probably get a warning message for using wireshark with root
access. Press OK.
¨ Now, set up a filter for OpenFlow control traffic, by using the ’tcp
port 6653' filter (Capture->Options).
¨ Click on Capture->Interfaces in the menu bar. Click on the Start
button next to 'lo', the loopback interface. You may see some
packets going by.
¨ Press the apply button to apply the filter to all recorded traffic.