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:
- Follow-Ups:
- Re: OpenVPN, routing, bridging (lungo)
- From: paolo <paolo.larcheri@gmail.com>
- Re: OpenVPN, routing, bridging (lungo)
- From: Daniele Ludovici <ludan@email.it>
- Re: OpenVPN, routing, bridging (lungo)
- From: paolo <paolo.larcheri@gmail.com>
- Re: OpenVPN, routing, bridging (lungo)
- From: Daniele Ludovici <danieleludovici@email.it>
- Re: OpenVPN, routing, bridging (lungo)
- From: Aurea <aurea@interbusiness.it>