1 508
contributi
(revisionata, corretti alcuni errori, modificata gerarchia titoli) |
|||
Riga 1: | Riga 1: | ||
= 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 | 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. | ||
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 9: | Riga 8: | ||
= 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 24: | Riga 23: | ||
</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 31: | Riga 30: | ||
= Configurazione = | = Configurazione = | ||
Settiamo il path aggiungendo a '''.bashrc''' le righe | Settiamo il path aggiungendo a <code>'''.bashrc'''</code> le righe | ||
<pre> | <pre> | ||
Riga 80: | Riga 79: | ||
</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 | ||
Riga 96: | Riga 95: | ||
= 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 113: | Riga 112: | ||
$ 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 122: | Riga 121: | ||
= Comunicazione con l'host = | == Comunicazione con l'host == | ||
Per trasferire files al pc host basterà inserirli all'interno della directory '''/hosthome''', presente nel filesystem di ogni macchina virtuale. I files saranno visibili nel pc host e potranno essere gestiti a nostro piacere. | Per trasferire files al pc host basterà inserirli all'interno della directory <code>'''/hosthome'''</code>, presente nel filesystem di ogni macchina virtuale. I files 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 149: | Riga 148: | ||
= Installazione applicazioni = | == Installazione applicazioni == | ||
Per aggiungere nuove applicazioni ad una macchina virtuale: | Per aggiungere nuove applicazioni ad una macchina virtuale: | ||
<pre> | <pre> | ||
Riga 156: | Riga 155: | ||
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 v1 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 164: | Riga 163: | ||
# 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. | ||
Riga 186: | Riga 185: | ||
</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" | ||
Riga 207: | Riga 206: | ||
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 eth0 del fw si appoggia allo switch virtuale B | * <code>'''fw[1]=“B”'''</code> —→ la scheda eth0 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 files '''.startup''', invece, andranno tutti quei comandi che si volessero eseguire dopo l'avvio della macchina virtuale. Ad esempio: | Nei files <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 221: | Riga 220: | ||
</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 dns: | Se quindi volessimo impostare per le macchine di quel lab un determinato server dns: | ||
Riga 240: | Riga 239: | ||
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 files relativi alle macchine virtuali ed ai loro logs. | Nella directory in cui viene lanciato il comando <code>lstart</code> verranno creati i files relativi alle macchine virtuali ed ai loro logs. | ||
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 257: | Riga 256: | ||
</pre> | </pre> | ||
La versione 2.6 di netkit è | 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> | <pre> | ||
$ wget http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20080202/f21faaa6/tap-not-first.obj | $ wget http://list.dia.uniroma3.it/pipermail/netkit.users/attachments/20080202/f21faaa6/tap-not-first.obj |
contributi