Hi All!
I had been using a very simple OpenVPN installation, but with my little one growing up, I need something more complex. I'd very much like to hear your ideas. Let's say I am a fairly savvy Linux user, having operated some servers and good at command line and config files. Thanks in advance!
I have a bunch of clients in a VPN where they all use DNS and filtering/proxy services on a VPS box of mine in the cloud
when they are away from home. This is for some control over where my daughter (3 years old) ends up on the Internet in her (limited!) tablet time with my wife's iPad. This VPS box also runs my OpenVPN server so my "safety net" works even when there's a power outage at home.
These clients also connect to some services I run at home, like automated backups and an Owncloud installation. My servers at home are also clients to this VPN of mine.
What I'm trying to achieve is, without individual configuration, having all these clients connect to each other directly only when they are home. Let me use some rudimentary drawing to explain:
1. Every client should "see" each other. This is simple VPN.
2. When host C wants to access host A, their communication should not leave the home network.
3. Host C has to use the DNS and proxy service on host A.
4. Everything must be seamless. Hosts D and E should behave like host C does when they are home.
I thought about running another OpenVPN instance on host A and setting two server lines in the clients' config files; first for OpenVPN@Host-A, then for host B. So when the clients were in home LAN, they would connect to the OpenVPN service on host A. When they are away, they would first try to connect to host A, inevitably failing that, they would connect to host B. But I couldn't figure out how to set IP addresses for them.