I have a network set up as in the diagram
http://postimg.org/image/qyvaftrkt/. Almost all the OpenVPN clients are running Windows. We've got two offices, connected by a WAN link, each with its own internal IP network, its own DMZ, and its own Internet connection (with different ISPs). There's an OpenVPN server on each DMZ.
Currently, users connect to both OpenVPN servers at the same time, but they have to manually choose a route by specifying the appropriate IP address. For instance, let's say they want to connect to a computer on the internal network, at address 192.168.2.100. To route through the first VPN server, they'd open a connection, from their computer at home, to IP address 192.168.3.100. (The NATting is handled by the VPN server.) If they want to connect to the same address (192.168.2.100), routing through the second VPN server, they'd open a connection to 192.168.4.100. Of course, one of the problems with this setup is that, if the VPN server (or the Internet connection, or the firewall, etc.) through which they're routing fails, they lose all their existing connections.
For obvious reasons, I'd like to make this easier and more robust. Is it possible to set everything up so that: 1) they can just connect to the internal IP (192.168.2.100), 2) there's still a firewall between them and our internal network, and 3) the routing is automatic, and will switch over to the working connection if one of them fails, without the user even knowing?