On 05/24/2013 11:46 AM, Eleouet Francois wrote:
Hi,
Thank you very much, great tip!
You're welcome.
The only issue in openstack context is that it usually has to work
with distro packages... Anyway, providing a strongswan driver
alongside with your ./configure suggestion could definitively be a
solution.
OK I see.
I did not test it, but you could maybe write a small launcher
application that does a similar directory remaping as "ip netns exec".
Just take your inspiration from iproute2 function
ip/ipnetns.c:netns_exec(), and remap the directory
/etc/netns/<netnsname>/run to /var/run. (warning, I don't know if some
libraries used by charon read information from /var/run).
Best Regards,
Christophe.
Regards,
Francois.
2013/5/24 Christophe Gouault <[email protected]
<mailto:[email protected]>>
Hi François,
If you use netns created by "ip netns add <netnsname>" and start
charon with "ip netns exec <netnsname> ipsec start", then there is
a solution (that we successfully used here to perform IKE tests
with a single machine:
"ip netns exec netns1" enables to start the application in netns
netns1, but also, if the /etc/netns/netns1 directory exists, the
files and sub-directories will be remapped in /etc for the
application (provided a file or directory with the same name
already exists in /etc).
So, you just have to store your configuration files in this
directory and the pid and socket files in a sub-directory. To do
that, you must chose a different piddir when compiling strongswan:
Example for netns1 and netns2:
create netns and directories
----------------------------
ip netns add netns1
ip netns add netns2
mkdir -p /etc/run
mkdir -p /etc/netns/netns1/run
mkdir -p /etc/netns/netns2/run
generate strongswan
-------------------
./configure --sysconfdir=/etc --with-piddir=/etc/run make
make install
configure and run strongswan instances
--------------------------------------
Then, you can store configurations files for each charon instance
in the /etc/netns/<netnsname> directory, and start each instance
of charon with:
ip netns exec <netnsname> ipsec start
The pid and unix socket files will be stored in
/etc/netns/<netnsname>/run directory instead of the default /var/run.
(From the application point of view, the configuration files are
in /etc, pid and socket files are in /etc/run directories, but
they are actually stored in /etc/netns/<netnsname> and
/etc/netns/<netnsname>/run directories)
Enjoy
Best Regards,
Christophe
On 05/22/2013 10:16 PM, Eleouet Francois wrote:
Hi,
I'm actually investigating how to run multiple IPsec damons
within several network namespaces.
In the openstack project (an open source cloud computing
platform), we intend to extend virtual networks to the outside
world using IPsec. Current implentation leverages netns to
provide routing (with support of overlapping IPs) between
different projects/customers/virtual networks.
As a consequence, we have to start multiple IPsec daemons (one
within each namespace), so that they bind sockets and set-up
IPsec SA & SPD in the right netns. I managed to set up this kind
of configuration using pluto as config, pid and control socket
files location can be specified as comand line options
(using --ctlbase --ipsecdir --secretsfile --config...)
Anyway, these variables seems to be hard coded in charon (at
./configure time). As IKEv2 support is really required, I was
wondering if I missed something. Is there any way to change these
parameters on a per-process basis? Or maybe have you plan to make
charon netns aware?
Thanks in advance,
Francois Eleouet.
_______________________________________________
Users mailing list
[email protected] <mailto:[email protected]>
https://lists.strongswan.org/mailman/listinfo/users
_______________________________________________
Users mailing list
[email protected]
https://lists.strongswan.org/mailman/listinfo/users