Overview
This lecture introduces the Domain Name System (DNS), highlights the top DNS server software options, and discusses considerations for choosing and running DNS infrastructure.
DNS and Internet Functionality
- DNS (Domain Name System) translates human-friendly domain names into IP addresses for internet use.
- Without DNS, users would need to enter numeric IP addresses to access websites.
Top DNS Server Software
- BIND is a standard DNS server, cross-platform, supports advanced features, and is managed via command line or web interface.
- PowerDNS is written in C++, full-featured, robust, managed via CLI, with strong community and commercial support.
- Unbound is a high-performance, modular recursive DNS resolver, not authoritative, supports DNSSEC, and is available for Unix and Windows.
- Dnsmasq is lightweight, free software, acts as a DNS forwarder and DHCP server, easy to configure, ideal for small networks (not recommended for Windows).
- Erl-DNS is written in Erlang, gives fast responses, serves as an authoritative server, is fault-tolerant, and extendable via modules.
Considerations for Running DNS
- Running a DNS server is technically straightforward, but creating a resilient, stable DNS infrastructure is complex.
- Using managed DNS services avoids the challenges of running DNS infrastructure yourself and provides expert management.
DNSimple's DNS Infrastructure
- DNSimple uses Erl-DNS for authoritative name servers and PowerDNS for secondary DNS, both utilizing PostgreSQL for zone data.
- They operate Erl-DNS on 40 nodes in 5 global locations through an Anycast network to enhance resilience and speed.
- DNSimple employs additional technologies to improve distribution and defend against DDoS attacks.
Key Terms & Definitions
- DNS (Domain Name System) — System that converts domain names into IP addresses.
- Authoritative Name Server — Server that provides responses to queries about domains it is responsible for.
- Recursive Resolver — DNS server that queries other servers to resolve a domain name, returning the answer to the client.
- DNSSEC — DNS Security Extensions; provides authentication for DNS responses.
- Anycast — Network addressing method that routes client requests to the nearest or best-performing server in a group.
Action Items / Next Steps
- Review the key features and differences among BIND, PowerDNS, Unbound, Dnsmasq, and Erl-DNS.
- Consider which DNS server software fits various environments (e.g., small networks vs. enterprise infrastructure).
- Explore managed DNS provider options if not running your own resilient DNS setup.