@divsys:
If you setup a second server (Serv2), simply create a new Certificate of Authority (Ca2) and build a new Server Certificate (Crt2) from Ca2.
Any connections to Serv2 will then require a Certificate created via Ca2 and will not be valid at all for the original OpenVPN Server.
Pro's
completely separated Certificate chains
full isolation of two categories of OpenVPN clients
Con's
two certificate chains to manage
The concern I have is what happens if a mistake is made in one of the CSOs for a static client. That static client would still have a certificate with the original CA and thus would still connect to the original OpenVPN server and network. Since CSOs do not appear to be enforced, that client could get assigned the network from another CSO.
@derelict:
I have to do some testing but it appears the tunnel network on the server and the tunnel network in the CSO don't have to be related.
If you were to, say, route 10.15.20.0/23 to OpenVPN I believe you could set the tunnel network to 10.15.20.0/24 and assign CSOs out of 10.15.21.0/24 You'd just need to add an iroute in the CSO (I think). So if there was no CSO they'd get an address out of the dynamic pool and not step on any properly-configured CSOs.
I might be completely wrong though.
Can anyone else confirm if this is a valid configuration? can the "Tunnel network" setting in the OpenVPN server config be completely unrelated to the networks assigned in the CSOs? If so, I think this would be the ideal solution