1 508
contributi
(Modifiche minori: aggiunta di un link, segnalazione versioni compatibili) |
Nessun oggetto della modifica |
||
Riga 11: | Riga 11: | ||
Per la configurazione dei repository di VirtualBox e per l'installazione del software si segua ad esempio questa guida: [[Installare Virtualbox su un server Debian senza X]] | Per la configurazione dei repository di VirtualBox e per l'installazione del software si segua ad esempio questa guida: [[Installare Virtualbox su un server Debian senza X]] | ||
<br/> | <br/> | ||
È inoltre necessario installare il pacchetto [http://packages.debian.org/lenny/bridge-utils bridge-utils] presente nei repository standard di Debian. | |||
== Installazione delle macchine virtuali == | == Installazione delle macchine virtuali == | ||
Riga 19: | Riga 19: | ||
Verosimilmente la macchina host è dotata di un solo dispositivo, supponiamo eth0. Per i nostri scopi abbiamo bisogno di aggiungere altre quattro interfacce. Per far questo ci vengono in aiuto i comandi [http://linux.die.net/man/8/brctl brctl] e [http://linux.die.net/man/8/tunctl tunctl]. Il primo permette di gestire [http://it.wikipedia.org/wiki/Bridge_(informatica) bridge virtuali], ossia dispositivi in grado di collegare più interfacce fra loro in maniera simile a quanto fatto da un [http://it.wikipedia.org/wiki/Hub_(informatica) hub]. Il secondo permette di gestire [http://it.wikipedia.org/wiki/TUN/TAP interfacce ethernet virtuali] le quali saranno poi collegate ai bridge opportuni. | Verosimilmente la macchina host è dotata di un solo dispositivo, supponiamo eth0. Per i nostri scopi abbiamo bisogno di aggiungere altre quattro interfacce. Per far questo ci vengono in aiuto i comandi [http://linux.die.net/man/8/brctl brctl] e [http://linux.die.net/man/8/tunctl tunctl]. Il primo permette di gestire [http://it.wikipedia.org/wiki/Bridge_(informatica) bridge virtuali], ossia dispositivi in grado di collegare più interfacce fra loro in maniera simile a quanto fatto da un [http://it.wikipedia.org/wiki/Hub_(informatica) hub]. Il secondo permette di gestire [http://it.wikipedia.org/wiki/TUN/TAP interfacce ethernet virtuali] le quali saranno poi collegate ai bridge opportuni. | ||
Supponendo che l'IP del router fisico al quale siamo collegati sia 192.168.1.1, e per evitare eventuali conflitti nel routing dei pacchetti, vengono create le seguenti due sottoreti: 10.1.1.0/24 e 10.1.2.0/24. Il primo bridge ''br0'' con indirizzo 10.1.1.1, il secondo ''br1'' 10.1.2.1. | Supponendo che l'IP del router fisico al quale siamo collegati sia <code>192.168.1.1</code>, e per evitare eventuali conflitti nel routing dei pacchetti, vengono create le seguenti due sottoreti: <code>10.1.1.0/24</code> e <code>10.1.2.0/24</code>. Il primo bridge <code>''br0''</code> con indirizzo <code>10.1.1.1</code>, il secondo <code>''br1''</code> <code>10.1.2.1</code>. | ||
Una volta creati i bridge si procede alla creazione delle interfacce virtuali ''tap0 tap1 tap2'' e ''tap3''. ''tap0'' e ''tap1'' appartengono al server, ''tap2'' al primo client e ''tap3'' al secondo. ''tap0'' è collegato a ''br0'', e attraverso di questo potrà comunicare con l'host (e con la rete esterna). ''tap1'', ''tap2'' e ''tap3'' sono collegate a ''br1'' attraverso il quale viene garantita la connessione fra i client ed il server. Gli indirizzi IP dei dispositivi TAP saranno poi configurati all'interno delle macchine virtuali. | Una volta creati i bridge si procede alla creazione delle interfacce virtuali <code>''tap0 tap1 tap2''</code> e <code>''tap3''</code>. <code>''tap0''</code> e <code>''tap1''</code> appartengono al server, <code>''tap2''</code> al primo client e <code>''tap3''</code> al secondo. <code>''tap0''</code> è collegato a <code>''br0''</code>, e attraverso di questo potrà comunicare con l'host (e con la rete esterna). <code>''tap1''</code>, <code>''tap2''</code> e <code>''tap3''</code> sono collegate a <code>''br1''</code> attraverso il quale viene garantita la connessione fra i client ed il server. Gli indirizzi IP dei dispositivi TAP saranno poi configurati all'interno delle macchine virtuali. | ||
Di seguito un'immagine chiarificatrice sullo schema in oggetto. | Di seguito un'immagine chiarificatrice sullo schema in oggetto. | ||
Riga 30: | Riga 30: | ||
Creazione di un'interfaccia virtuale chiamata ''tap0'' disponibile solo per nomeUtente: | Creazione di un'interfaccia virtuale chiamata <code>''tap0''</code> disponibile solo per nomeUtente: | ||
<pre> | <pre> | ||
tunctl -t tap0 -u nomeUtente | # tunctl -t tap0 -u nomeUtente | ||
</pre> | </pre> | ||
Attivazione dell'interfaccia ''tap0'': | Attivazione dell'interfaccia <code>''tap0''</code>: | ||
<pre> | <pre> | ||
ip link set up dev tap0 | # ip link set up dev tap0 | ||
</pre> | </pre> | ||
Creazione di un bridge virtuale chiamato ''br0'': | Creazione di un bridge virtuale chiamato <code>''br0''</code>: | ||
<pre> | <pre> | ||
brctl addbr br0 | # brctl addbr br0 | ||
</pre> | </pre> | ||
Aggiunta di ''tap0'' a ''br0'': | Aggiunta di <code>''tap0''</code> a <code>''br0''</code>: | ||
<pre> | <pre> | ||
brctl addif br0 tap0 | # brctl addif br0 tap0 | ||
</pre> | </pre> | ||
Attivazione del bridge ''br0'': | Attivazione del bridge <code>''br0''</code>: | ||
<pre> | <pre> | ||
ip link set up dev br0 | # ip link set up dev br0 | ||
</pre> | </pre> | ||
Assegnazione dell'indirizzo 10.1.1.1 con netmask 255.255.255.0 a ''br0'': | Assegnazione dell'indirizzo <code>10.1.1.1</code> con netmask <code>255.255.255.0</code> a <code>''br0''</code>: | ||
<pre> | <pre> | ||
ip addr add 10.1.1.1/24 dev br0 | # ip addr add 10.1.1.1/24 dev br0 | ||
</pre> | </pre> | ||
Instradamento dei pacchetti diretti a 10.1.1.0 su ''br0'': | Instradamento dei pacchetti diretti a <code>10.1.1.0</code> su <code>''br0''</code>: | ||
<pre> | <pre> | ||
ip route add 10.1.1.0/24 dev br0 | # ip route add 10.1.1.0/24 dev br0 | ||
</pre> | </pre> | ||
Riga 74: | Riga 74: | ||
<pre> | <pre> | ||
tunctl -t tap1 -u nomeUtente | # tunctl -t tap1 -u nomeUtente | ||
tunctl -t tap2 -u nomeUtente | # tunctl -t tap2 -u nomeUtente | ||
tunctl -t tap3 -u nomeUtente | # tunctl -t tap3 -u nomeUtente | ||
ip link set up dev tap1 | # ip link set up dev tap1 | ||
ip link set up dev tap2 | # ip link set up dev tap2 | ||
ip link set up dev tap3 | # ip link set up dev tap3 | ||
brctl addbr br1 | # brctl addbr br1 | ||
brctl addif br1 tap1 | # brctl addif br1 tap1 | ||
brctl addif br1 tap2 | # brctl addif br1 tap2 | ||
brctl addif br1 tap3 | # brctl addif br1 tap3 | ||
ip link set up dev br1 | # ip link set up dev br1 | ||
ip addr add 10.1.2.1/24 dev br1 | # ip addr add 10.1.2.1/24 dev br1 | ||
</pre> | </pre> | ||
== Configurazione delle macchine virtuali == | == Configurazione delle macchine virtuali == | ||
Si utilizzi la GUI di virtualbox per assegnare ''tap0'' e ''tap1'' al server, ''tap2'' al primo client e ''tap3'' al secondo. Si rimanda alla documentazione di Virtualbox per la configurazione delle interfacce di rete delle macchine guest come [http://www.virtualbox.org/manual/UserManual.html#id2513808 Schede con bridge]. | Si utilizzi la GUI di virtualbox per assegnare <code>''tap0''</code> e <code>''tap1''</code> al server, <code>''tap2''</code> al primo client e <code>''tap3''</code> al secondo. Si rimanda alla documentazione di Virtualbox per la configurazione delle interfacce di rete delle macchine guest come [http://www.virtualbox.org/manual/UserManual.html#id2513808 Schede con bridge]. | ||
Riga 235: | Riga 235: | ||
Per evitare di digitare ogni volta i comandi di creazione e eliminazione delle interfacce virtuali è possibile realizzare un semplice script bash. | Per evitare di digitare ogni volta i comandi di creazione e eliminazione delle interfacce virtuali è possibile realizzare un semplice script bash. | ||
Si crei dunque un file di nome ''initmachines.sh'' e si copi all'interno il seguente codice: | Si crei dunque un file di nome <code>''initmachines.sh''</code> e si copi all'interno il seguente codice: | ||
<pre> | <pre> | ||
Riga 300: | Riga 300: | ||
<pre> | <pre> | ||
sh /pathDelloScript/initmachines.sh start | # sh /pathDelloScript/initmachines.sh start | ||
</pre> | </pre> | ||
Riga 307: | Riga 307: | ||
<pre> | <pre> | ||
sh /pathDelloScript/initmachines.sh stop | # sh /pathDelloScript/initmachines.sh stop | ||
</pre> | </pre> | ||
---- | ---- | ||
[[Categoria:Networking]] | [[Categoria:Networking]] | ||
[[Categoria:Server]] | [[Categoria:Server]] |
contributi