Skip to content
Snippets Groups Projects
INSTALL 3.68 KiB
Newer Older
Mininet Installation/Configuration Notes
Bob Lantz's avatar
Bob Lantz committed
Mininet 2.0.0
Bob Lantz's avatar
Bob Lantz committed

Bob Lantz's avatar
Bob Lantz committed

The supported installation methods for Mininet are 1) using
a pre-built VM image, and 2) native installation on Ubuntu. You
can also easily create your own Mininet VM image (3).

Bob Lantz's avatar
Bob Lantz committed
(Other distributions may be supported in the future - if you would
like to contribute an installation script, we would welcome it!)

1. Easiest "installation" - use our pre-built VM image!
Bob Lantz's avatar
Bob Lantz committed

The easiest way to get Mininet running is to start with one of our pre-built 
virtual machine images from http://openflow.org/mininet
Bob Lantz's avatar
Bob Lantz committed

Boot up the VM image, log in, and follow the instructions on the wiki page.

One advantage of using the VM image is that it doesn't mess with
your native OS installation or damage it in any way.
Bob Lantz's avatar
Bob Lantz committed

Although a single Mininet instance can simulate multiple networks with
multiple controllers, only one Mininet instance may currently be run at
a time, and Mininet requires root access in the machine it's running on.
Therefore, if you have a multiuser system, you may wish to consider
running Mininet in a VM.

2. Next-easiest option: use our Ubuntu package!

To install Mininet itself (i.e. mn and the Python API) on Ubuntu 12.10+

  sudo apt-get install mininet

Note: if you are upgrading from an older version of Mininet, make sure you
remove the old OVS from /usr/local:

  sudo rm /usr/local/bin/ovs*
  sudo rm /usr/local/sbin/ovs*

3. Native installation from source on Ubuntu 11.10+
Bob Lantz's avatar
Bob Lantz committed

If you're reading this, you've probably already done so, but the command to
download the Mininet source code is;
   
  git clone git://github.com/mininet/mininet.git

If you are running Ubuntu, you may be able to use our handy install.sh script,
which is in mininet/util.
Bob Lantz's avatar
Bob Lantz committed

WARNING: USE AT YOUR OWN RISK!

install.sh is a bit intrusive and may possibly damage your OS and/or
home directory, by creating/modifying several directories such as
mininet, openflow, openvswitch and noxcore. Although we hope it won't
do anything completely terrible, you may want to look at the script
before you run it, and you should make sure your system and home
directory are backed up just in case!
Bob Lantz's avatar
Bob Lantz committed

To install Mininet itself, the OpenFlow reference implementation, and
Open vSwitch, you may use:
Bob Lantz's avatar
Bob Lantz committed

$ mininet/util/install.sh -fnv
Bob Lantz's avatar
Bob Lantz committed

This should be reasonably quick and the following command should work
after the installation:
Bob Lantz's avatar
Bob Lantz committed

$ sudo mn --test pingall
Bob Lantz's avatar
Bob Lantz committed

To install ALL of the software which we use for OpenFlow tutorials,
including NOX classic, the OpenFlow WireShark dissector, the oftest
framework, and other potentially useful software (and to add some stuff
to /etc/sysctl.conf which may or may not be useful) you may use
Bob Lantz's avatar
Bob Lantz committed

$ mininet/util/install.sh -a
This takes about 20 minutes on our test system.
4. Creating your own Mininet/OpenFlow tutorial VM
Creating your own Ubuntu Mininet VM for use with the OpenFlow tutorial
is easy! First, create a new Ubuntu VM. Then, run
$ wget https://raw.github.com/mininet/mininet/util/vm/install-mininet-vm.sh
$ time install-mininet-vm.sh
5. Installation on other Linux distributions

Although we don't support other Linux distributions directly, it should be
possible to install and run Mininet with some degree of manual effort.

In general, you must have:

* A Linux kernel compiled with network namespace support enabled

* 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)

We encourage contribution of patches to the `install.sh` script to support
other Linux distributions.

Good luck!