3 581
contributi
(Nuova pagina: {{stub}} = Introduzione = Netkit[http://wiki.netkit.org/index.php/Main_Page] è un software, sviluppato dall'Università Roma3, che permette di realizzare veri e propri laboratori vir...) |
mNessun oggetto della modifica |
||
(10 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Versioni compatibili|Squeeze|Wheezy|Jessie}} | ||
==Introduzione == | |||
= Introduzione = | Netkit[http://wiki.netkit.org/index.php/Main_Page] è un software, sviluppato dall'Università Roma3, che permette di realizzare veri e propri laboratori virtuali di rete a basso costo e con estrema facilità di gestione. | ||
Netkit[http://wiki.netkit.org/index.php/Main_Page] è un software, sviluppato dall'Università Roma3, che permette di realizzare veri e propri laboratori virtuali di rete a basso costo e con estrema | |||
facilità di gestione. | |||
Questo viene utile sia per motivi didattici che per sperimentare configurazioni particolari da applicare, eventualmente, in | Questo viene utile sia per motivi didattici che per sperimentare configurazioni particolari da applicare, eventualmente, in | ||
Riga 11: | Riga 9: | ||
= Installazione = | == Installazione == | ||
I pacchetti necessari all'installazione sono scaricabili da: http://wiki.netkit.org/index.php/Download_Official. | I pacchetti necessari all'installazione sono scaricabili da: http://wiki.netkit.org/index.php/Download_Official. | ||
Allo stato attuale: | Allo stato attuale: | ||
Riga 19: | Riga 17: | ||
$ wget http://www.netkit.org/download/netkit-kernel/netkit-kernel-i386-K2.7.tar.bz2 | $ wget http://www.netkit.org/download/netkit-kernel/netkit-kernel-i386-K2.7.tar.bz2 | ||
</pre> | </pre> | ||
scompattiamo gli archivi | scompattiamo gli archivi: | ||
<pre> | <pre> | ||
$ tar xvfj netkit/netkit-2.6.tar.bz2 | $ tar xvfj netkit/netkit-2.6.tar.bz2 | ||
Riga 26: | Riga 24: | ||
</pre> | </pre> | ||
spostiamo la directory netkit appena creata | spostiamo la directory <code>netkit</code> appena creata: | ||
<pre> | <pre> | ||
$ mv netkit /home/utente/opt | $ mv netkit /home/utente/opt | ||
Riga 33: | Riga 31: | ||
= Configurazione = | = Configurazione = | ||
Settiamo il path aggiungendo a '''.bashrc''' le righe | Settiamo il path aggiungendo a <code>'''.bashrc'''</code> le righe: | ||
<pre> | <pre> | ||
Riga 82: | Riga 80: | ||
</pre> | </pre> | ||
Il file di configurazione di netkit è '''netkit.conf''' presente nella directory del programma. | Il file di configurazione di netkit è <code>'''netkit.conf'''</code> presente nella directory del programma. | ||
Per aumentare la memoria riservata ad ogni macchina, editiamo questo file e sostituiamo | Per aumentare la memoria riservata ad ogni macchina, editiamo questo file e sostituiamo: | ||
<pre> | <pre> | ||
VM_MEMORY=16 | VM_MEMORY=16 | ||
</pre> | </pre> | ||
con | con: | ||
<pre> | <pre> | ||
VM_MEMORY=64 | VM_MEMORY=64 | ||
Riga 98: | Riga 96: | ||
= Comandi principali = | = Comandi principali = | ||
* '''vstart''': avvia una macchina virtuale | * <code>'''vstart'''</code>: avvia una macchina virtuale | ||
* '''vhalt''': spegne una macchina virtuale | * <code>'''vhalt'''</code>: spegne una macchina virtuale | ||
* '''vcrash''': chiude una macchina virtuale | * <code>'''vcrash'''</code>: chiude una macchina virtuale | ||
* '''vlist''': ottiene informazioni dettagliate sulle macchine virtuali attive | * <code>'''vlist'''</code>: ottiene informazioni dettagliate sulle macchine virtuali attive | ||
Riga 115: | Riga 113: | ||
$ vhalt v1 | $ vhalt v1 | ||
</pre> | </pre> | ||
spegne la macchina '''v1''' (stesso effetto di dare halt all'interno della macchina virtuale | spegne la macchina '''v1''' (stesso effetto di dare halt all'interno della macchina virtuale) | ||
Riga 124: | Riga 122: | ||
= Comunicazione con l'host = | == Comunicazione con l'host == | ||
Per trasferire files al | Per trasferire files al PC host basterà inserirli all'interno della directory <code>'''/hosthome'''</code>, presente nel filesystem di ogni macchina virtuale. I file saranno visibili nel PC host e potranno essere gestiti a nostro piacere. | ||
= Collegamento ad internet = | == Collegamento ad internet == | ||
Per collegare ad internet una macchina virtuale, bisogna avviarla inserendo '''tap''' come dominio di collisione e scegliendo una classe di rete differente da quella della macchina host. | Per collegare ad internet una macchina virtuale, bisogna avviarla inserendo '''tap''' come dominio di collisione e scegliendo una classe di rete differente da quella della macchina host. | ||
Riga 137: | Riga 135: | ||
dove | dove | ||
* 192.168.232.1 è l' | * 192.168.232.1 è l'IP che sul PC host consente il collegamento ad internet | ||
* 192.168.232.2 è l' | * 192.168.232.2 è l'IP da assegnare alla macchina virtuale | ||
Verrà richiesta la password di root. | Verrà richiesta la password di root. | ||
Riga 151: | Riga 149: | ||
= Installazione applicazioni = | == Installazione applicazioni == | ||
Per aggiungere nuove applicazioni ad una macchina virtuale: | Per aggiungere nuove applicazioni ad una macchina virtuale: | ||
<pre> | <pre> | ||
Riga 157: | Riga 155: | ||
</pre> | </pre> | ||
dove | dove: | ||
* '''-W''' fa in modo che i pacchetti aggiunti su v1 risultino disponibili anche sulle altre macchine virtuali | * <code>'''-W'''</code> fa in modo che i pacchetti aggiunti su <code>v1</code> risultino disponibili anche sulle altre macchine virtuali; | ||
* '''–mem 256''' aumenta la RAM di v1 fino a 256Mb in modo che l'installazione dei pacchetti non si blocchi a causa della poca memoria disponibile. | * <code>'''–mem 256'''</code> aumenta la RAM di v1 fino a 256Mb in modo che l'installazione dei pacchetti non si blocchi a causa della poca memoria disponibile. | ||
Fatto questo, basterà lanciare i classici comandi: | Fatto questo, basterà lanciare i classici comandi: | ||
Riga 166: | Riga 164: | ||
# apt-get install nomepacchetto | # apt-get install nomepacchetto | ||
</pre> | </pre> | ||
per l'installazione, come in una normalissima macchina | per l'installazione, come in una normalissima macchina Debian-based. | ||
= Netkit labs = | == Netkit labs == | ||
Settare un lab in netkit significa predisporre, con pochi passaggi, lo “scheletro” di una infrastruttura di rete completa, avviabile (per intero) con un unico comando. | Settare un lab in netkit significa predisporre, con pochi passaggi, lo “scheletro” di una infrastruttura di rete completa, avviabile (per intero) con un unico comando. | ||
Se ad esempio si volesse realizzare un network composto da due | Se ad esempio si volesse realizzare un network composto da due client, un firewall ed un PC server, si procederebbe come segue: | ||
creiamo lo scheletro del laboratorio: | creiamo lo scheletro del laboratorio: | ||
Riga 188: | Riga 186: | ||
</pre> | </pre> | ||
in questo modo | in questo modo sono state create delle directory aventi i nomi delle macchine virtuali che comporranno il nostro lab e i relativi script di avvio di ognuna di esse. | ||
Inoltre è stato creato il file '''lab.conf''' che conterrà le impostazioni di base del network: | Inoltre è stato creato il file <code>'''lab.conf'''</code> che conterrà le impostazioni di base del network: | ||
<pre> | <pre> | ||
LAB_DESCRIPTION="A simple network with firewall, server and two clients" | LAB_DESCRIPTION="A simple network with firewall, server and two clients" | ||
LAB_VERSION=1.0 | LAB_VERSION=1.0 | ||
LAB_AUTHOR="pmate" | LAB_AUTHOR="pmate" | ||
LAB_EMAIL= | LAB_EMAIL=pmate[ at ]fsfe.org | ||
LAB_WEB=http://pmate.altervista.org | LAB_WEB=http://pmate.altervista.org | ||
Riga 209: | Riga 207: | ||
dove: | dove: | ||
* '''pc1[0]=“A”''' —→ la scheda eth0 del pc1 si appoggia allo switch virtuale A | * <code>'''pc1[0]=“A”'''</code> —→ la scheda eth0 del pc1 si appoggia allo switch virtuale A | ||
* '''pc2[0]=“A”''' —→ la scheda eth0 del pc2 si appoggia allo switch virtuale A | * <code>'''pc2[0]=“A”'''</code> —→ la scheda eth0 del pc2 si appoggia allo switch virtuale A | ||
* '''fw[0]=“A”''' —→ la scheda eth0 del fw si appoggia allo switch virtuale A | * <code>'''fw[0]=“A”'''</code> —→ la scheda eth0 del fw si appoggia allo switch virtuale A | ||
* '''fw[1]=“B”''' —→ la scheda | * <code>'''fw[1]=“B”'''</code> —→ la scheda eth1 del fw si appoggia allo switch virtuale B | ||
* '''server1[0]=“A”''' —→ la scheda eth0 del server1 si appoggia allo switch virtuale A | * <code>'''server1[0]=“A”'''</code> —→ la scheda eth0 del server1 si appoggia allo switch virtuale A | ||
Nei | Nei file <code>'''.startup'''</code>, invece, andranno tutti quei comandi che si volessero eseguire dopo l'avvio della macchina virtuale. Ad esempio: | ||
file fw.startup: | file fw.startup: | ||
Riga 223: | Riga 221: | ||
</pre> | </pre> | ||
Le directory aventi il nome delle macchine virtuali saranno l'equivalente della directory '''/''' per ognuna di esse. | Le directory aventi il nome delle macchine virtuali saranno l'equivalente della directory <code>'''/'''</code> per ognuna di esse. | ||
Se quindi volessimo impostare per le macchine di quel lab un determinato server | Se quindi volessimo impostare per le macchine di quel lab un determinato server DNS: | ||
<pre> | <pre> | ||
$ mkdir foo-lab/pc1/etc | $ mkdir foo-lab/pc1/etc | ||
Riga 242: | Riga 240: | ||
le macchine virtuali facenti parte del lab si apriranno una dopo l'altra automaticamente. | le macchine virtuali facenti parte del lab si apriranno una dopo l'altra automaticamente. | ||
Nella directory in cui viene lanciato il comando lstart verranno creati i | Nella directory in cui viene lanciato il comando <code>lstart</code> verranno creati i file relativi alle macchine virtuali ed ai loro log. | ||
Questo, ovviamente, permette di mantenere una “indipendenza” tra le macchine e lo scheletro dell'infrastruttura. | Questo, ovviamente, permette di mantenere una “indipendenza” tra le macchine e lo scheletro dell'infrastruttura. | ||
P.S. al momento di scrivere questa guida è presente (ma già segnalato agli sviluppatori) un bug che impedisce di avviare il lab con il flag '''-d''' a meno di non applicare questa patch[http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20090525/cb061526/attachment.bin] al file '''lcommon''': | P.S. al momento di scrivere questa guida è presente (ma già segnalato agli sviluppatori) un bug che impedisce di avviare il lab con il flag <code>'''-d'''</code> a meno di non applicare questa patch [http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20090525/cb061526/attachment.bin] al file <code>'''lcommon'''</code>: | ||
<pre> | <pre> | ||
$ wget http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20090525/cb061526/attachment.bin | $ wget http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20090525/cb061526/attachment.bin | ||
Riga 253: | Riga 251: | ||
</pre> | </pre> | ||
Un'alternativa sempre valida è quella di | Un'alternativa sempre valida è quella di avviare il lab da “dentro” la propria directory: | ||
<pre> | <pre> | ||
$ cd foo-lab | $ cd foo-lab | ||
$ lstart | $ lstart | ||
</pre> | </pre> | ||
La versione 2.6 di netkit è affetta da un bug [http://list.dia.uniroma3.it/pipermail/netkit.users/2008-February/000342.html] [http://list.dia.uniroma3.it/pipermail/netkit.users/2008-February/000349.html] che si manifesta quando si dichiara una vm con più dispositivi di rete ed uno di questi ha tap come dominio di collisione, gli sviluppatori hanno rilasciato la patch [http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20080202/f21faaa6/tap-not-first.obj]: | |||
<pre> | |||
$ wget http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20080202/f21faaa6/tap-not-first.obj | |||
$ cd opt/netkit | |||
$ patch -p1 < /path/to/tap-not-first.obj | |||
</pre> | |||
Esiste anche un tool grafico per "disegnare" i propri labs, disponibile per il download all'indirizzo: http://code.google.com/p/visual-netkit/ . | Esiste anche un tool grafico per "disegnare" i propri labs, disponibile per il download all'indirizzo: http://code.google.com/p/visual-netkit/ . | ||
Riga 264: | Riga 270: | ||
Happy virtual-networking! | Happy virtual-networking! | ||
= Links = | |||
* http://wiki.netkit.org/ : la pagina ufficiale del progetto | |||
* http://wiki.netkit.org/index.php/Labs_Official : labs ufficiali (utilissimi da studiare e sperimentare) | |||
* http://list.dia.uniroma3.it/pipermail/netkit.users/ : la mailing list | |||
{{Autori | |||
Autore | |Autore= [[Utente:Pmate|pmate]] | ||
}} | |||
[[Categoria: | [[Categoria:Virtualizzazione]] |
contributi