Statistics
| Branch: | Tag: | Revision:

mininet / INSTALL @ 98332cb6

History | View | Annotate | Download (2.94 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+ does
18
  (e.g. current debian-testing release); Ubuntu doesn't. If your kernel
19
  doesn't support it, you will need to build and install a kernel that
20
  does!
21

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

    
27
    sudo aptitude/yum install iperf
28

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

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

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

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

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

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

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

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

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

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

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

    
83
---
84

    
85