rete virtuale server e due client con virtual box

vorrei creare una rete con tre guest realizzati con virtual box…il primo guest monta fedora, gli altri due xp…lo scenario di rete è il seguente:

-la macchina fedora è un server che è connesso tramite l’interfaccia eth2 con la rete interna (192.168.0.0/24), tramite l’interfaccia eth2 con la rete esterna(192.168.1.0/24);

-le due macchine xp a partengono una alla rete interna (pc1) e una alla rete esterna (pc2).

Il mio scopo è quello di far avvenire la comunicazione tra pc1 e pc2 tramite fedora, su cui dopo andrò a realizzare un firewall per filtrare il traffico che mi interessa. Il piano di indirizzamento è il seguente:

  • interfaccia eth2 -> ip: 192.168.0.20/24;
  • interfaccia eth3 -> ip: 192.168.1.20/24;
  • macchina pc1 -> ip: 192.168.0.11/24 gateway: 192.168.0.20/24
  • macchina pc2 -> ip: 192.168.1.11/24 gateway: 192.168.1.20/24

ho attivato l’ipforwarding sulla macchina fedora e ho aggiunto le route statiche sulle due macchina xp seguenti:

-su pc1: route add 192.168.1.0 mask 255.255.255.0 192.168.0.20
-su pc2: route add 192.168.0.0 mask 255.255.255.0 192.168.1.20

anche se tutto ciò è ridondante visto che i due pc si raggiungono tramite i gateway. Ho aggiunto anche le route statiche su fedora in modo che la rete 192.168.0.0 fosse raggiunta tramite interfaccia eth2 e che la rete 192.168.1.0 fosse raggiunta tramite interfaccia eth3. Inoltre le schede di rete che ho aggiunto con virtual box sono del tipo rete interna (Internal Networking per versioni inglesi)…
tutto si pinga ( pc1 con eth2 e viceversa, pc1 con eth3 e viceversa, pc2 con eth2 e viceversa, pc2 con eth3 e viceversa) tranne i due pc ( pc1 con pc2 e viceversa)…come mai??? cosa ho sbagliato?? ringrazio quanti siano disposti ad aiutarmi, è abbastanza importante

Dovresti, usando tcpdump, seguire i pacchetti di ping e verificare dove si interrompe il persorso.

ho provato ad usare il tcpdump e mi sono messo in ascolto sull’host pc1 (192.168.0.11); ho pingato dall’host pc2 (192.168.1.11) il pc1 e il risultato è stato che le echo request arrivano a destinazione ma le echo reply non partono…anche nel viceversa, ossia pingando da 192.168.1.11
e ascoltando sull’host pc2 ho ottenuto lo stesso risultato…per intenderci ho visto un po’ il manuale del tcpdump, che non conoscevo, e ho usato questo comando:

tcpdump host 192.168.0.11 -i eth2

dopodichè sono andato su pc2 (192.168.1.11) e ho pingato…il risultato è stato quanto ho detto sopra,ossia:

…192.168.1.11 -> 192.168.0.11 icmp echo request…
…192.168.1.11 -> 192.168.0.11 icmp echo request…
…192.168.1.11 -> 192.168.0.11 icmp echo request…
…192.168.1.11 -> 192.168.0.11 icmp echo request…

…sapresti darmi una spiegazione e una soluzione…ti ringrazio in partenza

allora … non usare “host” in tcpdump, usalo solo con

tcpdump -i eth2

così vedi tutto il traffico che passa dall’intefaccia.
Ma poi pc1 e pc2 non hanno una sola scheda di rete? o hai ascoltato il traffico nella macchina fedora? Spiegami bene quello che hai fatto…

Ah e poi incolla qui le tabelle di routing di tutti e tre i guest

ti invio il disegno della rete, io devo collegare pc1 e pc2 tramite fedora…ho anche inserito il piano di indirizzamento utilizzato…ovviamente eth2 ed eth3 sono le schede di rete su fedora…lascia perdere tutto quello che ho fatto io finora, tu come faresti?? dammi la tua idea, te ne sarei grato…grazie

Come hai fatto tu va bene, dammi però i seguenti putput:

su fedora : “route”

sui pc: “route /print”

così vediamo perché i ping non tornano.

