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

Slides:



Advertisements
Presentazioni simili
Laboratorio virtuale per lo studio delle reti
Advertisements

Wikispaces, flipped rules in the classroom fiorluis[at]tin.it Luisanna Fiorini
D. Talia - UNICAL 1. 1 Sistemi Operativi Domenico Talia Facoltà di Ingegneria Università della Calabria.
Giuditta Cantoni, 4 E S.I.A I DATABASE. Definizione databese In informatica, il termine database, banca dati o base di dati (a volte abbreviato con il.
LTSP (Linux Terminal Server Project) GNU/Linux ed Workshop di Enrico Teotti powered with Gentoo Linux Linux Day LUG Mantova.
1 14 marzo 2006 sommaruga andrea Fondazione Ordine Ingegneri di Milano VPN: Reti Private Virtuali VPN: RETI PRIVATE VIRTUALI LE POSSIBILITA' DI ACCESSO.
A dvanced N etwork T echnologies Lab oratory Infrastrutture e Protocolli per Internet Laboratorio 5 Politecnico di Milano Stefano NapoliAlberto Pollastro.
Università degli Studi - “ G. d'Annunzio ” Chieti - Pescara FACOLTÀ DI ECONOMIA Corso di laurea in Economia Informatica/s Seminario di: Giovanni Placentino.
1 Alberto Pollastro, !#/bin/bash Novara, GalLUG - Gruppo Utenti Linux Galliate - #!/bin/bash Alberto Pollastro.
Orientamento. Il Kernel Il Kernel è un programma scritto in linguaggio vicino all'hardware che ha il compito di fornire ai processi in esecuzione sul.
User Mode Linux. Cos'è user mode linux ● User mode linux è un kernel linux che gira come un'applicazione nello spazio utente.
E’ costituita da due blocchi:  Interfaccia di rete  Blocco di simulazione L’ interfaccia di rete fornisce il collegamento elettrico con la rete sotto.
FOX BOARD 8+32 Argomenti trattati: ● Breve descrizione dell'hardware ● Overview del sistema di sviluppo ● Esame delle porte GPIO Hardware.
Gestione dei Software in GNU/Linux HackLab Catanzaro Installazione software da sorgente 8° Lezione GNU/Linux Base
1 Amministrazione di base del sistema Cristina Moretto Corso Base LinuxTrent
PGDay 2009 FSGateway Ing. Torello Querci Resp. Architetture SW - Negens S.r.l. 4 Dicembre 2009, Pisa.
Gruppo Alpini Rivoli sezione Torino
Corso di Elementi di Informatica
Configurazione Router IR794- IG601
Corso per Webmaster base
Ambienti di Programmazione per il Software di Base
dCache Test effettuati al CNAF
WPC069 Il deployment automatizzato di Windows 10
“Vivere insieme” – Lezione4
Sistemi operativi.
I PROCESSI.
Tutor: prof. Franco Gualtieri 2° parte
HackLab Catanzaro Installazione DEBIAN Lezione 2
Breve report su corso RedHat Enterprise Virtualization (RH318)
Commissione Calcolo e Reti
Sistema di Analisi e di Acquisizione
Terza Lezione → Navigare nel file System → parte 2
Microcontrollori e microprocessori
The Virtual Machine Monitor Introduzione. Installazione. Utilizzo.
Condividere dati di Excel tramite l'esportazione in un sito di SharePoint
I PERMESSI IN LINUX.
Seconda lezione → Navigare nel File System
I comandi.
INDICO Parte 1 01/07/2018 Francesco Serafini.
LA GESTIONE DEI PACCHETTI
ai termini e ai principi informatici utili per utilizzare Linux
LA GESTIONE DEI PACCHETTI
* Il Sistema Operativo GNU/Linux * Sistema Operativo e Applicazioni
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
SAS® OnDemand for Academics SAS Studio
analizzatore di protocollo
Sala di Videoconferenza … quale strumento usare ?
Istruzioni per gli amministratori
Organizzazione di una rete Windows 2000
Ecco tutte le informazioni Microsoft Notizie di SharePoint
Processi e Thread Meccanismi di IPC (1).
Programmare.
Introduzione alla nuova versione di PowerPoint
Introduzione alla nuova versione di PowerPoint
Le reti informatiche di Roberto Minotti 17/01/2019.
Modulo didattico Introduzione
Benvenuto in PowerPoint
Le reti informatiche di Roberto Minotti 15/02/2019.
File System ed Input/Output
Introduzione alla nuova versione di PowerPoint
La struttura dei primi programma in C
Parti interne del computer
Processi decisionali e funzioni di controllo
Fogli di Calcolo Elettronici
Unità 1 Programmi base.
il povero manuale di sistema per sperimentare reti di computer
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
CLOUD.
Transcript della presentazione:

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

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

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

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

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

Netkit: un sistema per l’emulazione di reti di computer Basato su uml (user-mode linux) http://user-mode-linux.sourceforge.net/ 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

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

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

introduction

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

introduction

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

Installare netkit introduction

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 http://www.netkit.org/status.html strumenti di sistema standard e comunemente reperibili (awk, lsof, etc.) introduction

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) : https://www.mat.unical.it/ianni/netkit-filesystem-patched-F5.1.tar.bz2 introduction

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

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

Usare netkit introduction

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

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

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

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

Preparare un laboratorio netkit introduction

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

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

Un laboratorio netkit come un singolo script introduction

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

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

lab.conf introduction

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_EMAIL LAB_WEB vengono visualizzate informazioni descrittive quando il laboratorio è avviato introduction

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

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

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

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

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

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

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

ltest introduction

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

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 http://www.graphviz.org introduction

Maggiori informazioni Possono essere trovate maggiorni informazioni… …nelle pagine del manuale di netkit (puoi iniziare da man netkit) …sul sito web http://www.netkit.org introduction