La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

il sistema per il pover’uomo per sperimentare con le reti di computer

Presentazioni simili


Presentazione sul tema: "il sistema per il pover’uomo per sperimentare con le reti di computer"— Transcript della presentazione:

1 il sistema per il pover’uomo per sperimentare con le reti di computer
Netkit il sistema per il pover’uomo per sperimentare con le reti di computer Traduzione a cura di G. Ianni e G. Bennardo, Università della Calabria introduction

2 Avviso di copyright Tutte le pagine/slides di questa presentazione, che include ma non è limitato a, immagini, foto, animazioni, video, suoni, musica, e testo (così ci si riferisce a tutto il “materiale”) sono protetti da copyright. Questo materiale, fatta eccezione per alcuni elementi autorizzati da altre organizzazioni, è proprietà di autori e/o di organizzazioni che appaiono nella prima pagina Questo materiale, o le sue parti, può essere riprodotto e utilizzato per scopi didattici nelle università e nelle scuole, a condizione che questo venga fatto senza scopo di lucro. Le informazioni contenute in questo materiale non possono essere usate nei progetti di network design o altri prodotti di questo genere. Qualunque altro uso è proibito, a meno che non sia stato esplicitamente autorizzato dagli autori o sulla base di uno esplicito accordo. Gli autori non si assumono responsabilità circa questo materiale e lo forniscono “così com’è”, senza implicite o esplicite garanzie sulla sua correttezza e completezza, la quale può essere soggetta a cambiamenti. Questo avviso di copyright deve sempre essere distribuito insieme al materiale o alle sue porzioni. introduction

3 Reti di computer Le reti di computer sono ( generalmente) molto complesse: Molti dispositivi (computers, routers, etc.); Diverse interfacce; Gestione di molti protocolli; Interconnessioni fisiche che originano complesse topologie; introduction

4 Come effettuare gli esperimenti?
Effettuare gli esperimenti può non essere fattibile; La rete presente non può essere usata per gli esperimenti; ospita servizi che sono di importanza cruciale per la compagnia; potrebbe essere necessario coordinare diversi dipartimenti della compagnia; L’attrezzatura della rete è molto costosa; talvolta, anche per effettuare semplici esperimenti, parecchie attrezzature devono essere disponibili come banco di prova; introduction

5 Simulazione vs emulazione
I sistemi di simulazione e emulazione mettono a disposizione dell’utente un ambiente virtuale che può essere sfruttato per test, esperimenti, .. Lo scopo dei sistemi di simulazione è quello di riprodurre le prestazioni di un sistema reale (latenza, perdita di pacchetti, etc.) per esempio: ns, real, … Lo scopo dei sistemi di emulazione è quello di riprodurre esattamente le funzionalità dei sistemi reali (configurazioni, architetture, protocolli), con una limitata attenzione alle prestazioni; introduction

6 Netkit: un sistema per l’emulazione di reti di computer
Basato su uml (user-mode linux) Ciascun dispositivo di rete emulato è una linux box virtuale una linux box virtuale è qualcosa che è basato sul kernel uml NOTA: il sistema operativo linux è provvisto di software che supportano la maggior parte dei protocolli quindi, qualsiasi macchina linux può essere configurata per agire come un bridge/switch o come un router introduction

7 User-mode linux L’ user-mode linux è un linux kernel (la parte più interna del sistema operativo linux) che può essere eseguito come un processo utente su una linux box standard Un processo user-mode linux è anche chiamato virtual machine (vm), mentre la linux box che ospita la virtual machine è chiamata host machine (host) Più virtual machine possono essere eseguite contemporaneamente sullo stesso host introduction

8 Uml virtual machines Ciascuna virtual machine ha:
una console una memoria (“presa” nella memoria dell’host) un filesystem (immagazzinato in un singolo file del filesystem dell’host) (una o più) interfacce di rete Ciascuna interfaccia di rete può essere connessa ad un dominio di collisione (virtuale) Ciascun dominio di collisione virtuale può essere connesso a più interfacce introduction

9 introduction

10 Emulare una rete di computer usando uml
Idea di base: più virtual machine sono create all’interno della stessa host machine le virtual machine sono connesse ad un dominio di collisione virtuale e quindi possono comunicare tra di loro Ciascuna virtual machine può essere configurata per svolgere il ruolo di un host o di un router o anche di uno switch introduction

11 introduction

12 Che cos’è netkit? Un insieme di strumenti e di comandi per configurare una rete di computer virtuali (più) comandi sono implementati come scripts Un filesystem pronto all’uso che è utilizzato come base per creare il filesystem di ciascuna vm gli strumenti di rete più comunemente usati sono già installati in questo filesystem Un kernel uml che è usato come kernel per le virtual machines introduction

13 Installare netkit introduction

