Statistics
| Branch: | Tag: | Revision:

mininet / INSTALL @ 51270ce4

History | View | Annotate | Download (3.03 KB)

1
Preliminary Mininet Installation/Configuration Notes
2
---
3

    
4
- This is not (yet) a 'release'; things may be broken.
5

    
6
- To install mininet, with root privileges:
7

    
8
  python setup.py install
9

    
10
  This places the mininet package in /usr/lib/python-2.5/site-packages/,
11
  so that 'import mininet' will work.
12
  
13
- A functional netns binary is required to run mininet, but currently you
14
  have to compile it and install it yourself from the included .c file:
15

    
16
  to make it: make netns (or cc -o netns netns.c)
17
  to test it: ./netns /sbin/ifconfig -a 
18
  to 'install' a link to it, you could do something like:
19
    sudo ln -s /home/openflow/mininet/netns /usr/local/bin/netns
20

    
21
  Installation is simplest with a distribution that includes a kernel
22
  which supports the CLONE_NETNS unshare flag by default. Debian 5.0+ does
23
  (e.g. current debian-testing release); Ubuntu doesn't. If your kernel
24
  doesn't support it, you will need to build and install a kernel that
25
  does!
26

    
27
- Mininet should probably be run either on a machine with
28
  no other important processes, or on a virtual machine
29
  
30
- To run the iperf test, you need to install iperf:
31

    
32
    sudo aptitude/yum install iperf
33

    
34
  We assume you already have ping installed. ;-)
35
  
36
- You may need other packages to run the examples, e.g.
37

    
38
    sudo aptitude/yum install sshd xterm screen
39
    
40
  Consult the appropriate example file for details.
41
  
42
- To switch to the most recent OpenFlow 0.8.9 release branch (the most
43
  recent one with full NOX support):
44

    
45
  git checkout -b release/0.8.9 remotes/origin/release/0.8.9
46

    
47
  If you want to automatically load the kernel modules required
48
  for OpenFlow, you could add something like the following to
49
  /etc/rc.local:
50

    
51
    insmod /home/openflow/openflow/datapath/linux-2.6/ofdatapath.ko 
52
    modprobe tun
53

    
54
- The reference OpenFlow controller (controller(8)) only supports 16
55
  switches by default! If you wish to run a network with more than 16
56
  switches, please recompile controller(8) with larger limits, or use a
57
  different controller such as nox. (At the moment, unfortunately, it's
58
  not easy to do so without modifying mininet.py. This will be improved
59
  upon, and an example provided, in the future.)
60
  
61
- For scalable configurations, you might need to increase some of your
62
  kernel limits. For example, you could add something like the following
63
  to /etc/sysctl.conf (modified as necessary for your desired 
64
  configuration):
65

    
66
    # OpenFlow: get rid of ipv6
67
    net.ipv6.conf.all.disable_ipv6 = 1
68
    net.ipv6.conf.default.disable_ipv6 = 1
69

    
70
    # Mininet: Increase open file limit
71
    fs.file-max = 100000
72

    
73
    # Mininet: increase network buffer space
74
    net.core.wmem_max = 16777216
75
    net.core.rmem_max = 16777216
76
    net.ipv4.tcp_rmem = 10240 87380 16777216
77
    net.ipv4.tcp_rmem = 10240 87380 16777216
78
    net.core.netdev_max_backlog = 5000
79

    
80
    # Mininet: increase arp cache size
81
    net.ipv4.neigh.default.gc_thresh1 = 4096 
82
    net.ipv4.neigh.default.gc_thresh2 = 8192 
83
    net.ipv4.neigh.default.gc_thresh3 = 16384
84

    
85
    # Mininet: increase routing table size
86
    net.ipv4.route.max_size=32768
87

    
88
---
89

    
90