87 lines
2.7 KiB
Plaintext
87 lines
2.7 KiB
Plaintext
|
|
Mininet: A Simple Virtual Testbed for OpenFlow/SDN
|
|
or
|
|
How to Squeeze a 1024-node OpenFlow Network onto your Laptop
|
|
|
|
Mininet 1.0.0
|
|
|
|
---
|
|
Welcome to Mininet!
|
|
|
|
Mininet creates OpenFlow test networks by using process-based
|
|
virtualization and network namespaces.
|
|
|
|
Simulated hosts (as well as switches and controllers with the user
|
|
datapath) are created as processes in separate network namespaces. This
|
|
allows a complete OpenFlow network to be simulated on top of a single
|
|
Linux kernel.
|
|
|
|
Mininet may be invoked directly from the command line, and also provides a
|
|
handy Python API for creating networks of varying sizes and topologies.
|
|
|
|
Mininet is currently in *limited alpha release*. We encourage you to
|
|
experiment with it and hope that you will provide us with feedback on
|
|
features, documentation, and how you're using it. We plan to make it
|
|
available publicly via a GPL or BSD license (probably in April), but please
|
|
don't distribute the code or URLs yet! The feedback you provide will help
|
|
us improve Mininet for general release.
|
|
|
|
In order to run Mininet, you must have:
|
|
|
|
* A Linux 2.6.26 or greater kernel compiled with network namespace support
|
|
enabled (see INSTALL for additional information.)
|
|
|
|
* An OpenFlow implementation (either the reference user or kernel
|
|
space implementations, or Open vSwitch.) Appropriate kernel modules
|
|
(e.g. tun and ofdatapath for the reference kernel implementation) must
|
|
be loaded.
|
|
|
|
* Python, bash, ping, iperf, etc.
|
|
|
|
* Root privileges (required for network device access)
|
|
|
|
Currently Mininet includes:
|
|
|
|
- A simple node infrastructure (Host, Switch, Controller classes) for
|
|
creating virtual OpenFlow networks
|
|
|
|
- A simple network infrastructure (Mininet class) supporting parametrized
|
|
topologies (Topo subclasses.) For example, a tree network may be created
|
|
with the command
|
|
|
|
# mn --topo tree,depth=2,fanout=3
|
|
|
|
- Basic tests, including connectivity (ping) and bandwidth (iperf)
|
|
|
|
- A command-line interface (CLI class) which provides useful
|
|
diagnostic commands, as well as the ability to send a command to a
|
|
node. For example,
|
|
|
|
mininet> h11 ifconfig -a
|
|
|
|
tells host h11 to run the command 'ifconfig -a'
|
|
|
|
- A 'cleanup' command to get rid of junk (interfaces, processes, files in
|
|
/tmp, etc.) which might be left around by Mininet or Linux. Try this if
|
|
things stop working!
|
|
|
|
# mn -c
|
|
|
|
- Examples (in the examples/ directory) to help you get started.
|
|
|
|
Batteries are not included (yet!)
|
|
|
|
However, some preliminary installation notes are included in the INSTALL
|
|
file.
|
|
|
|
Additionally, much useful information, including a Mininet tutorial,
|
|
is available on the Mininet wiki:
|
|
|
|
http://openflow.org/mininet
|
|
|
|
Enjoy, and good luck!
|
|
|
|
---
|
|
Bob Lantz
|
|
rlantz@cs.stanford.edu
|