Updates: let's assume the locations are separated, so WAN transversal is a must, and no physical networking is possible.
I want to be able to connect two machine's networks together using a software approach, as opposed to a network router VPN approach. What I don't need is for the rest of each network to be able to see the other one. What I do need is for client A to be able to see client B's network, and vice versa.
I find images help. I have some diagrams to try and explain further. Let's say we have two networks. In each network we have three servers, a router, and a client machine.
Now, I don't need any of the left servers to be able to communicate with any of the right servers. I simply need client 1 to be able to access the right servers via IP, like so:
Likewise, I need client 2 to be able to access the left servers via IP, like so:
Now, considering that they could possibly have the same subnet, is there a way that you can get around this? Such as giving the VPN tunnel an IP like 172.X.X.X, and then translating that? 172.0.0.1 -> 192.168.1.1 on the other end?
On the other hand, if the IP subnets didn't have a clash, such as the right hand network using 192.168.2.X, would it be possible to link up the two clients and be able to access IPs as they are? i.e. client 1 (192.168.1.100) connecting to server F (192.168.2.4)?
If either of these situations are possible, how would you implement them? I'm thinking of X-platform, so windows, linux, osx. Something like an open protocol with numerous clients would be best I'd bet.
I hope this comes across as a legible question. I'm a developer, so I'm sure there are many holes in my networking knowledge where really, really obvious stuff isn't occuring to me. Please call me out on anything I'm missing, and if you have anything to add, please do! I appreciate all feedback!
Thanks a bunch for reading!