Openswan si connette a più subnet di destra non funzionanti


14

Sto cercando di utilizzare Openswan (versione 2.6.37) per connettere una VPN IPsec dalla mia rete locale a un sito remoto. Tutto funziona bene quando voglio solo collegarmi a una singola sottorete sul sito remoto. Tuttavia, il sito remoto ha anche una sottorete aggiuntiva a cui voglio accedere.

Questa è la mia configurazione:

conn myConn
        type=tunnel
        left=192.168.139.14
        leftsubnet=192.168.139.0/24
        leftxauthclient=yes
        right=X.X.X.X
        rightsubnet=172.16.1.0/24
        keyexchange=ike
        auth=esp
        authby=secret
        phase2alg=3des-sha1
        pfs=yes

Quando sostituisco rightsubnetcon rightsubnets, in questo modo:

rightsubnets={172.16.1.0/24 192.168.3.0/24}

... quindi la connessione viene creata correttamente ma è disponibile solo l'ultima sottorete nell'elenco. Qualsiasi tentativo di eseguire il ping di qualsiasi cosa sulla 172.16.1.0subnet non riesce. Se cambio l'ordine delle sottoreti, posso eseguire il ping 172.16.1.Xma non riesco a eseguire il ping su nessun'altra sottorete. È come se OpenSwan utilizza solo l'ultima sottorete dell'elenco per creare una connessione.

Sto facendo qualcosa di sbagliato qui?

Un po 'di informazioni extra che ho trascurato di menzionare (anche se non sono sicuro che siano pertinenti): il mio client Openswan è dietro un router che utilizza NAT e ho nat_traversal=yesnel mio ipsec.conffile.


Usi le VLAN? Ho avuto quasi esattamente lo stesso problema e il problema era un errore VLAN

Hai provato a creare due associazioni di sicurezza, una per ogni sottorete?
gimmesudo,

@Tyke, no non sto usando VLAN. Il mio client OpenSwan è dietro un router che usa NAT - ho aggiornato la domanda per riflettere quello.
FixMaker

@gimmesudo: ho provato a duplicare la mia configurazione sopra per una nuova connessione ( connection myConn2), con tutto identico ad eccezione di rightsubnet. Quando uso ipsec auto --up myConnposso eseguire il ping 172.168.1.X. Quando provo a richiamare la seconda connessione ( ipsec auto --up myConn2), posso eseguire il ping 192.168.3.X ma la prima connessione si interrompe completamente.
FixMaker

Per connetterti come client su molti router IPSec (come Cisco), sarà più semplice da usare vpnc!
F. Hauri

Risposte:


3

Sembra che il solito separatore per più subnet sia una virgola , ma almeno openswan-2.6.32 funziona anche con gli spazi.

Dovrebbero essere registrate informazioni interessanti /var/log/secureche potrebbero contenere indizi sul perché non funziona. Pubblica anche l'output di ip x s she ip x p sh.


Se sei arrivato qui cercando di passare da un host singolo a più host, fai attenzione che la chiave per più subnet sia al plurale ( rightsubnet*s*) anziché singolare.
Margarciaisaia,

1

Effettua la connconfigurazione della sezione per ciascuna subnet su ENTRAMBE gli endpoint del tunnel. Solo uno di essi (il primo avviato) avvierà una negoziazione SA, il secondo (o più) effettuerà solo un nuovo SPD delle ulteriori sottoreti.


Sfortunatamente non posso farlo poiché l'endpoint remoto è un router FortiGate di terze parti (non esegue OpenSwan). Sto iniziando a chiedermi se il problema potrebbe essere correlato al fatto che il router non è in grado di far fronte a più tunnel tra gli stessi endpoint.
FixMaker

1

Se usi devi usare anche rightsubnetstu leftsubnets, no leftsubnet. Anche se c'è solo una sottorete su quel lato. La pagina man ipsec.conf non fa un ottimo lavoro nel spiegarlo, ma è lì.

Ho avuto problemi simili per mesi e ho appena trovato la risposta qui: /server/571352/openswan-multiple-subnets-routing-issue


1
Non è il caso. leftsubnets = {singletone}, dovrebbe essere identico a leftsubnet =. (Ho scritto il codice)
mcr

Questa è stata la soluzione che ha funzionato per me usando libeswan 3.15. La mia sinistra aveva una sola sottorete e la destra ne aveva diverse. Se ho configurato il left usando leftsubnet = e il right usando rightsubnets = {} allora solo l'ultimo rightsubnet si è effettivamente connesso. Una volta configurato sinistra per usare leftsubnets = {} con una sottorete, si è collegato a tutti.
Adam Plumb,

1

Sembra che ci sia un bug in OpenSwan in cui l'elenco delle sottoreti necessita di una virgola aggiuntiva alla fine per funzionare correttamente. Provare:

rightsubnets={172.16.1.0/24,192.168.3.0/24,}

Nota la virgola aggiuntiva alla fine.


Non è questo il caso, nessuno dei casi di test o degli esempi ha una virgola aggiuntiva.
sig.

-3

Dovrebbe essere così

rightsubnets={172.16.1.0/24,192.168.3.0/24}

Utilizzare una virgola ( ,) e non uno spazio per separare le voci.


1
Questa sembra essere la risposta di due anni fa.
G-Man dice "Reinstate Monica"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.