14 Installare netkit Scaricare netkit dal sito http://www.netkit.org
Requisiti hardware: architettura i386 cpu ≥ 600 MHz ~10 MB di memoria per ciascuna vm ~600 MB di spazio sul disco + ~1-20 MB per ciascuna vm Requisiti software: una linux box lavora bene con molte distribuzioni, vedi il sito strumenti di sistema standard e comunemente reperibili (awk, lsof, etc.) introduction

15 Installare netkit Scarica i tre file che costituiscono la distribuzione 1. netkit-X.Y.tar.bz2 2. netkit-filesystem-FX.Z.tar.bz2 (attenzione: >100MB) 3. netkit-kernel-KX.W.tar.bz2 “Scompattali” nella stessa directory 1. tar xjf netkit-X.Y.tar.bz2 2. tar xjf netkit-filesystem-FX.Z.tar.bz2 3. tar xjf netkit-kernel-KX.W.tar.bz2 N.B. Scaricare al posto di (2) : introduction

16 Installare netkit Configura la tua shell settando la seguente variabile d’ambiente NETKIT_HOME deve essere settata alla directory contenente la versione di netkit “scompattata” “$NETKIT_HOME/bin” deve essere aggiunto al PATH “:$NETKIT_HOME/man” deve essere aggiunto al MANPATH Per esempio (assumendo che sia usata la shell) export NETKIT_HOME=~/netkit2 export PATH=$PATH:$NETKIT_HOME/bin export MANPATH=:$NETKIT_HOME/man introduction

17 Installare netkit Puoi controllare la tua configurazione entrando nella directory di netkit cd $NETKIT_HOME …ed eseguendo lo script check_configuration.sh ./check_configuration.sh Se tutti i controlli hanno successo, allora sei pronto per usare netkit introduction

18 Usare netkit introduction

19 Comandi di netkit Netkit fornisce gli utenti di due insiemi di comandi
v-prefixed commands (vcommands): vstart, vlist … l-prefixed commands (lcommands): lstart, lclean, lcrash… I vcommands agiscono come uno strumento di basso livello per configurare e avviare una singola virtual machine Gli lcommands forniscono un ambiente facile da usare per configurare complessi laboratori costituiti da molte virtual machines introduction

20 Netkit vcommands Permettono di avviare una virtual machine con configurazione arbitraria (memoria, interfacce di rete,etc.) vstart: avvia una nuova virtual machine vlist: mostra contemporaneamente la lista di virtual machine vconfig: connette le interfacce di rete alle vm eseguite vhalt: termina correttamente una virtual machine vcrash: causa l’arresto improvviso di una virtual machine vclean: “panic command” per la ripulitura di tutti i processi netkit (incluse le vm) e del settaggio delle configurazioni della macchina host introduction

21 Netkit lcommands Per la facile configurazione di complessi laboratori costituiti da molte virtual machine lstart: avvia un laboratorio netkit lhalt: termina correttamente tutte le vm del laboratorio lcrash: causa l’arresto di tutte le vm del laboratorio lclean: rimuove temporaneamente i file dalla directory del laboratorio linfo: da informazioni circa il laboratorio senza avviarlo ltest: permette di eseguire alcuni test per controllare che il laboratorio lavori correttamente introduction

22 Accesso al “mondo esterno” da una virtual machine
Due modi per fare questo: la directory /hosthome all’interno di una virtual machine punta direttamente alla home directory dell’utente corrente sull’host reale È permesso l’accesso read/write vstart può automaticamente configurare passaggi (“interfacce tap”) attraverso i quali una virtual machine può accedere alle rete esterna reale vedi man vstart per maggiori informazioni introduction

23 Preparare un laboratorio netkit
introduction

24 Preparare un laboratorio netkit
Un laboratorio netkit è un insieme di virtual machine pre-configurate che possono essere avviate e terminate tutte insieme Può essere implementato in (almeno) due modi: Scrivendo un singolo script lab-script che invoca vstart per ciascuna virtual machine che deve essere eseguita Configurando un laboratorio netkit standard che può essere lanciato usando gli lcommand introduction

25 Un laboratorio netkit come un singolo script
Uno script (per esempio, lab-script) invoca vstart con alcune opzioni per avviare ciascuna virtual machine Usando l’opzione --exec di vstart, lo stesso script può essere invocato dentro la vm Un controllo dentro lab-script può essere usato per testare se siamo nell’host reale o dentro una vm introduction

26 Un laboratorio netkit come un singolo script
introduction

27 Laboratori netkit usando lcommands
Un laboratorio netkit standard è una directory ad albero che contiene: un file lab.conf che descrive la topologia di rete i file .startup and .shutdown che descrivono le azioni eseguite dalle singole vm quando sono state avviate o terminate un insieme di sotto-directory che “mappa” il filesystem della vm [opzionale] un file lab.dep che descrive le dipendenze sull’ordine di esecuzione delle vm [opzionale] una directory _test che contiene scripts per testare che il laboratorio lavori correttamente introduction

