Statistics
| Branch: | Tag: | Revision:

mininet / INSTALL @ 0a9ea29f

History | View | Annotate | Download (3 KB)

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

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

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

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

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

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

    
29
    sudo aptitude/yum install iperf
30

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

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

    
42
  git checkout -b release/0.8.9 remotes/origin/release/0.8.9
43

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

    
48
    insmod /home/openflow/openflow/datapath/linux-2.6/ofdatapath.ko 
49
    modprobe tun
50

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

    
63
    # OpenFlow: get rid of ipv6
64
    net.ipv6.conf.all.disable_ipv6 = 1
65
    net.ipv6.conf.default.disable_ipv6 = 1
66

    
67
    # Mininet: Increase open file limit
68
    fs.file-max = 100000
69

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

    
77
    # Mininet: increase arp cache size
78
    net.ipv4.neigh.default.gc_thresh1 = 4096 
79
    net.ipv4.neigh.default.gc_thresh2 = 8192 
80
    net.ipv4.neigh.default.gc_thresh3 = 16384
81

    
82
    # Mininet: increase routing table size
83
    net.ipv4.route.max_size=32768
84

    
85
---
86

    
87