in my office I have an Ubuntu workstation with a decent gaming GPU. At home, I have only a 13" MacBook Pro which is not that much a gaming machine.
Fortunately, Steam has this great feature called In Home Streaming, where you can stream games from one machine to another. But unfortunately, both have to be in the same network.
Since the gaming machine in my office is behind a firewall and does not have a public IP (I could get one, but I do not want because of security reasons), we have a VPN installed on a gateway to access our business network using IPFire. As we do not need layer 2 information over VPN, we do not have a bridged
tap device but a
tun device, which only does the layer 3 routing.
Now, the Internet is full of tutorials how to use Steam In Home streaming over a VPN connection. But: since Steam uses UDP broadcasts for service discovery and our VPN and the office network are different subnets, this does obviously not work because of our VPN setup.
At this point I decided to use ZeroTier, which can be configured as a layer 2 VPN (virtual layer 1 in ZeroTier terminology).
Now the strange things begin:
The Linux workstation and the MacBook Pro do see each other over the ZeroTier network and I can ping each other. But they do not see each other on Steam. A workmate told me, he got it working using a Windows machine. So I borrowed a Windows device, installed Steam and ZeroTier and it worked. I could see the Linux workstation and the MacBook.
So, here is my guess: the discovery process for macOS and Linux is broken. In the Steam logs I could see, that they are listening on
0.0.0.0, but I could not see on which interface they are sending the broadcast packets. I assume that they are sending the packets on the default interface, which is not the
zt0 interface set up by ZeroTier. But on Windows it seems to work and after the *nix machine sees the Windows computer, they are able to set up the connection between them.
My question is now if you have any idea how I can fix this problem. I've somewhat run out if ideas. I would be grateful for any help.
P.S.: If this is the wrong stackexchange site, please let me know. I will then repost this question on the appropriate page.
My assumption was true. I had a look into Wireshark and could clearly see, that Steam uses the first non-loopback interface. I guess a redirection of the Steam ports could solve the problem. What do you think?