I need a bit more info to be able to do this. I've included a picture below of one possible way to solve my problem.
The goal is for the server to be able to access each of the clients on separate IP addresses. To be clear, it's the server initiating the connection to the clients, not the clients.
Luckily or unluckily, each network connecting in is identical. Let's say they all have 3 devices and the IP addresses are always the same, 192.168.1.10, .11, an .12. I can't change this.
My idea is to have the OpenVPN client perform NAT and map a 10.8.x.y address to each of the 192.168.1.y devices.
see this image here:
http://grant.org/mgrant/pub_images/nat-subnets.png
I can't easily, in advance, create a client-config-directory file for each client because I don't know them all in advance. They are logging in with certificates which are created on a different machine for security reasons.
What I imagine I can do is use a learn-address script to set up and push the routing/natting out to the OpenVPN client. I could use such a script to create a client-config-directory file so the next time the client connects they get the same subnet sort of like ipp.txt.
But in order to do this, I would need to push some commands out to the OpenVPN Client in the learn-address script. Is that possible and if so, how?
Is there some easier way to do this?