tonarino/innernet

Allowing client to use multiple servers

alexlyee opened this issue · 2 comments

I share my meshnet with friends who have homelabs of their own. I don't think this is a particularly uncommon use-case, and I think it will become more common as time goes on. The best solution for us right now is Tailscale, but I'd really like to use something completely open-source instead. Besides perhaps a kind of MagicDNS substitute (which, I'm not sure-- might actually be a prerequisite for this) (#216) the single thing that is preventing people like me from being able to use innernet is that it can only use a single coordination server at a time.

There are several servers and clients which my friends wouldn't want anyone else to access, myself included. For this reason alone, we have little choice but to stick with Tailscale and their machine sharing functionality or to write our own Wireguard configurations manually (sacrificing all of the other niceties of using a meshnet provider).

If the innernet client could be configured on the device to log in to multiple coordination servers and combine the permissions they are presented from each in a manner which the user desires for that device, that would be fantastic.

csarn commented

I didn't try it out, but I would assume that innernet already supports that? "innernet install" creates a new innernet config. You can enable the systemd service as innernet@networkname.service, and the wireguard device is also named like the network name. So I would assume that you can just run a second innernet service when you get the invite link of a differently-named innernet server (your friend's).
The host file editing "DNS" of innernet should also not collide because of the network name is part of the used domain.

Just make sure your IP subnets don't collide.

Thanks @csarn for responsing, it is indeed the case! You should be able to run as many innernet interfaces as you want as long as the IP subnets don't collide.