[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

OpenVPN, routing, bridging (lungo)



Ciao a tutti,

sto provando a realizzare una VPN per collegare due LAN
usando ovviamente due Linux box con Debian e OpenVPN ma
come potrete immaginare scrivo perché ho qualche problema...

La situazione è la seguente:

PC1    192.168.0.10/24 --------------------+
       (Gateway 192.168.0.10)              |
                                           |
                                           |
PC2    192.168.0.20/24 --------------------+
       (Gateway 192.168.0.10)              |
                                           |
                                           |
       192.168.0.17/24 --------------------+
OVPN_A                                     |
       192.168.3.2/24  --+              192.168.0.10/24
                         |              RouterA
                         |                 |
                         |                 |
                         |              ~~~~~~~~
                         |VPN          {Internet}
                         |tunnel        ~~~~~~~~
                         |                 |
                         |                 |
                         |              RouterB
       192.168.3.1/24  --+              192.168.1.1/24
OVPN_B                                     |
       192.168.1.123/24  ------------------+
       (Gateway 192.168.1.1)               |
                                           |
                                           |
PC3    192.168.1.10/24 --------------------+
       (Gateway 192.168.1.1)               |
                                           |
                                           |
PC4    192.168.2.20/24 --------------------+


La prima rete è costituita da client Windows (PC1 e PC2) che raggiungono
Internet tramite il routerA.
La stessa cosa succede per la seconda rete che usa il RouterB come
gateway.
A questo punto io ho messo su due gateway VPN con OpenVPN 2.0: OVPN_A
è una Woody con kernel 2.4 e OVPN_B è una Sarge con kernel 2.6.

Il tunnel tra i due gateway si instaura e si possono pingare fra loro ma non tutti i client riescono a fare altrettanto. Di quelli che riescono a
pingarsi, solo un client riesce ad accedere alle risorse condivise di un
altro client remoto.

Credo che il problema dipenda dal fatto che i gateway VPN non coincidano
con i gateway verso Internet e per questo ho fatto quanto segue.

Sui gateway VPN:
1) Ho abilitato il forwarding
   su OVPN_A:
   echo "1" > /procfs/sys/net/ipv4/ip_forwarding
   su OVPN_B:
   sysctl net.ipv4.ip_forwarding=1

2) Mi sono accertato con iptables che il traffico in FORWARD venga
   accettato

3) Ho aggiunto un paio di regole di routing per far sì che i pacchetti
   destinati alla rete remota vengano consegnati al gateway remoto
   su OVPN_A:
   route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.3.1
   su OVPN_B:
   route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.3.2

Sui client ho aggiunto una regola di routing in modo che i pacchetti
destinati alla rete remota vengano consegnati al gateway VPN locale.
Su PC1 e PC2 (la sintassi è quella di Windows):

route ADD 192.168.1.0 MASK 255.255.255.0 192.160.0.17

Mentre su PC3 e PC4:

route ADD 192.168.0.0 MASK 255.255.255.0 192.160.1.123

Come dicevo prima il risultato di tutto ciò è un funzionamento
parziale: solo un client riesce ad accedere ad un altro client
remoto (aprendo Gestione delle Risorse e puntando a
\\IndirizzoIP\DirectoryCondivisa)
e molti non riescono neanche a pingarsi.

Non sapendo dove sbattere la testa ho provato anche ad abilitare
il masquerading sui gateway VPN:

iptables -t nat -a POSTROUTING -o tap0 -s 192.168.0.0/24 -j MASQUERADE

ma non cambia nulla.

A questo punto, continuando a leggere documentazione e cercare su
Google, m'è venuta l'idea di provare ad attivare sui gateway VPN
il bridging tra scheda Ethernet e l'interfaccia virtuale tap0.
Secondo voi è sensato? Avete qualche altro consiglio?

Grazie in anticipo,

Marco





Reply to: