forked from MaxiNet/MaxiNet
-
Notifications
You must be signed in to change notification settings - Fork 0
/
INSTALL.txt
85 lines (65 loc) · 2.9 KB
/
INSTALL.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
TUTORIAL MaxiNet installation:
Introduction:
MaxiNet is is clustered version of mininet where multiple mininet instances
running on different physical machines (called workers) are linked and used
to run large scale experiments. Using the MaxiNet API, specification of
experiments feels like setting up experiments in mininet because MaxiNet
automatically maps the topology of the network to the workers and configures
them accordingly.
In this tutorial we assume you are using Ubuntu as the operating system.
1: Install mininet
For each worker, follow the "Get started Guide" of mininet that can be found at
http://mininet.org/download/ and install mininet such that it can be invoked by
calling sudo mn at the terminal. You can also use the preconfigured mininet
virtual machines as workers.
2. Install METIS
One machine will be used as the coordinator of MaxiNet. We call
this machine the Frontend. It will need to have installed the same version of
mininet as the workers, but can be a worker or a different machine.
The Frontend requires the graph clustering library METIS.
Download METIS from http://glaros.dtc.umn.edu/gkhome/metis/metis/download and
install it on the Frontend:
sudo
cd /opt
sudo wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
sudo tar xzf metis-5.1.0.tar.gz
cd metis-5.1.0
sudo make config
make
sudo make install
3. Install Pyro4, a python rpc libary, on all machines including the Frontend.
sudo apt-get install pip
sudo pip install Pyro4
4. Install screen
apt-get install screen
(or similar depending or your distribution)
5. Configure ssh access
The Frontend starts mininet at the workers by using ssh. It is important that at
all workers there is one user configured that is in the sudoers list with
NO_PASSWORD option. For this tutorial we assume this user is called "mininet".
mininet ALL= NOPASSWD: ALL
as user mininet:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub mininet@remote-system
where the last command has to be issued for each worker node.
It is also important that the Frontend can access all workers via ssh and their
respective hostname. For example the execution of "ssh host1" has to open an
ssh session on the host with hostname "host1" without requiring a password. If
this is not the case in your network, you can set aliases for these hosts in the
~/.ssh/config file as follows:
Host host1
HostName 192.168.0.2
where 192.168.0.2 is the ip-address of the host.
5. Install MaxiNet at all workers and the frontend
cd ~
git clone [email protected]:MaxiNet/MaxiNet.git
6. Configure MaxiNet
on the frontend copy the Frontend/config.py.sample to Frontend/config.py and edit the file.
Every worker will need a line in the cfg section, starting with the hostname of the worker and
the ip address of the host.
7. Test your installation
at the Frontend:
cd Frontend/example/
Now, exec the experiment by calling (as user mininet)
python simplePing.py
and watch the output.