# Domain Name System A Domain Name System (DNS) translates a domain name such as www.example.com to an IP address. 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). - 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) or to an A record. Services such as [CloudFlare](https://www.cloudflare.com/dns/) and [Route53](https://aws.amazon.com/route53/) provide managed DNS services. Some DNS services can route traffic through various methods: - [Weighted Round Robin](https://www.jscape.com/blog/load-balancing-algorithms) - Prevent traffic from going to servers under maintenance - Balance between varying cluster sizes - A/B testing - [Latency Based](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-latency) - [Geolocation Based](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-policy.html#routing-policy-geo) To learn more, visit the following links: - [Getting started with Domain Name System](https://github.com/donnemartin/system-design-primer#domain-name-system) [What is DNS?](https://www.cloudflare.com/learning/dns/what-is-dns/)