admin | bae64d8 | 2013-08-01 10:50:15 -0700 | [diff] [blame] | 1 | |
| 2 | Mininet Installation/Configuration Notes |
| 3 | ---------------------------------------- |
| 4 | |
| 5 | Mininet 2.0.0 |
| 6 | --- |
| 7 | |
| 8 | The supported installation methods for Mininet are 1) using a |
| 9 | pre-built VM image, and 2) native installation on Ubuntu. You can also |
| 10 | easily create your own Mininet VM image (4). |
| 11 | |
| 12 | (Other distributions may be supported in the future - if you would |
| 13 | like to contribute an installation script, we would welcome it!) |
| 14 | |
| 15 | 1. Easiest "installation" - use our pre-built VM image! |
| 16 | |
| 17 | The easiest way to get Mininet running is to start with one of our |
| 18 | pre-built virtual machine images from <http://openflow.org/mininet> |
| 19 | |
| 20 | Boot up the VM image, log in, and follow the instructions on the |
| 21 | Mininet web site. |
| 22 | |
| 23 | One advantage of using the VM image is that it doesn't mess with |
| 24 | your native OS installation or damage it in any way. |
| 25 | |
| 26 | Although a single Mininet instance can simulate multiple networks |
| 27 | with multiple controllers, only one Mininet instance may currently |
| 28 | be run at a time, and Mininet requires root access in the machine |
| 29 | it's running on. Therefore, if you have a multiuser system, you |
| 30 | may wish to consider running Mininet in a VM. |
| 31 | |
| 32 | 2. Next-easiest option: use our Ubuntu package! |
| 33 | |
| 34 | To install Mininet itself (i.e. `mn` and the Python API) on Ubuntu |
| 35 | 12.10+: |
| 36 | |
| 37 | sudo apt-get install mininet |
| 38 | |
| 39 | Note: if you are upgrading from an older version of Mininet, make |
| 40 | sure you remove the old OVS from `/usr/local`: |
| 41 | |
| 42 | sudo rm /usr/local/bin/ovs* |
| 43 | sudo rm /usr/local/sbin/ovs* |
| 44 | |
| 45 | 3. Native installation from source on Ubuntu 11.10+ |
| 46 | |
| 47 | If you're reading this, you've probably already done so, but the |
| 48 | command to download the Mininet source code is: |
| 49 | |
| 50 | git clone git://github.com/mininet/mininet.git |
| 51 | |
| 52 | If you are running Ubuntu, you may be able to use our handy |
| 53 | `install.sh` script, which is in `mininet/util`. |
| 54 | |
| 55 | *WARNING: USE AT YOUR OWN RISK!* |
| 56 | |
| 57 | `install.sh` is a bit intrusive and may possibly damage your OS |
| 58 | and/or home directory, by creating/modifying several directories |
| 59 | such as `mininet`, `openflow`, `oftest`, `pox`, or `noxcosre`. |
| 60 | Although we hope it won't do anything completely terrible, you may |
| 61 | want to look at the script before you run it, and you should make |
| 62 | sure your system and home directory are backed up just in case! |
| 63 | |
| 64 | To install Mininet itself, the OpenFlow reference implementation, and |
| 65 | Open vSwitch, you may use: |
| 66 | |
| 67 | mininet/util/install.sh -fnv |
| 68 | |
| 69 | This should be reasonably quick, and the following command should |
| 70 | work after the installation: |
| 71 | |
| 72 | sudo mn --test pingall |
| 73 | |
| 74 | To install ALL of the software which we use for OpenFlow tutorials, |
| 75 | including POX, the OpenFlow WireShark dissector, the `oftest` |
| 76 | framework, and other potentially useful software (and to add some |
| 77 | stuff to `/etc/sysctl.conf` which may or may not be useful) you may |
| 78 | use: |
| 79 | |
| 80 | mininet/util/install.sh -a |
| 81 | |
| 82 | This takes about 4 minutes on our test system. |
| 83 | |
| 84 | 4. Creating your own Mininet/OpenFlow tutorial VM |
| 85 | |
| 86 | Creating your own Ubuntu Mininet VM for use with the OpenFlow tutorial |
| 87 | is easy! First, create a new Ubuntu VM. Next, run two commands in it: |
| 88 | |
| 89 | wget https://raw.github.com/mininet/mininet/master/util/vm/install-mininet-vm.sh |
| 90 | time install-mininet-vm.sh |
| 91 | |
| 92 | Finally, verify that Mininet is installed and working in the VM: |
| 93 | |
| 94 | sudo mn --test pingall |
| 95 | |
| 96 | 5. Installation on other Linux distributions |
| 97 | |
| 98 | Although we don't support other Linux distributions directly, it |
| 99 | should be possible to install and run Mininet with some degree of |
| 100 | manual effort. |
| 101 | |
| 102 | In general, you must have: |
| 103 | |
| 104 | * A Linux kernel compiled with network namespace support enabled |
| 105 | |
| 106 | * An OpenFlow implementation (either the reference user or kernel |
| 107 | space implementations, or Open vSwitch.) Appropriate kernel |
| 108 | modules (e.g. tun and ofdatapath for the reference kernel |
| 109 | implementation) must be loaded. |
| 110 | |
| 111 | * Python, `bash`, `ping`, `iperf`, etc.` |
| 112 | |
| 113 | * Root privileges (required for network device access) |
| 114 | |
| 115 | We encourage contribution of patches to the `install.sh` script to |
| 116 | support other Linux distributions. |
| 117 | |
| 118 | |
| 119 | Good luck! |
| 120 | |
| 121 | Mininet Team |
| 122 | |
| 123 | --- |