Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro...

21
Netkit4TIC Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dall’intervento del prof. Sandro Doro - ZuccanteDay 2005

Transcript of Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro...

Page 1: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Netkit4TICNetkit4TICLaboratorio virtuale per lo studio

delle reti

tratto dall’intervento del

prof. Sandro Doro - ZuccanteDay 2005

Page 2: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Gli ambienti virtuali

Da alcuni anni si stanno diffondendo progetti il cui scopo è quello di simulare altri sistemi, sia hardware che software.

La virtualizzazione di una intera macchina apre nuovi scenari nella sperimentazione con il software.

Page 3: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

User Mode Linux

Normalmente un programma che necessita dell’uso dell’hardware (scheda video, tastiera, ecc) deve richiedere il servizio al kernel. Nel caso di utilizzo del sistema UML la richiesta viene fatta alkernel UML.

Page 4: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

QEMU processor emulator

È un progetto di Fabrice Bellard. È un emulatore multipiattaforma che permette di eseguire del codice Linux compilato per una particolare CPU su di un processore x86.Dà la possibilità di usare direttamente le immagini ISO e quindi senza dover masterizzare.

Page 5: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Utilizzi dell’emulazione

Negli istituti tecnici a indirizzo informatico, nell’ultimo anno di corso, si studiano le reti e le applicazioni web. Sarebbe opportuno:

• mettere a disposizione per ogni studente un gruppo di calcolatori da configurare e amministrare

• avere la stessa architettura anche a casa

Page 6: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Cos’è Netkit http://www.netkit.org

Netkit è il risultato del lavoro di alcune persone del Networks Research Group dell’Università di Roma 3 e del LUG Roma 3. Il software è composto da:

• un insieme predefinito di comandi per il setup di macchine virtuali

• un filesystem con preinstallato il software necessario per le sperimentazioni

Page 7: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Cos’è Netkit

Netkit è stato concepito come un ambiente a basso costo per esperimenti di rete. All’interno del suo ambiente possono essere creati e interconessi router, switch e host.

Tali apparati sono virtuali ma possono operare con molte delle caratteristiche possedute da quelli reali.

Page 8: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Struttura

• Basato su User Mode Linux

• Ogni apparato di rete è una linux box

• Le varie istanze che simulano gli apparati di rete sono create all’interno dello stesso host

• Le varie istanze sono interconnesse in domini di collisione (hub/switch)

• I ruoli dei nodi sono configurabili

Page 9: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Esperienze possibili• Esperienze base: rete minimale con due host,

tabelle di routing, protocollo ARP, protocollo RIP.• Esperienze applicative: configurazione di DNS e

Mail server.• Esperienze avanzate: esperienze su switch e

STP.• Esperienze sul routing interdomain (bgp): routing

tra Autonomous System.

Page 10: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Struttura del progettoLive CD: è una distribuzione GNU/Linux in grado di eseguire le esperienze senza bisogno di installazione. Contiene:• una versione di Knoppix elaborata per UML.• un filesystem e un kernel per UML allineato

alla distribuzione GNU/Linux Debian sarge• un filesystem per UML per il firewall con

librerie uClibc per sistemi embeded.• una versione personalizzata di Netkit

Page 11: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

Struttura del progettoInternet: dal sito

http://www.tic.fdns.net/tic/html/lab.html

sono scaricabili le esperienze virtuali (qualche Kbyte) in formato archivio compresso (tgz).

Page 12: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

UML e QEMUUso contemporaneo di due sistemi di virtualizzazione: UML e QEMU.

In tal modo si possono utilizzare nodi Linux e Windows contemporaneamente.

Page 13: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

UML kernel(virtual machine)

uml_switch(virtual hub)

vtools

ltools

• Le macchine virtuali possono essere controllate utilizzando due interfacce

L’ambiente Netkit

Page 14: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

vstart Start a virtual machine with a given configuration

vconfig Attach a network interface to a running virtual machine

vlist List running virtual machines

vhalt Gracefully shut down a virtual machine

vcrash Kill a virtual machine

vclean Panic button

Comandi Netkit - vtools

Page 15: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

• Le più comuni opzioni:– --ethN=dominio_di_collisione

• Interfacce del medesimo dominio di collisione possono scambiarsi traffico

– -M quantità_di_memoria

vstart [options] MACHINE_NAME

Creazione di una VM

Copy-On-Write: tutte le modifiche al filesystem della VM vengono scritte su pc1.disk

Sparse files: file vuoti non consumano spazio

Page 16: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

• …è un insieme di macchine virtuali preconfigurate che possono essere attivate/disattivate tutte assieme

• …consiste in una gerarchia di directory• …permette di impostare esperienze sulle

reti anche molto complesse• …può essere gestito utilizzando opportuni

strumenti

NetKit …

Page 17: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

lstart Start a Netkit lab or just some of its machines

ltest Start a Netkit lab in test mode

lhalt Gracefully shut down (some of) the virtual machines of a lab

lcrash Kill (some of) the virtual machines of a lab

linfo Display info about a lab without starting it; sketch the network topology

lclean Remove temporary files (no panic!)

Comandi Netkit - ltools

Page 18: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

LEGENDA

Disegnare la topologia di rete da studiare prima di implementarla

A

30.3.3.0/24

eth11

eth09

11.0.0.8/30

eth010

B Nome del dominio di collisione

eth09 IP, ultimo

bytedell’interfaccia

A*AN

11.0.0.8/30indirizzo di reteB

Esempio di un laboratorio

Page 19: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

• A lab consists of a hierarchy of directories• Each (even empty) directory represents a

virtual machine

• Link-level connections are described inside the file lab.conf (in the lab root)

foo@host:~/lab$ lsas10r1 as10r2 lab.conffoo@host:~/lab$ █

host machinehost machine

A lab consisting of two virtual machines (as10r1, as10r2)Check with linfo

Esempio di un laboratorio

Page 20: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

• lab.conf syntax– vm[if]=cd

• vm: virtual machine name (e.g., as10r1)• if: interface number (e.g., 0)• cd: collision domain name (arbitrary string)

– vm[opt]=val• opt: the name of a vstart option (e.g., mem)• val: a value for that option

– Other optional items• Informational: LAB_DESCRIPTION, LAB_VERSION,

LAB_AUTHOR, LAB_EMAIL, LAB_WEB• Explicit list of virtual machines (machines)

Esempio di un laboratorio

Page 21: Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro - ZuccanteDay 2005.

• Sample lab.conf

as10r1[0]=Bas10r1[1]=A

as10r2[0]=B

host machinehost machine

lab.conf

A

30.3.3.0/24

eth11

eth09

11.0.0.8/30

eth010

B

Esempio di un laboratorio