Laboratorio di Internet

Professors: Marco Polverini, Antonio Cianfrani

Degree in: Laurea in Ingegneria dell'Informazione

Semester: II

Lectures Time

Mercoledì10:15 - 13:30 e 15:00 - 18:00 (Laboratorio di Informatica piccolo)

Venerdì 12:00 - 14:00 (Laboratorio di Informatica piccolo)

Office hours

su appuntamento (Roma, via Eudossiana 18, DIET, stanza 106)

Course Description

Il programma del corso è reperibile al seguente link.

Final Exam

L'esame consiste nello svolgimento di quattro homeworks (tre con Mininet ed uno con Netkit) ed una prova orale nella quale verranno discussi aspetti relativi agli homeworks assegnati ed agli argomenti trattati nel corso. Per il conseguimento dei 6 CFU sarà considerato solo gli homeworks relativi a Mininet.

Teaching Material

Materiale Didattico per il conseguimento dei 6 CFU

1 - Introduzione
2 - Richiami di networking
3 - Introduzione a Python
4 - Software Defined Networking (SDN)
5 - OpenFlow
6 - Introduction to Mininet
7 - Mininet Walkthrough
8 - OVS: Flow Rule Installation
9 - OVS: Multiple Flow Tables
10 - POX Tutorial
11 - Pox and OpenFlow
12 - Create a Learning Switch
13 - Router Exercise

 

Materiale Didattico per il conseguimento dei 3 CFU

1 - Richiami IP
2 - Netkit

3 - Basic Routing configuration 
4 - Routing protocols

 

File esercitazioni (6 CFU)

Simulatore di rete
Flow Rules per OVS
Script Python per POX
Switch and Router in POX

 

Homeworks per il conseguimento dei 6 CFU

Homework 1
Homework 2
Homework 3

Syllabus

27/2/19 - Presentazione del corso, richiami del corso di "Reti di Telecomunicazioni" (che cosa è una rete, commutazione di pacchetto, store and forward, ritardi in rete, stack TCP/IP)

1/3/19 - Richiami del corso di "Reti di Telecomunicazioni" (analisi di traffico con wireshark, introduzione al livello di rete, definizione di data plane e control plane, differenza tra control plane centralizzato e distribuito, indirizzamento, tabelle di routing, longest prefix matching) 

6/3/19 - Richiami del corso di "Reti di Telecomunicazioni" (Livello di collegamento, differenza tra rete fisica e rete logica, indirizzi MAC, ARP, Ethernet, LAN commutate, learning switch)

8/3/19 - Richiamo del corso di "Reti di Telecomunicazioni" (Reti Data Center), Introduzione a Python (installazione, CLI e scripting, tipi di variabili standard, operatori, differenza tra variabili mutabili e immutabili, variabili di tipo sequenza)

13/3/19 - Introduzione a Python (operatori per variabili di tipo sequenza, dizionari, definizione di funzioni, controllo di flusso, import di moduli esterni, esercizi 1, 9, 18 su practicepython.org

15/3/19 - Introduzione a Python (classi e oggetti, sviluppo di un simulatore di rete (SCRIPT))

20/3/19 - Software Defined Networking (il problema dell'Internet Ossification, panoramica SDN, introduzione al concetto di Controller Programming, Network OS, criticità delle reti SDN, use cases)

27/3/19 - OpenFlow (overview, datapath, OF Ports, interazioni Controller-Switch, OF packet processing, OF Actions, Flow Entry, Flow Table Pipelining)

29/3/19 - Introduzione a Mininet (Simulazione VS Emulazione, virtualizzazione delle interfacce in Linux, Tun, Tap, VETH, Virtual Machine VS Container, Network Namespace, OpenVSwitch, emulazione di uno scenario di rete)

5/4/19 - Mininet Walkthrough (creazione scenari di rete con mininet, cattura messaggi OpenFlow, Topology in mininet, test di connettività e banda, dump configurazione)

10/4/19 - Installazione Flow Rules in OVS (Flow Rules matching basato su campi "fisici", L2, L3 e L4)

12/4/19 - Flow Table Pipeline in OVS (gestione di tabelle multiple in OVS)

17/4/19 - Pox Controller (introduzione a Pox, stock components)

10/5/19 - Pox Controller (custom components, Core object, working with addressess, publish-subcriber paradigm, handling packets in Pox, Timers)

17/5/19 - Pox and OpenFlow (DPID, Connection and Nexus objects, OpenFlow events, OpenFlow messages)

24/5/19 - Create a learning switch

31/5/19 - Implementation of an IP Router in POX

Bibliography

J. Kurose, K. Ross, "Reti di calcolatori e Internet: Un approccio top-down", VII edizione, Pearson Education Italia ©2017

POX Wiki - Open Networking Lab - Confluence - http://intronetworks.cs.luc.edu/auxiliary_files/mininet/poxwiki.pdf

Mininet Walkthrough - http://mininet.org/walkthrough/

OpenFlow Tutorial - https://github.com/mininet/openflow-tutorial/wiki