Update for Mininet 2.0.0 development.
This commit is contained in:
1 parent
0f832c9226
commit
e04c207c3c
4 files changed
+47
-245
No files matched your search
@@ -1,12 +1,14 @@
|
|||||||
|
|
||||||
Mininet Installation/Configuration Notes
|
Mininet Installation/Configuration Notes
|
||||||
|
|
||||||
Mininet 1.0.0
|
Mininet 2.0.0d1
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
The supported installation methods for Mininet are 1) using
|
The supported installation methods for Mininet are 1) using
|
||||||
a pre-built VM image, and 2) native installation on Ubuntu or Debian.
|
a pre-built VM image, and 2) native installation on Ubuntu. You
|
||||||
|
can also easily create your own Mininet VM image (3).
|
||||||
|
|
||||||
(Other distributions may be supported in the future - if you would
|
(Other distributions may be supported in the future - if you would
|
||||||
like to contribute an installation script, we would welcome it!)
|
like to contribute an installation script, we would welcome it!)
|
||||||
|
|
||||||
@@ -20,10 +22,15 @@ Boot up the VM image, log in, and follow the instructions on the wiki page.
|
|||||||
An additional advantage of using the VM image is that it doesn't mess with
|
An additional advantage of using the VM image is that it doesn't mess with
|
||||||
your native OS installation or damage it in any way.
|
your native OS installation or damage it in any way.
|
||||||
|
|
||||||
2. Native installation (experimental!) for Ubuntu 10.04 LTS
|
2. Native installation on Ubuntu
|
||||||
|
|
||||||
If you are running Ubuntu 10.04 LTS (or possibly Debian 5), you may be
|
If you're reading this, you've probably already done it, but the command to
|
||||||
able to use our handy install.sh script, which is in mininet/util.
|
download the Mininet source code is;
|
||||||
|
|
||||||
|
git clone git://openflow.org/mininet.git
|
||||||
|
|
||||||
|
If you are running Ubuntu, you may be able to use our handy install.sh script,
|
||||||
|
which is in mininet/util.
|
||||||
|
|
||||||
WARNING: USE AT YOUR OWN RISK!
|
WARNING: USE AT YOUR OWN RISK!
|
||||||
|
|
||||||
@@ -34,240 +41,39 @@ 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
|
before you run it, and you should make sure your system and home
|
||||||
directory are backed up just in case!
|
directory are backed up just in case!
|
||||||
|
|
||||||
|
To install Mininet itself, the OpenFlow reference implementation, and
|
||||||
|
Open vSwitch, you may use:
|
||||||
|
|
||||||
|
$ mininet/util/install.sh -fnv
|
||||||
|
|
||||||
|
This should be reasonably quick and the following command should work
|
||||||
|
after the installation:
|
||||||
|
|
||||||
|
$ sudo mn --test pingall
|
||||||
|
|
||||||
To install ALL of the software which we use for OpenFlow tutorials,
|
To install ALL of the software which we use for OpenFlow tutorials,
|
||||||
you may use
|
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
|
||||||
|
|
||||||
$ mininet/util/install.sh
|
$ mininet/util/install.sh -a
|
||||||
|
|
||||||
This takes about 20-30 minutes.
|
This takes about 20 minutes on our test system.
|
||||||
|
|
||||||
Alternately, you can install just the pieces you need.
|
3. Creating your own Mininet/OpenFlow tutorial VM
|
||||||
|
|
||||||
We recommend the following steps, in order:
|
Creating your own Ubuntu Mininet VM for use with the OpenFlow tutorial
|
||||||
|
is easy! First, create a new Ubuntu VM. Then, run
|
||||||
|
|
||||||
[a) On Debian 5, first install a Mininet-compatible kernel:
|
$ wget https://raw.github.com/mininet/mininet/util/vm/install-mininet-vm.sh
|
||||||
$ mininet/util/install.sh -k
|
$ time install-mininet-vm.sh
|
||||||
Reboot and run 'uname -r' to make sure you're running the new kernel.]
|
|
||||||
|
|
||||||
b) Install mininet and its dependencies:
|
Good luck!
|
||||||
$ mininet/util/install.sh -n
|
|
||||||
|
|
||||||
c) Install OpenFlow 1.0 and associated useful software
|
|
||||||
$ mininet/util/install.sh -f
|
|
||||||
|
|
||||||
d) Install Open vSwitch and its kernel module
|
|
||||||
$ mininet/util/install.sh -vm
|
|
||||||
|
|
||||||
e) If you wish to install the version of NOX we use in the tutorial:
|
|
||||||
$ mininet/util/install.sh -x
|
|
||||||
|
|
||||||
Note: NOX development is progressing over time, so after you complete
|
|
||||||
the tutorial you may wish to install the latest and greatest NOX from
|
|
||||||
noxrepo.org.
|
|
||||||
|
|
||||||
Good luck! Some additional installation notes are provided below, for
|
|
||||||
the brave and/or Linux-savvy, or those who are trying to understand what
|
|
||||||
is installed and why.
|
|
||||||
|
|
||||||
p.s. Note that only one instance of Mininet is currently supported on a single
|
p.s. Note that only one instance of Mininet is currently supported on a single
|
||||||
machine - that's one reason we recommend using a VM to run it.
|
machine - that's one reason we recommend using a VM to run it.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Mininet Manual Installation Notes
|
|
||||||
|
|
||||||
These installation notes assume you understand how to do things like
|
|
||||||
compile kernels, apply patches, configure networks, write code, etc.. If
|
|
||||||
this is unfamiliar territory, or if you run into trouble, we recommend
|
|
||||||
using one of our pre-built virtual machine images (see above.)
|
|
||||||
|
|
||||||
If you wish to try to create a VM to run Mininet, you may also wish
|
|
||||||
to look at the Wiki page:
|
|
||||||
|
|
||||||
http://openflow.org/foswiki/bin/view/OpenFlow/MininetVMCreationNotes
|
|
||||||
|
|
||||||
0. Obtaining Mininet
|
|
||||||
|
|
||||||
If you're reading this, you've already done it, but the command to
|
|
||||||
download mininet is:
|
|
||||||
|
|
||||||
git clone git://openflow.org/mininet.git
|
|
||||||
|
|
||||||
1. Core Mininet installation
|
|
||||||
|
|
||||||
The core Mininet installation requires gcc, make, python,
|
|
||||||
and setuptools. On Ubuntu and Debian you may install them with:
|
|
||||||
|
|
||||||
# aptitude install gcc make python setuptools
|
|
||||||
|
|
||||||
To install Mininet itself, with root privileges:
|
|
||||||
|
|
||||||
# cd mininet
|
|
||||||
# make install
|
|
||||||
|
|
||||||
This places the mininet package in /usr/lib/python-*/site-packages/,
|
|
||||||
so that 'import mininet' will work, and installs the primary mn
|
|
||||||
script (mn) as well as its helper utility (mnexec.)
|
|
||||||
|
|
||||||
On Ubuntu and Debian, Mininet's dependencies and core files may also be
|
|
||||||
installed using mininet/util/install.sh -n
|
|
||||||
|
|
||||||
2. Installation script for Ubuntu/Debian Lenny
|
|
||||||
|
|
||||||
If you are running Ubuntu 10.04 or Debian Lenny, you may be able to use the
|
|
||||||
util/install.sh script to install a compatible Linux kernel as well as
|
|
||||||
other software including the OpenFlow reference implementation, the Open
|
|
||||||
vSwitch switch implementation, and the NOX OpenFlow controller.
|
|
||||||
|
|
||||||
Many different installation options are possible by passing different
|
|
||||||
options to install.sh; install.sh -h lists them all.
|
|
||||||
|
|
||||||
Assuming the mininet source tree is installed in ~/mininet, the steps to run
|
|
||||||
install.sh to install EVERYTHING we use for OpenFlow tutorials are:
|
|
||||||
|
|
||||||
% cd
|
|
||||||
% time ~/mininet/util/install.sh # installs tons of stuff
|
|
||||||
% sudo reboot # to load new kernel
|
|
||||||
% ~/mininet/util/install.sh -c # to clean out unneeded kernel stuff
|
|
||||||
|
|
||||||
This installs a lot of useful software, but it will take a while (30
|
|
||||||
minutes or more, depending on your network connection, computer, etc..)
|
|
||||||
|
|
||||||
Probably the minimal semi-useful configuration would be to install
|
|
||||||
Mininet itself, kernel support if necessary, and either the
|
|
||||||
reference OpenFlow switch or Open vSwitch. This could be installed
|
|
||||||
as follows:
|
|
||||||
|
|
||||||
% sudo ~/mininet/util/install.sh -knvm
|
|
||||||
|
|
||||||
Respectively, this installs kernel support, core mininet dependencies,
|
|
||||||
Open vSwitch, and the Open vSwitch kernel module. If a new kernel was
|
|
||||||
installed, then a reboot may be required.
|
|
||||||
|
|
||||||
If install.sh cannot be used for some reason (e.g. you're on Fedora
|
|
||||||
or some other Linux - please don't say CentOS) or if you don't want to
|
|
||||||
install all of these components (they're useful!), the kernel and
|
|
||||||
OpenFlow software requirements are described in steps [3] and [4],
|
|
||||||
which follow.
|
|
||||||
|
|
||||||
If you successfully used install.sh, congratulations! You're basically
|
|
||||||
done. Proceed to step [6] for additional advice.
|
|
||||||
|
|
||||||
3. Linux Kernel requirements
|
|
||||||
|
|
||||||
Mininet requires a kernel built with network namespace support enabled,
|
|
||||||
i.e. with CONFIG_NET_NS=Y, such as the kernel shipped with
|
|
||||||
Ubuntu 10.04 LTS, currently 2.6.32. On Ubuntu 10.04, you should not need
|
|
||||||
to install or build a custom kernel, although 2.6.33+ is faster at
|
|
||||||
tearing down virtual ethernet pairs.
|
|
||||||
|
|
||||||
For Ubuntu and Debian, we provide a 2.6.33 kernel package which you may be
|
|
||||||
able to install using "util/install.sh -k". Note our kernel package
|
|
||||||
requires an ext2 or ext3 root file system, so it won't work if you have
|
|
||||||
a default Ubuntu install, which uses ext4.
|
|
||||||
|
|
||||||
If your kernel wasn't compiled with CONFIG_NET_NS=Y, you will need to
|
|
||||||
build and install a kernel that does! >= 2.6.33 works better, but may
|
|
||||||
be harder to get working, depending on your Linux distribution.
|
|
||||||
|
|
||||||
A script for building Debian packages for 2.6.33.1 is provided in
|
|
||||||
mininet/util/kbuild. You may wish to read it, as it applies patches
|
|
||||||
to enable 2.6.33.1 to build under debian-stable, and to enable the
|
|
||||||
tun driver to work correctly with Mininet.
|
|
||||||
|
|
||||||
Earlier kernels (e.g. 2.6.29) work with CONFIG_NET_NS enabled and no
|
|
||||||
additional patches, but are much slower at removing veth interfaces,
|
|
||||||
resulting in much slower switch shutdown.
|
|
||||||
|
|
||||||
For scalable configurations, you might need to increase some of your
|
|
||||||
kernel limits. Sample params are in util/sysctl_addon, which can be
|
|
||||||
appended to /etc/sysctl.conf (and modified as necessary for your
|
|
||||||
desired configuration):
|
|
||||||
|
|
||||||
sudo su -c "cat sysctl_addon >> /etc/sysctl.conf"
|
|
||||||
|
|
||||||
To save the config change, run:
|
|
||||||
|
|
||||||
sudo sysctl -p
|
|
||||||
|
|
||||||
4. OpenFlow software and configuration requirements
|
|
||||||
|
|
||||||
Mininet requires either the reference OpenFlow switch implementation
|
|
||||||
(from openflowswitch.org) or Open vSwitch (openvswitch.org) to be
|
|
||||||
installed. "make test" requires the reference user space
|
|
||||||
implementations as well as Open vSwitch. Note the reference kernel
|
|
||||||
implementation is not currently included in OpenFlow 1.0.
|
|
||||||
|
|
||||||
On Ubuntu and Debian, the install.sh script may be used with the '-f'
|
|
||||||
option to install the OpenFlow reference implementation, the '-v' option
|
|
||||||
to build Open vSwitch, and the '-m' option to install the Open vSwitch
|
|
||||||
kernel module into /lib/modules (note: you must build Open vSwitch first!)
|
|
||||||
|
|
||||||
Mininet will automatically load and remove kernel module dependencies
|
|
||||||
for supported switch types, using modprobe and rmmod - but these
|
|
||||||
modules must be in a location where modprobe can find them (e.g.
|
|
||||||
something like /lib/modules/`uname -r`/kernel/drivers/net/)
|
|
||||||
|
|
||||||
The reference OpenFlow controller (controller(8)) only supports 16
|
|
||||||
switches by default! If you wish to run a network with more than 16
|
|
||||||
switches, please recompile controller(8) with larger limits, or use a
|
|
||||||
different controller such as nox. A patch to controller(8) is included
|
|
||||||
as util/openflow-patches/controller.patch.
|
|
||||||
|
|
||||||
5. Other software dependencies
|
|
||||||
|
|
||||||
On Ubuntu and Debian, other Mininet dependencies may be installed using
|
|
||||||
the '-n' option of the install.sh script.
|
|
||||||
|
|
||||||
To run the iperf test, you need to install iperf:
|
|
||||||
|
|
||||||
sudo aptitude/yum install iperf
|
|
||||||
|
|
||||||
We assume you already have ping installed. ;-)
|
|
||||||
|
|
||||||
To use xterm or sshd with Mininet, you need the following:
|
|
||||||
|
|
||||||
sudo aptitude/yum install sshd xterm screen
|
|
||||||
|
|
||||||
Some examples may have additional requirements - consult the specific
|
|
||||||
example file for details.
|
|
||||||
|
|
||||||
The install.sh script has an '-x' option to install the version of
|
|
||||||
NOX from the OpenFlow tutorial.
|
|
||||||
|
|
||||||
6. Other notes and recommendations
|
|
||||||
|
|
||||||
If you did not install certain useful packages and you wish to later,
|
|
||||||
it may be possible to install them using install.sh.
|
|
||||||
|
|
||||||
Mininet should be run either on a machine with
|
|
||||||
no other important processes, or on a virtual machine (recommended!)
|
|
||||||
|
|
||||||
Multiple concurrent Mininet instances are not supported!
|
|
||||||
|
|
||||||
Good luck!
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Historical information on OpenFlow 0.8.9 and the reference kernel module:
|
|
||||||
|
|
||||||
The kernel reference implementation has been deprecated, but it may
|
|
||||||
be possible to get it work with Mininet.
|
|
||||||
|
|
||||||
To switch to the most recent OpenFlow 0.8.9 release branch (the most
|
|
||||||
recent one with full NOX support and kernel datapath support) in your
|
|
||||||
OpenFlow git tree:
|
|
||||||
|
|
||||||
git checkout -b release/0.8.9 remotes/origin/release/0.8.9
|
|
||||||
|
|
||||||
A patch to enable datapath.c to compile with recent kernels
|
|
||||||
is included in util/openflow-patches/datapath.patch.
|
|
||||||
|
|
||||||
In OpenFlow 1.0, switch port numbering starts at 1 (for better or for worse.)
|
|
||||||
To run with previous versions of OpenFlow, it may be necessary
|
|
||||||
to change SWITCH_PORT_BASE from 1 to 0 in node.py.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
Mininet 1.0.0 License
|
Mininet 2.0.0d1 License
|
||||||
|
|
||||||
Copyright (c) 2009-2011 Bob Lantz and Brandon Heller
|
Copyright (c) 2009-2012 Bob Lantz and Brandon Heller
|
||||||
|
|
||||||
We are making Mininet available for public use and benefit with the
|
We are making Mininet available for public use and benefit with the
|
||||||
expectation that others will use, modify and enhance the Software and
|
expectation that others will use, modify and enhance the Software and
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
|
|
||||||
Mininet: A Simple Virtual Testbed for OpenFlow/SDN
|
Mininet: A Simple Virtual Testbed for OpenFlow/SDN
|
||||||
or
|
or
|
||||||
How to Squeeze a 1024-node OpenFlow Network onto your Laptop
|
How to Squeeze an OpenFlow Network onto your Laptop
|
||||||
|
|
||||||
Mininet 1.0.0
|
Mininet 2.0.0d1
|
||||||
|
|
||||||
---
|
---
|
||||||
Welcome to Mininet!
|
Welcome to Mininet!
|
||||||
@@ -19,16 +19,9 @@ Linux kernel.
|
|||||||
Mininet may be invoked directly from the command line, and also provides a
|
Mininet may be invoked directly from the command line, and also provides a
|
||||||
handy Python API for creating networks of varying sizes and topologies.
|
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:
|
In order to run Mininet, you must have:
|
||||||
|
|
||||||
* A Linux 2.6.26 or greater kernel compiled with network namespace support
|
* A Linux kernel compiled with network namespace support
|
||||||
enabled (see INSTALL for additional information.)
|
enabled (see INSTALL for additional information.)
|
||||||
|
|
||||||
* An OpenFlow implementation (either the reference user or kernel
|
* An OpenFlow implementation (either the reference user or kernel
|
||||||
|
|||||||
@@ -11,23 +11,26 @@ modname = distname = 'mininet'
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name=distname,
|
name=distname,
|
||||||
version='0.0.0',
|
version='2.0.0d1',
|
||||||
description='Process-based OpenFlow emulator',
|
description='Process-based OpenFlow emulator',
|
||||||
author='Bob Lantz',
|
author='Bob Lantz',
|
||||||
author_email='rlantz@cs.stanford.edu',
|
author_email='rlantz@cs.stanford.edu',
|
||||||
packages=find_packages(exclude='test'),
|
packages=find_packages(exclude='test'),
|
||||||
long_description="""
|
long_description="""
|
||||||
Insert longer description here.
|
Mininet is a network emulator which uses lightweight
|
||||||
|
virtualization to create virtual networks for rapid
|
||||||
|
prototyping of Software-Defined Network (SDN) designs
|
||||||
|
using OpenFlow. http://openflow.org/mininet
|
||||||
""",
|
""",
|
||||||
classifiers=[
|
classifiers=[
|
||||||
"License :: OSI Approved :: GNU General Public License (GPL)",
|
"License :: OSI Approved :: BSD License",
|
||||||
"Programming Language :: Python",
|
"Programming Language :: Python",
|
||||||
"Development Status :: 4 - Beta",
|
"Development Status :: 2 - Pre-Alpha",
|
||||||
"Intended Audience :: Developers",
|
"Intended Audience :: Developers",
|
||||||
"Topic :: Internet",
|
"Topic :: Internet",
|
||||||
],
|
],
|
||||||
keywords='networking protocol Internet OpenFlow',
|
keywords='networking emulator protocol Internet OpenFlow SDN',
|
||||||
license='unspecified',
|
license='BSD',
|
||||||
install_requires=[
|
install_requires=[
|
||||||
'setuptools',
|
'setuptools',
|
||||||
'networkx'
|
'networkx'
|
||||||
|
|||||||
Reference in new issue
Block a user