> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/donnemartin/system-design-primer/llms.txt
> Use this file to discover all available pages before exploring further.

# Domain Name System (DNS)

> Understanding DNS architecture, record types, routing methods, and trade-offs

A Domain Name System (DNS) translates a domain name such as [www.example.com](http://www.example.com) to an IP address.

<img src="https://camo.githubusercontent.com/fae27d1291ed38dd120595d692eacd2505cd3a9c/687474703a2f2f692e696d6775722e636f6d2f494f794c6a34692e6a7067" alt="DNS Architecture" />

## How DNS Works

DNS is hierarchical, with a few authoritative servers at the top level. Your router or ISP provides information about which DNS server(s) to contact when doing a lookup. Lower level DNS servers cache mappings, which could become stale due to DNS propagation delays. DNS results can also be cached by your browser or OS for a certain period of time, determined by the [time to live (TTL)](https://en.wikipedia.org/wiki/Time_to_live).

## DNS Record Types

* **NS record (name server)** - Specifies the DNS servers for your domain/subdomain.
* **MX record (mail exchange)** - Specifies the mail servers for accepting messages.
* **A record (address)** - Points a name to an IP address.
* **CNAME (canonical)** - Points a name to another name or `CNAME` (example.com to [www.example.com](http://www.example.com)) or to an `A` record.

## Managed DNS Services

Services such as [CloudFlare](https://www.cloudflare.com/dns/) and [Route 53](https://aws.amazon.com/route53/) provide managed DNS services. Some DNS services can route traffic through various methods:

### Weighted Round Robin

* Prevent traffic from going to servers under maintenance
* Balance between varying cluster sizes
* A/B testing

### Latency-based Routing

Route users to the DNS server with the lowest latency.

### Geolocation-based Routing

Route users based on their geographic location.

<Accordion title="Disadvantages of DNS">
  * Accessing a DNS server introduces a slight delay, although mitigated by caching described above.
  * DNS server management could be complex and is generally managed by [governments, ISPs, and large companies](http://superuser.com/questions/472695/who-controls-the-dns-servers/472729).
  * DNS services have recently come under [DDoS attack](http://dyn.com/blog/dyn-analysis-summary-of-friday-october-21-attack/), preventing users from accessing websites such as Twitter without knowing Twitter's IP address(es).
</Accordion>

<Note>
  DNS introduces a slight delay but caching significantly mitigates this impact. Choose managed DNS services for complex routing requirements.
</Note>

## Source(s) and Further Reading

* [DNS architecture](https://technet.microsoft.com/en-us/library/dd197427\(v=ws.10\).aspx)
* [Wikipedia - Domain Name System](https://en.wikipedia.org/wiki/Domain_Name_System)
* [DNS articles](https://support.dnsimple.com/categories/dns/)