l’output su fedora di route è:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.0.20 0.0.0.0 255.255.255.255 UH 0 0 0 eth3
192.168.1.0 192.168.1.20 255.255.255.0 UG 0 0 0 eth3
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth3
192.168.0.0 192.168.0.20 255.255.255.0 UG 0 0 0 eth2
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth2
0.0.0.0 192.168.0.20 0.0.0.0 UG 0 0 0 eth3

gli altri due output sono in allegato

le route sui pc win sono ok, non capisco invece quella di fedora.
Riportami qui le route statiche che hai aggiunto a fedora, e magari riportami la tabella di routing senza le route statiche applicate.

Come da FAQ e come più volte richiesto: non allegate immagini quando si possono riportare per iscritto le varie cose!

questo è l’output del comando route prima che io aggiunga le route statiche(spero si capisca visto che mi hanno detto di non inoltrare immagini):

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.0.20 * 255.255.255.255 UH 0
0 0 eth3

192.168.1.0 * 255.255.255.0 U 1 0 0 eth3

192.168.0.0 * 255.255.255.0 U 1
0 0 eth2

default 192.168.0.20 0.0.0.0 UG 0
0 0 eth3

le route statiche aggiunte sono:

route add -net 192.168.0.0. netmask 255.255.255.0 gw 192.168.0.20 eth2

route add -net 192.168.1.0. netmask 255.255.255.0 gw 192.168.1.20 eth3

inoltre quando ho creato le schede di rete sulle macchine con virtualbox, ho scelto rete interna (le possibilità sono scheda con bridge, scheda con host, nat e rete interna) e come tipo di scheda di rete quella che dava di default (PC-NET FAST III (Am79C973))…può essere un problema legato alla scelta della scheda di rete??? cmq ho anche disattivato i firewall su xp per poter pingare e poi ho attivato l’ipforwarding su fedora…fammi sapere la tua idea

ma cosa c’entra la prima route:

192.168.0.20 * 255.255.255.255 UH 0 
0 0 eth3

ma sulla eth3 c’è la rete 192.168.1.0 ?

anche il default route è sbagliato sulla eth3 ,
controlla bene le impostazioni di rete, non ha senso avere un default route 192.168.0.20 sulla scheda eth3

praticamente nelle varie prove avevo impostato come gateway di una scheda di rete l’altra e viceversa (lo so che è una stronzata, ma era solo una prova)…ora ti posto il route prima dell’applicazione delle route statiche:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 1 0 0 eth3
192.168.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth2

le route statiche sono sempre quelle:

route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.11 eth2

route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.11 eth3

secondo me non serve nemmeno impostare le route statiche perché i due pc xp sono direttamente connessi alle schede di rete eth2 ed eth3, infatti il risultato anche introducendo le route statiche, non cambia (i due pc non si pingano)…hai preso in considerazione il fatto delle schede di rete che ti ho scritto nel messaggio precedente? secondo te potrebbe essere per quello?

non credo sia problema di schede di rete, se no il ping non dovrebbe nemmeno arrivare.

Facciamo un’ ultima prova:

Non settare le tue route statiche su fedora, lascia la tabella per come l’ hai riportata nel mess. precedente.
Apri due terminali su fedora e dai rispettivamente:

term1: “tcpdump -i eth2”
term2: “tcpdump -i eth3”

poi vai su pc1 e pinga pc2 , riporta gli output dei due terminali

ho risolto…vedendo l’ouput sui due terminali del tcpdump ho notato che c’era un messaggio di risposta all’echo request inviato da pc1 del tipo unreachable-admin proibited…così ho listato l’iptable su fedora e ho notato che stavano delle righe che bloccavano i messaggi icmp sulle catene di input e forward…le ho eliminate…dopodichè ho inserito dei target sulle catene di input, output e forward in cui ho detto di accettare le richieste icmp da qualsiasi sorgente e verso qualsiasi destinazioni…dopodichè è andato tutto liscio…posto i comandi che ho usato, potrebbero essere utili a qualcuno:

iptables -A INPUT -j ACCEPT -p ICMP
iptables -A OUTPUT -j ACCEPT -p ICMP
iptables -A FORWARD -j ACCEPT -p ICMP
iptables -D nomecatena numerorigadaeliminare

grazie dei suggerimenti, sono stati utilissimi…a presto

comunque , io partivo, erroneamente, dal presupposto che tutti i firewall fossero disabilitati. Quando fai cose del genere conviene affrontare un problema per volta, disabiliti il firewall e controlli il routing, quando tutto funziona abiliti i firewall e vai avanti. Ciao.