Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro...
-
Upload
samuele-brescia -
Category
Documents
-
view
220 -
download
3
Transcript of Netkit4TIC Laboratorio virtuale per lo studio delle reti tratto dallintervento del prof. Sandro Doro...
Netkit4TICNetkit4TICLaboratorio virtuale per lo studio
delle reti
tratto dall’intervento 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.
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.
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.
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
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
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.
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
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.
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
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).
UML e QEMUUso contemporaneo di due sistemi di virtualizzazione: UML e QEMU.
In tal modo si possono utilizzare nodi Linux e Windows contemporaneamente.
UML kernel(virtual machine)
uml_switch(virtual hub)
vtools
ltools
• Le macchine virtuali possono essere controllate utilizzando due interfacce
L’ambiente Netkit
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
• 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
• …è 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 …
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
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
• 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
• 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
• 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