Openswan se connectant à plusieurs sous-réseaux de droite ne fonctionnant pas

J'essaie d'utiliser Openswan (version 2.6.37) pour connecter un VPN IPsec de mon réseau local à un site distant. Tout fonctionne bien quand je veux juste me connecter à un seul sous-réseau sur le site distant. Cependant, le site distant possède également un sous-réseau supplémentaire auquel je veux accéder.

C'est ma configuration:

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

Lorsque je remplace rightsubnet par des rightsubnets , comme ceci:

 rightsubnets={172.16.1.0/24 192.168.3.0/24} 

… alors la connection est créée avec succès mais seul le dernier sous-réseau de la list est disponible. Toute tentative de 172.16.1.0 ping sur le sous-réseau 172.16.1.0 échoue. Si je permute l'ordre des sous-réseaux autour de puis je peux cingler 172.16.1.X mais ne peux rien cingler sur l'autre sous-réseau. C'est comme si Openswan utilise uniquement le dernier sous-réseau de la list pour créer une connection.

Est-ce que je fais quelque chose de mal ici?

Un peu d'information supplémentaire que j'ai négligé de mentionner (bien que je ne sois pas sûr que cela soit pertinent): Mon client Openswan est derrière un routeur utilisant NAT et j'ai nat_traversal=yes dans mon file ipsec.conf .

On dirait que le séparateur habituel pour les sous-réseaux multiples est une virgule , mais au less openswan-2.6.32 fonctionne aussi avec des espaces.

Les informations intéressantes doivent être enregistrées dans /var/log/secure qui pourraient contenir des indices expliquant pourquoi il ne fonctionne pas. Notez également la sortie de ip xs sh et ip xp sh .

Configurez la configuration de la section de conn pour chaque sous-réseau sur les deux extrémités du tunnel. Un seul d'entre eux (le premier a démarré) commencera une négociation SA, le second (ou plus) ne fera qu'un nouveau SPD des autres sous-réseaux.

Si vous utilisez rightsubnets vous devez aussi utiliser les leftsubnets , pas leftsubnet . Même s'il n'y a qu'un seul sous-réseau de ce côté. La page de manuel ipsec.conf ne fait pas un bon travail d'explication, mais elle est là.

J'ai eu les problèmes simmilar pendant des mois et viens de find la réponse ici: https://serverfault.com/questions/571352/openswan-multiple-subnets-routing-issue

On dirait qu'il y a un bug dans OpenSwan où la list des sous-réseaux a besoin d'une virgule supplémentaire à la fin pour fonctionner correctement. Essayer:

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

Notez la virgule supplémentaire à la fin.

Ça devrait être comme ça

 rightsubnets={172.16.1.0/24,192.168.3.0/24} 

Utilisez une virgule ( , ) et non un espace pour séparer les inputs.