On 5/24/19 4:48 PM, Noel Kuntze wrote:
Hello Ben,
Any IPsec related virtual interface doesn't have any binding to any physical
interface.
You need to steer the packets using routing rules and routing tables in either
case
(whether you use virtual interfaces or not). The task only gets harder with
virtual interfaces.
When I search for strongswan and vrf, there are tantalizing hints that it can
be made to work
with recent kernels and strongswan but I don't know the details of how to set
it up or what
the limitations are.
A while back, David Ahern (VRF fellow) had this to say:
"Looking at the 'ip xfrm' based scripts, you need to add 'sel dev ${VRF}'
to the state. eg.,
VRF="sel dev blue"
ip xfrm state add src ${REMIP} dst ${MYIP} \
proto esp spi 0x02122b77 reqid 0 mode tunnel \
replay-window 4 replay-oseq 0x4 \
auth-trunc 'hmac(md5)' 0xd94fcfea65fddf21dc6e0d24a0253508 96 \
enc 'cbc(des3_ede)' 0xfc46c20f8048be9725930ff3fb07ac2a91f0347dffeacf62 \
${VRF}
"
I don't know what this is really in reference to, but evidently you can bind
the ipsec stuff to a vrf, is how I read this.
You already realized you need source based routing.
For your scenario to work, you need to disable the automatic route installation
of strongSwan.
Then you can just use normal routing rules and tables to steer the traffic over
the right link.
That sounds reasonable, but I think there is more to it than that. I could be
wrong, that
is why I'm asking for help.
Thanks,
Ben
Kind regards
Noel
Am 25.05.19 um 01:43 schrieb Ben Greear:
On 5/24/19 4:29 PM, Noel Kuntze wrote:
Hello Ben,
Why do you insist on using interfaces? You don't need any.
One thing we do is virtual wifi stations, so we want to be able to run a vpn
over each
virtual wifi station, for instance.
It can matter to the device under test whether the vpn comes from one wifi peer
or
another, so we really do need one vpn per interface.
Thanks,
Ben
Kind regards
Noel
Am 25.05.19 um 01:02 schrieb Ben Greear:
On 5/24/19 3:56 PM, Noel Kuntze wrote:
Hello Ben,
The purpose is to load test a VPN server
with a small number of physical client machines.
If the VPN server supports several CHILD_SAs and arbitrary subnets on the
remote side, you can just run several CHILD_SAs and negotiate, for example,
a CHILD_SA per client machine IP. So you'd have tunnels like ...
0.0.0.0/0 == 192.168.35.10
0.0.0.0/0 == 192.168.35.11
0.0.0.0/0 == 192.168.35.12
That will enable the usage of RSS and RPS on both ends of the tunnels, so the
IPsec SAs
can be load balanced over several CPU cores. Keep in mind though that your wire
speed
is likely not high enough to saturate a modern computer or anything even
remotely properly configured.
You can only get them to their knees by the sheer number of simultaneously
actively used IPsec SAs
by virtue of making the policy lookup more expensive and making sure that the
informations for the
used IPsec SAs don't fit into the CPU caches.
Kind regards
Noel Kuntze
Hello,
I am not so concerned with performance at this point, just functionality.
So, in the 'real' world, if I have two laptops in the same office connect
through VPN,
there will be some tunnel set up between each of them. From the perspective of
the
VPN server, I want to duplicate that but by having two interfaces on one
machine take
the place of the two laptops.
Thanks,
Ben
Am 24.05.19 um 21:46 schrieb Ben Greear:
Hello,
I'd like to be able to set up multiple (virtual) network interfaces on a single
Linux machine and have them connect to a VPN server. The VPN server should see
each connection as a unique instance. The purpose is to load test a VPN server
with a small number of physical client machines.
I know how to set up source-based routing tables and VRFs, and other general
networking things...
But, I do not know much at all about ipsec and VPNs, so I'd be happy to pay
for someone to help me out with this part of things.
Thanks,
Ben
--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com