Skip to content

Enable MagicDNS by default (new domains to start) #988

@apenwarr

Description

@apenwarr

For sharing to be as smooth and seamless as possible, people should have MagicDNS turned on. Right now MagicDNS is in beta and disabled by default. There are three stages we can go through here:

  1. Make enabling MagicDNS a one-step instead of two-stop process.

Due to a technical limination, right now you have to first add a DNS server IP before the "Enable MagicDNS" button lights up in the admin panel. This is confusing (I had to walk someone through it today). We could instead have an interstitial that suggests one or more DNS servers to add, or lets you type in one on the spot, and then enables MagicDNS.

1b) Go through this process the first time you accept a shared node. Otherwise sharing is pretty nonintuitive.

  1. Enable MagicDNS by default for all new domains, and/or all @gmail.com domains.

It's potentially risky to turn on MagicDNS for people who are already using the system, because maybe it will break something (although it shouldn't, but hey, that's why we're doing a beta). The risk is less for people who are not already using tailscale (we can't break their production setup since they don't have one yet) and for individuals (they clearly have admin rights so they can fix their own problems even if we introduce them).

The big roadblock here is figuring out what DNS server to add. We know it will make people mad no matter what DNS server we add by default. We would really like to not do that at all by default, and fall back to each node's DHCP-provided or locally-configured DNS server.

A not-very-elegant idea would be to offer the same interstitial during signup as in (1) above. But I hate adding steps to our signup flow, blech. More elegant would be to just make it work with DHCP-provided DNS servers, but that requires a new client software release (and a bunch of debugging to make it happen).

  1. Enable MagicDNS for everyone.

We can only do this after we are very very confident that it doesn't break things. We're close, but not quite there yet.

We probably should do at least (1b) before we launch sharing.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions