mininet / README @ 54037995
History | View | Annotate | Download (2.38 KB)
1 |
|
---|---|
2 |
Mininet: A Simple Virtual Testbed for OpenFlow |
3 |
aka |
4 |
How to Squeeze a 1024-node OpenFlow Network onto your Laptop |
5 |
|
6 |
(Extremely Experimental Development Version 0.1, December 2009) |
7 |
|
8 |
--- |
9 |
|
10 |
Mininet creates simple OpenFlow test networks by using process-based |
11 |
virtualization and network namespaces. |
12 |
|
13 |
Simulated hosts (as well as switches and controllers with the user |
14 |
datapath) are created as processes in separate network namespaces. This |
15 |
allows a complete OpenFlow network to be simulated on top of a single |
16 |
Linux kernel. |
17 |
|
18 |
Mininet provides a set of Python classes and functions which enable |
19 |
creation of OpenFlow networks of varying sizes and topologies. |
20 |
|
21 |
In order to run Mininet, you must have: |
22 |
|
23 |
* A Linux 2.6.26 or greater kernel compiled with network namespace support |
24 |
enabled. (debian-testing seems to have such a kernel, but it doesn't |
25 |
work for compiling nox, unfortunately.) |
26 |
|
27 |
* The OpenFlow reference implementation (either the user or kernel |
28 |
datapath may be used, and the tun or ofdatapath kernel modules must be |
29 |
loaded, respectively) |
30 |
|
31 |
* Python, bash, ping, iperf, etc. |
32 |
|
33 |
* Root privileges (required for network device access) |
34 |
|
35 |
* The netns program (included as netns.c), or an equivalent program |
36 |
of the same name, installed in an appropriate path location |
37 |
|
38 |
* mininet.py installed in an appropriate Python path location |
39 |
|
40 |
Currently mininet includes: |
41 |
|
42 |
- A simple node infrastructure (Host, Switch, Controller classes) for |
43 |
creating virtual OpenFlow networks |
44 |
|
45 |
- A simple network infrastructure (class Network and its descendants |
46 |
TreeNet, GridNet and LinearNet) for creating scalable topologies and |
47 |
running experiments (e.g. TreeNet(2,3).run(pingTest) ) |
48 |
|
49 |
- Some simple tests which can be run using someNetwork.run( test ) |
50 |
|
51 |
- A simple command-line interface which may be invoked on a network using |
52 |
.run( Cli ). It provides useful diagnostic commands, as well as the |
53 |
ability to send a command to a node. For example, |
54 |
|
55 |
mininet> h11 ifconfig -a |
56 |
|
57 |
tells host h11 to run the command 'ifconfig -a' |
58 |
|
59 |
- A 'cleanup' script to get rid of junk (interfaces, processes, files in |
60 |
/tmp, etc.) which might be left around by mininet. Try this if things |
61 |
stop working! |
62 |
|
63 |
- Examples (in examples/ directory) to help you get started. |
64 |
|
65 |
Batteries are not included (yet!) |
66 |
|
67 |
However, some preliminary installation notes are included in the INSTALL |
68 |
file. Good luck! |
69 |
|
70 |
--- |
71 |
Bob Lantz |
72 |
rlantz@cs.stanford.edu |
73 |
|
74 |
|