Hi,
Summary:
I am currently working on a project where we want to deploy single VPN server and allow for up to 500 client connections while pushing around 80-120 Mbps of data through few of the clients at the same time.
Has anyone done any scalability or performance testing using OpenVPN? I do not need to push high numbers but I am looking for stable idle client connections.
Test bench:
To obtain those numbers I have built the following test bench:
• 5 Client PCs
• 1 Server with 8 cores + 64GB ram
o The server has been configured to provide IP dynamically on a subnet with over 1k addresses
• 1 PC simulating multiple client connections.
o Clients would be started with a 10s delay between each new connection.
o Clients will use the same username password for the authentication
o Clients will obtain the IP dynamically from the OpenVPN server
Problem:
Now the problem I am having is how to simulate reliably 500 Client connections using the preferably single physical device and keep them stable. So far the physical Client PCs are rock solid idling over the weekend. While the simulated client connections will fail no matter if I am using 5 or 500.
The things I have tried so far:
1. Single Client PC (following
THIS Guide):
a. On a single Client PC, I have created 5/10/15/50/100 TAP adapters
b. On Client PC I have created 5/10/15/50/100 config files.
c. Now I have started client connections and left them idle.
2. Problems:
a. When I was starting a bigger amount of connections 25/50+ sometimes the newly connected clients would consume already assigned IPs
b. Almost always when left to idle, once I would RDP to the machine or start ping scans across the VPN the devices would lose connection to the server.
3. I have tried a similar setup with using Hyper-V based VMs
4. I have tried VMs with client connections using client-specific config files with static IP.
5. I have tried VMs with client connections using client-specific config files with static IP and a unique username per client.
Potential solutions:
I was wondering if using Docker OpenVPN containers would be any use to simulate this test?
In advance thanks for any advice and feedback on my setup! Sorry for the lengthy post but I didn’t want to left any details out.