I want to run some "power-hungry" ROS 2 nodes in a desktop PC located at my home with my laptop connected to my university network. I successfully set up a WireGuard VPN with Docker which is working well. This server is running on a tiny pc which is in the same local network as the desktop PC I want to use. I've tested ping, ssh (Including X11 forwarding) among so other things to both server and desktop PC. All machines involved are running Ubuntu 22.04 LTS (Server-flavour in the case of the server :) )
For those who are not familiar with ROS 2, is just a middleware to work with robots. I think that the key here is that ROS 2 uses UDP broadcasting to discover machines over the network which are running any ROS node (A.K.A. a program). In a nutshell, ROS works with "topics", any node can "publish" in a topic (Which is essentially UDP broadcast a message) as well as suscribe to that topic (Which is essentially not discard those broadcast whenever you receive one :) )
I could get it working inside the same local network, but as soon as I turn on VPN, all machines become invisible to each other in terms of ROS, because the remaining processes continues to work with no issues.
I am asking here because I suspect that the issue is about the network config and not about ROS at all, my guess is that as soon as I am able to "emulate" a local network (And machines "are not aware" of it, seamless) it will work. For example, I do not believe that UDP broadcast is that straightforward through a VPN, and I suspect that in my current setup/config this is not possible and I have to tweak it a little bit... But my knowledge about networks is currently limited. I've also tried to connect that desktop PC to the VPN with no luck.
Of course I have fully access to the server itself, so any kind of config could be applied. I am not aware of any kind of traffic or port is blocked by the ISP of the University (Eduroam btw), but as a last resort I could use my mobile connection too.
Here is the GitHub repo which I've used to set up the VPN, I mostly have all config as default like seen on the repo. Not only I have to deal with the VPN itself, but also with Docker. Actually I do not know if this is an issue at all, but just info.
How can I get my laptop to be "seamless" connected to my local network through WireGuard? Is that a really a thing?
I know that WireGuard has his own subnet, but as example, I do not know how I can access the desktop PC through its local IP Adress from my laptop outside the network (VPN On of course). Is the WireGuard server routing me there?
Can I use UDP broadcast through WireGuard? Can I bridge WireGuard to the local network?
I aware of commercial solution for this issue, like Husarnet, but I would like to manage it myself. I know I am not being very precise... Sorry for that. Any details you may need please ask.
Thanks in advance! Cheers.