seashell / drago

☁️ Securely connect anything with WireGuard® and manage all your networks from a single place.

Home Page:https://seashell.github.io/drago

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

support drago managing a subset of wireguard devices on a client

cameronbraid opened this issue · comments

At the moment Drago agent on the client deletes all defined wireguard devices during the reconciliation loop

So if a client, say a windows desktop user, wishes to use use Drago in addition to another VPN solution that also uses wireguard, Drago will delete their connection.

One idea could be for the client to prefix all Drago managed devices with drago_. The server won't know about the prefix.

Actually, using a config flag in the client config is probably a better idea rather than a static prefix.

This way if two different VPN Client Apps are implemented using drago they wont clobber each others devices

At the moment Drago agent on the client deletes all defined wireguard devices during the reconciliation loop

Yes, this was due to our default use case, where all wireguard devices should be managed by drago.

That said, I agree that drago's default behavior shouldn't be to take over all wireguard devices like that.

I have already merged a PR into the dev branch, implementing what @edufschmidt described here. Essentially, each wireguard device will have a name and an alias:

  • the name is a the prefix + 10 random characters and is fully managed by the drago client daemon; By default the prefix is set to "dg-", but this can be replaced by setting the interfaces_prefix parameter in the client section of the configuration file. This prefix is limited to 5 characters.
  • the alias is definied by the user in the UI/API and can be any string.

This way if two different VPN Client Apps are implemented using drago they wont clobber each others devices

I believe this is now fully supported after #23 :-)

I'm closing the issue for now, as I believe the use case is covered.