28 lab.conf Questo file descrive
le configurazioni delle vm che costituiscono un laboratorio la topologia della rete che interconnette le vm del laboratorio Una lista di assegnamenti machine[arg]=value machine è il nome della vm (per esempio, pc1) se arg è un numero intero (si dice i), allora value è il nome del dominio di collisione al quale l’interfaccia ethi dovrebbe essere connessa se arg è una stringa, allora è il nome di un’opzione vstart e value è l’argomento dell’opzione introduction

29 lab.conf introduction

30 lab.conf Altri assegnamenti opzionali:
machines=“pc1 pc2 pc3…”: dichiara esplicitamente le virtual machine che costituiscono il laboratorio di default, l’esistenza di una sotto-directory vm_name nella directory del laboratorio implica che una virtual machine vm_name sia avviata LAB_DESCRIPTION LAB_VERSION LAB_AUTHOR LAB_ LAB_WEB vengono visualizzate informazioni descrittive quando il laboratorio è avviato introduction

31 File di avvio (startup) e l’arresto (shutdown)
Sono degli shell scripts che dicono alle virtual machine che cosa fare quando vengono avviate o terminate Sono eseguiti dentro le virtual machine shared.startup e shared.shutdown sono due file che riguardano tutte le virtual machines Subito dopo l’avvio (startup), una vm chiamata vm_name esegue shared.startup vm_name.startup Subito dopo l’arresto (shutdown), una vm chiamata vm_name esegue vm_name.shutdown shared.shutdown introduction

32 File di avvio (startup) e chiusura (shutdown)
Un tipico uso del file .startup consiste nell’invocazione di comandi di configurazione o nell’avvio di applicativi server introduction

33 Sotto-directory del laboratorio
Netkit avvia una virtual machine per ciascuna sotto-directory, con lo stesso nome della sotto-directory stessa a meno che lab.conf non contenga la direttiva machines= I contenuti della sotto-directory vm sono mappati (=copiati) dentro la root (/) del filesystem della vm per esempio, vm/foo/file.txt è copiata in /foo/file.txt dentro la virtual machine vm; questo succede solo la prima volta che la vm è avviata; per forzare questa copiatura devi rimuovere il filesystem della virtual machine (.disk file) introduction

34 lab.dep Varie virtual machine possono essere inizializzate insieme (parallel startup) l’opzione -p di lstart L’ordine di avvio delle macchine virtuali può essere influenzato da dipendenze determinate Per esempio, “pc3 può essere avviata solo dopo pc2 e pc1” Un file lab.dep dentro la directory del laboratorio descrive le dipendenze e automaticamente consente il parallel startup Il formato del file è simile a quello di un Makefile Per esempio: significa “pc3 può essere avviata solo dopo pc2 e pc1” introduction

35 Avvio/Arresto di un laboratorio
lcommand -d <lab_directory> [machine...] oppure Entra nella directory del laboratorio (cd lab_directory) digita un lcommand dove lcommand può essere uno dei seguenti: lstart, avvia il laboratorio lhalt, termina correttamente le vm del laboratorio lcrash, interrompe improvvisamente le vm del laboratorio opzionalmente, una lista di nomi di machine può essere data da linea di comando, in questo caso solo quelle macchine saranno interessate dal comando introduction

36 Rimozione dei file temporanei
L’esecuzione del laboratorio crea alcuni file temporanei dentro la directory corrente e nella directory del laboratorio Per disfarsi di tutti questi, usa lclean dopo che il file è stato halted/crashed NOTA: lclean rimuove anche i filesystem della vm (i file .disk); non usarlo se hai intenzione di eseguire il tuo laboratorio usando le modifiche fatte nello stesso filesystem introduction

37 ltest Consente il controllo che laboratori distribuiti lavorino correttamente, in maniera semplice ltest avvia un laboratorio e da informazioni riguardo ciascuna vm L’ output va dentro _test/results/vm.default [opzionale] uno script _test/vm.test può contenere comandi addizionali da essere eseguiti nelle vm con l’ordine delle informazioni date l’ output va dentro _test/results/vm.user introduction

38 ltest introduction

39 ltest Quando viene preparato un laboratorio:
lancia ltest per avere le informazioni del laboratorio Muovi i file _test/results/* nella sotto-directory _test/results/good Quando un laboratorio viene testato: confronta (per esempio, usando diff) i file _test/results/* con _test/results/good/* controlla se tutti coincidono introduction

40 Avere informazioni circa un laboratorio
linfo stampa sommarie informazioni riguardo un laboratorio, senza eseguirlo L’ opzione -m permette di creare uno schizzo del livello di link della topologia del laboratorio richiede la GraphViz library per essere installato introduction

41 Maggiori informazioni
Possono essere trovate maggiorni informazioni… …nelle pagine del manuale di netkit (puoi iniziare da man netkit) …sul sito web introduction


Scaricare ppt "il sistema per il pover’uomo per sperimentare con le reti di computer"

Presentazioni simili


Annunci Google