Statistics
| Branch: | Tag: | Revision:

mininet / INSTALL @ 55dd9368

History | View | Annotate | Download (2.9 KB)

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

    
4
- Mininet is not currently 'installed.' If you want to install it,
5
  so that you can 'import mininet', place it somewhere in your
6
  python path.
7
  
8
- A functional netns binary is required to run mininet, but currently you
9
  have to compile it and install it yourself from the included .c file:
10

    
11
  to make it: make netns (or cc -o netns netns.c)
12
  to test it: ./netns /sbin/ifconfig -a 
13
  to 'install' a link to it, you could do something like:
14
    sudo ln -s /home/openflow/mininet/netns /usr/local/bin/netns
15

    
16
  Installation is simplest with a distribution that includes a kernel
17
  which supports the CLONE_NETNS unshare flag by default. Debian 5.0+
18
  does; Ubuntu doesn't. If your kernel doesn't support it, you will need
19
  to build and install a kernel that does!
20

    
21
- Mininet should probably be run either on a machine with
22
  no other important processes, or on a virtual machine
23
  
24
- To run the iperf test, you need to install iperf:
25

    
26
    sudo aptitude/yum install iperf
27

    
28
  We assume you already have ping installed. ;-)
29
  
30
- You may need other packages to run the examples, e.g.
31

    
32
    sudo aptitude/yum install sshd xterm screen
33
    
34
  Consult the appropriate example file for details.
35
  
36
- To switch to the most recent OpenFlow 0.8.9 release branch (the most
37
  recent one with full NOX support):
38

    
39
  git checkout -b release/0.8.9 remotes/origin/release/0.8.9
40

    
41
  If you want to automatically load the kernel modules required
42
  for OpenFlow, you could add something like the following to
43
  /etc/rc.local:
44

    
45
    insmod /home/openflow/openflow/datapath/linux-2.6/ofdatapath.ko 
46
    modprobe tun
47

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

    
60
    # OpenFlow: get rid of ipv6
61
    net.ipv6.conf.all.disable_ipv6 = 1
62
    net.ipv6.conf.default.disable_ipv6 = 1
63

    
64
    # Mininet: Increase open file limit
65
    fs.file-max = 100000
66

    
67
    # Mininet: increase network buffer space
68
    net.core.wmem_max = 16777216
69
    net.core.rmem_max = 16777216
70
    net.ipv4.tcp_rmem = 10240 87380 16777216
71
    net.ipv4.tcp_rmem = 10240 87380 16777216
72
    net.core.netdev_max_backlog = 5000
73

    
74
    # Mininet: increase arp cache size
75
    net.ipv4.neigh.default.gc_thresh1 = 4096 
76
    net.ipv4.neigh.default.gc_thresh2 = 8192 
77
    net.ipv4.neigh.default.gc_thresh3 = 16384
78

    
79
    # Mininet: increase routing table size
80
    net.ipv4.route.max_size=32768
81

    
82
---
83

    
84