README.md 3.9 KB
Newer Older
thomahol's avatar
thomahol committed
1
# Advanced Topics in Communication Networks 2020
thomahol's avatar
thomahol committed
2

thomahol's avatar
thomahol committed
3
Welcome to the Advanced Topics in Communication Networks Repository!
thomahol's avatar
thomahol committed
4
Here you will find the weekly exercises along with the instructions on how to run them in a virtual environement.
thomahol's avatar
thomahol committed
5
6
7

## How to start?

thomahol's avatar
thomahol committed
8
To make your life simpler, we give to each of you access to one VM where all the necessary tools and software are pre-installed. 
thomahol's avatar
thomahol committed
9
10
11

### Access your own VM

thomahol's avatar
thomahol committed
12
13
14
15
16
17
18
19
To access your VM, you willl SSH. SSH is a UNIX based command interface and protocol for securely getting access
to a remote computer. It is widely used by system administrators to control network devices
and servers remotely. An SSH client is available by default on any Linux and MAC installation
through the Terminal application. For Windows user, a good and free SSH client is [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/).
Once you have installed a SSH client, use the following command to connect yourself to your
VM:

```
thomahol's avatar
thomahol committed
20
ssh -p X p4@moonshine.ethz.ch
thomahol's avatar
thomahol committed
21
22
23
24
25
26
```

where X = 2000 + your student number for this lecture that we have sent you by email.
For instance if you are the student 7, use the following command

```
thomahol's avatar
thomahol committed
27
ssh -p 2007 p4@moonshine.ethz.ch
thomahol's avatar
thomahol committed
28
29
30
31
32
33
34
35
36
```

If you cannot connect to your VM,
please report it immediately during the exercise session or in moodle. If you want to simplify
the access to your VM (optional), please use SSH key authentication, but do not change your
password. If you want to download an entire directory (e.g. the configs directory) from your
VM to the current directory of your own machine, you can use scp:

```
thomahol's avatar
thomahol committed
37
> scp -r -P X p4@moonshine.ethz.ch:~/path to the directory .
thomahol's avatar
thomahol committed
38
39
40
41
42
43
44
```

where X = 2000 + group number. On Windows, you can use WinSCP7 to do that. Note the
dot at the end of the command and the capitalized P.

#### VM Credentials

thomahol's avatar
thomahol committed
45
During the lecture, we will two types of exercises. First, we will have p4-based exercises. Then we will have exercises based on the mini-Internet.
thomahol's avatar
thomahol committed
46
47
48
We will use two different users for the two types of exercises. For the p4-based exercises please use the login `p4`, and for the mini-Internet-based exercises please use the login `mini_internet`. 
We have sent you your password by email. It is the same for both logins. If you have not received your password please let us know immediately.

thomahol's avatar
thomahol committed
49
### VM Contents
thomahol's avatar
thomahol committed
50

thomahol's avatar
thomahol committed
51
52
53
54
55
56
The VM is based on a Ubuntu 16.04.05 and after building it contains:

* The suite of P4 Tools ([p4lang](https://github.com/p4lang/), [p4utils](https://github.com/nsg-ethz/p4-utils/tree/master/p4utils), etc)
* Text editors with p4 highlighting (sublime, atom, emacs, vim)
* [Wireshark](https://www.wireshark.org/)
* [Mininet](http://mininet.org/) network emulator
thomahol's avatar
thomahol committed
57
* All the tools required to run a [mini-Internet](https://github.com/nsg-ethz/mini_internet_project)
thomahol's avatar
thomahol committed
58
59
60
61


## Exercises

thomahol's avatar
thomahol committed
62
In this section we provide the links to the weekly exercises. There are two types of exercises. The first ones will be P4-based whereas later during the semester you will have mini-Internet-based exercises (the same kind of mini-Internet that you used in the Communication Networks lecture).
thomahol's avatar
thomahol committed
63
To get the exercises ready in your VM, please clone this repository both times; one in the `p4` user home directory and one in the `mini_internet` user home directory. We illustrate how to do that for the `p4` user.
thomahol's avatar
thomahol committed
64
65
66

```
cd /home/p4/
Albert Gran Alcoz's avatar
Albert Gran Alcoz committed
67
git clone https://gitlab.ethz.ch/nsg/public/adv-net-2020
thomahol's avatar
thomahol committed
68
69
70
71
72
73
74
```

Update local repository to get new tasks and solutions
Remember to pull this repository before every exercise session:

```
cd /home/p4/adv-net-2020
Albert Gran Alcoz's avatar
Albert Gran Alcoz committed
75
git pull https://gitlab.ethz.ch/nsg/public/adv-net-2020
thomahol's avatar
thomahol committed
76
77
```

thomahol's avatar
thomahol committed
78

thomahol's avatar
thomahol committed
79
#### P4 
thomahol's avatar
thomahol committed
80

thomahol's avatar
thomahol committed
81

thomahol's avatar
thomahol committed
82
#### Mini-Internet
thomahol's avatar
thomahol committed
83

thomahol's avatar
thomahol committed
84
85
Starting on October 26, 2020.

thomahol's avatar
thomahol committed
86
## Where to ask questions
thomahol's avatar
thomahol committed
87
88
89

If you have questions, you can ask us during the exercise sessions (every Tuesday at 4.15pm) using the Zoom in-meeting chat or in the #exercise channel on (slack)[adv-net20.slack.com]. You can post more general questions on the (moodle)[https://moodle-app2.let.ethz.ch/] forum.  
Please do **not** ask us question by email.