mininet / INSTALL @ 377d1b1c
History | View | Annotate | Download (5.27 KB)
1 | ee66d53c | Bob Lantz | |
---|---|---|---|
2 | d2f9aea2 | Bob Lantz | Mininet Installation/Configuration Notes |
3 | ee66d53c | Bob Lantz | ---------------------------------------- |
4 | af8f0b61 | Bob Lantz | |
5 | 377d1b1c | Bob Lantz | Mininet 2.2.0b1 |
6 | 219f9de7 | Bob Lantz | --- |
7 | 8125370d | Bob Lantz | |
8 | ee66d53c | Bob Lantz | 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 | e04c207c | Bob Lantz | |
12 | 40beaabc | Bob Lantz | (Other distributions may be supported in the future - if you would |
13 | like to contribute an installation script, we would welcome it!) |
||
14 | |||
15 | 3e38a959 | Bob Lantz | 1. Easiest "installation" - use our pre-built VM image! |
16 | 40beaabc | Bob Lantz | |
17 | ee66d53c | Bob Lantz | The easiest way to get Mininet running is to start with one of our |
18 | bda54a9a | Brian O'Connor | pre-built virtual machine images from <http://mininet.org/> |
19 | 40beaabc | Bob Lantz | |
20 | ee66d53c | Bob Lantz | Boot up the VM image, log in, and follow the instructions on the |
21 | Mininet web site. |
||
22 | 40beaabc | Bob Lantz | |
23 | ee66d53c | Bob Lantz | 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 | 40beaabc | Bob Lantz | |
26 | ee66d53c | Bob Lantz | 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 | 3e38a959 | Bob Lantz | |
32 | 2. Next-easiest option: use our Ubuntu package! |
||
33 | 600dad24 | Bob Lantz | |
34 | ee66d53c | Bob Lantz | To install Mininet itself (i.e. `mn` and the Python API) on Ubuntu |
35 | 12.10+: |
||
36 | 600dad24 | Bob Lantz | |
37 | ee66d53c | Bob Lantz | sudo apt-get install mininet |
38 | 600dad24 | Bob Lantz | |
39 | ee66d53c | Bob Lantz | Note: if you are upgrading from an older version of Mininet, make |
40 | sure you remove the old OVS from `/usr/local`: |
||
41 | c04ef88e | Bob Lantz | |
42 | ee66d53c | Bob Lantz | sudo rm /usr/local/bin/ovs* |
43 | sudo rm /usr/local/sbin/ovs* |
||
44 | c04ef88e | Bob Lantz | |
45 | 0d58b93a | Jose Pedro Oliveira | 3. Native installation from source |
46 | |||
47 | 3.1. Native installation from source on Ubuntu 12.04+ |
||
48 | 40beaabc | Bob Lantz | |
49 | ee66d53c | Bob Lantz | If you're reading this, you've probably already done so, but the |
50 | 5879c492 | Bob Lantz | command to download the Mininet source code is: |
51 | ee66d53c | Bob Lantz | |
52 | git clone git://github.com/mininet/mininet.git |
||
53 | e04c207c | Bob Lantz | |
54 | 4b65570b | Gregory Gee | Note that the above git command will check out the latest and greatest |
55 | Mininet (which we recommend!) If you want to run the last tagged/released |
||
56 | version of Mininet, use: |
||
57 | |||
58 | git clone git://github.com/mininet/mininet |
||
59 | git checkout -b 2.1.0 2.1.0 |
||
60 | |||
61 | ee66d53c | Bob Lantz | If you are running Ubuntu, you may be able to use our handy |
62 | `install.sh` script, which is in `mininet/util`. |
||
63 | 40beaabc | Bob Lantz | |
64 | ee66d53c | Bob Lantz | *WARNING: USE AT YOUR OWN RISK!* |
65 | 219f9de7 | Bob Lantz | |
66 | ee66d53c | Bob Lantz | `install.sh` is a bit intrusive and may possibly damage your OS |
67 | and/or home directory, by creating/modifying several directories |
||
68 | 896c4cbc | Bob Lantz | such as `mininet`, `openflow`, `oftest`, `pox`, etc.. |
69 | ee66d53c | Bob Lantz | Although we hope it won't do anything completely terrible, you may |
70 | want to look at the script before you run it, and you should make |
||
71 | sure your system and home directory are backed up just in case! |
||
72 | 40beaabc | Bob Lantz | |
73 | ee66d53c | Bob Lantz | To install Mininet itself, the OpenFlow reference implementation, and |
74 | Open vSwitch, you may use: |
||
75 | 40beaabc | Bob Lantz | |
76 | ee66d53c | Bob Lantz | mininet/util/install.sh -fnv |
77 | 40beaabc | Bob Lantz | |
78 | ee66d53c | Bob Lantz | This should be reasonably quick, and the following command should |
79 | work after the installation: |
||
80 | 40beaabc | Bob Lantz | |
81 | ee66d53c | Bob Lantz | sudo mn --test pingall |
82 | 40beaabc | Bob Lantz | |
83 | ee66d53c | Bob Lantz | To install ALL of the software which we use for OpenFlow tutorials, |
84 | including POX, the OpenFlow WireShark dissector, the `oftest` |
||
85 | 41d93201 | Brian O'Connor | framework, and other potentially useful software, you may use: |
86 | 8125370d | Bob Lantz | |
87 | ee66d53c | Bob Lantz | mininet/util/install.sh -a |
88 | ec226c9b | Bob Lantz | |
89 | ee66d53c | Bob Lantz | This takes about 4 minutes on our test system. |
90 | 8eae2550 | Bob Lantz | |
91 | bda54a9a | Brian O'Connor | You can change the directory where the dependencies are installed using |
92 | the -s <directory> flag. |
||
93 | |||
94 | mininet/util/install.sh -s <directory> -a |
||
95 | |||
96 | 0d58b93a | Jose Pedro Oliveira | 3.2. Native installation from source on Fedora 18+. |
97 | |||
98 | As root execute the following operations: |
||
99 | |||
100 | * install git |
||
101 | |||
102 | yum install git |
||
103 | |||
104 | * create an user account (e.g. mininet) and add it to the wheel group |
||
105 | |||
106 | useradd [...] mininet |
||
107 | usermod -a -G wheel mininet |
||
108 | |||
109 | * change the SElinux setting to permissive. It can be done |
||
110 | temporarily with: |
||
111 | |||
112 | setenforce 0 |
||
113 | |||
114 | then login with the new account (e.g. mininet) and do the following: |
||
115 | |||
116 | * clone the Mininet repository |
||
117 | |||
118 | git clone git://github.com/mininet/mininet.git |
||
119 | |||
120 | * install Mininet, the OpenFlow reference implementation, and |
||
121 | Open vSwitch |
||
122 | |||
123 | mininet/util/install.sh -fnv |
||
124 | |||
125 | * enable and start openvswitch |
||
126 | |||
127 | sudo systemctl enable openvswitch |
||
128 | sudo systemctl start openvswitch |
||
129 | |||
130 | * test the mininet installation |
||
131 | |||
132 | sudo mn --test pingall |
||
133 | |||
134 | 600dad24 | Bob Lantz | 4. Creating your own Mininet/OpenFlow tutorial VM |
135 | 8eae2550 | Bob Lantz | |
136 | ee66d53c | Bob Lantz | Creating your own Ubuntu Mininet VM for use with the OpenFlow tutorial |
137 | 5879c492 | Bob Lantz | is easy! First, create a new Ubuntu VM. Next, run two commands in it: |
138 | 8eae2550 | Bob Lantz | |
139 | ee66d53c | Bob Lantz | wget https://raw.github.com/mininet/mininet/master/util/vm/install-mininet-vm.sh |
140 | time install-mininet-vm.sh |
||
141 | d2f9aea2 | Bob Lantz | |
142 | 5879c492 | Bob Lantz | Finally, verify that Mininet is installed and working in the VM: |
143 | |||
144 | sudo mn --test pingall |
||
145 | |||
146 | 3e38a959 | Bob Lantz | 5. Installation on other Linux distributions |
147 | |||
148 | ee66d53c | Bob Lantz | Although we don't support other Linux distributions directly, it |
149 | should be possible to install and run Mininet with some degree of |
||
150 | manual effort. |
||
151 | 3e38a959 | Bob Lantz | |
152 | ee66d53c | Bob Lantz | In general, you must have: |
153 | 3e38a959 | Bob Lantz | |
154 | ee66d53c | Bob Lantz | * A Linux kernel compiled with network namespace support enabled |
155 | 3e38a959 | Bob Lantz | |
156 | ee66d53c | Bob Lantz | * An OpenFlow implementation (either the reference user or kernel |
157 | space implementations, or Open vSwitch.) Appropriate kernel |
||
158 | modules (e.g. tun and ofdatapath for the reference kernel |
||
159 | implementation) must be loaded. |
||
160 | 3e38a959 | Bob Lantz | |
161 | 92b51563 | Bob Lantz | * Python, `bash`, `ping`, `iperf`, etc. |
162 | 3e38a959 | Bob Lantz | |
163 | ee66d53c | Bob Lantz | * Root privileges (required for network device access) |
164 | |||
165 | We encourage contribution of patches to the `install.sh` script to |
||
166 | support other Linux distributions. |
||
167 | 3e38a959 | Bob Lantz | |
168 | |||
169 | e04c207c | Bob Lantz | Good luck! |
170 | 8eae2550 | Bob Lantz | |
171 | 3e38a959 | Bob Lantz | Mininet Team |
172 | 8eae2550 | Bob Lantz | |
173 | --- |