Page cover image

DNS (Domain Name System) and Tailscale

DNS is a fundamental component of the internet that acts as a distributed directory service, translating human-readable domain names (like www.example.com) into machine-readable IP addresses (like 93.184.216.34).

This translation is necessary because, while domain names are easy for people to remember and use, computers rely on IP addresses to locate and communicate with each other on the internet.

Here's a detailed explanation of how DNS works

Hierarchy

The DNS is structured as a hierarchical system, with the root domain at the top, followed by top-level domains (TLDs) like .com, .org, and .net, and then subdomains and individual hostnames.

Name Servers

DNS information is stored in name servers, which are computers responsible for managing the DNS records for a specific domain. Each domain has an authoritative name server that holds the definitive information about that domain.

DNS Query

When a user types a URL into their web browser or an application requests a resource using a domain name, a DNS query is initiated. The query starts with a recursive resolver, typically provided by the user's ISP or a public DNS service like Google's 8.8.8.8.

Recursive Resolution

If the recursive resolver doesn't have the IP address cached, it starts the process of recursive resolution. It first queries one of the root name servers, which responds with the address of the TLD name server for the requested domain.

TLD and Authoritative Name Servers

The recursive resolver then queries the TLD name server, which responds with the address of the domain's authoritative name server. Finally, the recursive resolver queries the authoritative name server, which provides the IP address for the requested hostname.

Caching

To improve efficiency and reduce network traffic, DNS information is cached at various points in the process. Recursive resolvers cache the IP addresses they receive, and local devices may also cache DNS results.

Tailscale

Tailscale is a VPN service that provides each device on a network with a unique, stable IP address.

However, because IP addresses can be hard to remember, Tailscale offers DNS features to map these IP addresses to human-readable names.

The documentation outlines three ways to manage DNS for a Tailscale network:

MagicDNS

This is Tailscale's automatic DNS feature, which assigns DNS names to devices in the network without manual configuration.

DNS Settings in the Admin Console

Tailscale provides a DNS settings page in its admin console where users can configure various DNS options for their network, including:

  • Enabling or disabling MagicDNS

  • Setting up custom nameservers (restricted or global) to handle DNS queries for specific domains or all domains

  • Defining search domains, which allow users to access network resources without specifying the full domain name

Public DNS Records

If users prefer not to manage DNS via the Tailscale admin console, they can publish records on a public-facing DNS server they control.

This allows Tailscale IP addresses to be mapped to public DNS names, which can be looked up by anyone on the internet (although the IP addresses themselves are only accessible to users of the Tailscale network).

In summary, Tailscale's DNS features provide a flexible and convenient way for users to manage DNS for their Tailscale network, making it easier to access devices and resources using memorable, human-readable names rather than IP addresses.

Last updated

Was this helpful?