I have a setup with an openvpn server and many clients connected to it. All those clients have fixed ip addresses, derived from their certificate name.
Behind the openvpn server, I have a management server, that needs to connect to the clients (to monitor/perform some remote commands).
|-C1
|-C2
A -- VPN server -|
|-C3
|-C4
Server A can connect to C1-4 through the VPN, using fixed ips.
What I want to do is expand the setup to multiple VPN servers (to handle server outages, and spread the load), while still having a simple way for A to find any specific remote client.
|-C1
|-C2
--- VPN server 1 -|
|
A
|
--- VPN server 2 -|
|-C3
|-C4
I know how to configure the clients to pick one of the openvpn servers at random, what I don't know is how to manage ip allocation.
Should I keep a single subnet for the servers? In that case, how does A know behind which server an ip is? Should I have one subnet per openvpn server? In that case, how does A know which IP address to contact?
I've looked a bit into dynamic routing systems, but I would have to manage one route per client ip, which seems very wrong... Another option would be to keep a DNS (or DNS-like) service updated with the mapping {client-name => current ip address}, but that seems complicated, and I'm not sure all our software stack can adapt to it.
How are this kind of failover setups usually handled?