Tuesday, March 31, 2020

Faking the same LAN over the Internet

In the period of The Great Isolation, a friend and I wish to play
a game that has LAN-only multiplayer. We, however, live in different
locations and, more importantly, different LANs. An often cited
approach to solving this is to set up a VPN and connect the two
devices to it. This requires that both devices run a VPN client
that connects to the third device that manages the connection. And
then, hey presto! You have a "LAN".

The complication I have found is that we are both using a Nintendo
Switch (NinSw) and this device comes without a VPN client. Initially,
I thought it would be possible to use a VPN client on a computer
which was wired in over Ethernet and then share the wireless to the
NinSw. This setup would be mirrored on the other side. The diagram
below tries to make this clearer. Search for "Where my thinking"
to skip over this.


|````````````|
| | .________.
| | ) ) ) |:| |:|
|............| `========'
.---/::::::::::::::\ [NinSw]
| [laptop]
|
[VPN]
|
| \ /
| _\______/_
`-----| ... |----[uplink]----// mirrored on the other side
``````````
[gateway]


Where my thinking comes stuck is how the wired connection is shared
to the NinSw over wireless. The laptop, running MacOS in the case
of my friend, will setup its own NAT to isolate the wireless
connections from the uplink. The NinSw is then unable to receive
an IP from the VPN and therefore not appear as part of the same
network.

Ignoring the particular case of how "Internet Connection Sharing"
works on MacOS, would it be possible to setup some "VPN bridge"
(yes, I made that up) on OpenBSD where it handles the details of
the VPN connection but forwards the IP address to another device?

If anyone has more insight into this and can point me in the right
direction I would be grateful. Similarly if there's been a mistake
in my thinking please point it out as that could help too.


--
Chris Rawnsley

P.S. the game in question is Civilization 6 and, yes, they very
annoyingly restricted it to LAN-only multiplayer...

No comments:

Post a Comment