isle/tasks/soon/drafts/shared-dns.md

1.2 KiB

type
task

Shared DNS Server

Consider a shared dnsmasq (or maybe embedded CoreDNS) instance across all the daemon's networks.

This would have a few benefits:

  • Less processes, less problems
  • Less configuration for the user in the case of more than one network.
  • Can listen on 127.0.0.x:53, rather than on the nebula address. This allows DNS to come up before nebula, which is helpful when nebula depends on DNS.

This would break an existing use-case where a host is using the DNS server of a remote host, as the DNS server would no longer be available on the nebula address. The primary need for this at the moment is mobile, where there is not a real app yet. Once there is a real app this won't be necessary.

In the meantime this could be worked-around by allowing the daemon to configure which IP/ports the server listens on (which it would want to do anyway, I imagine). The user can configure the DNS server to listen on the nebula address manually.

This solution has the downside of potentially allowing cross-network DNS queries, which might be a big enough security issue to be worth working around even in the initial implementation of this.