DNS

Why
DNS is important because it allows us to not have to remember IP addresses to find a particular web site or machine

What
DNS is an application layer protocol that translate domain names into IP addresses

Protocol

 * DNS Protocol

Goals

 * No Naming Conflicts
 * Scalable
 * Indirection provided. Therefore, we can change the IP addresses underneath the domain name. Also, we can have an address map to multiple IPs for load balancing. Also, we can have multiple domain names map to a single IP, aliases
 * Distributed, Autonomous Administration
 * Highly Available
 * Fast Lookups
 * DNS Caching

How
DNS is implemented using the following server hierarchy When we actually make a DNS request, we send requests in this order. We have a graphic to the right to demonstrate this as well
 * 1) Root Level. The location of this server is hardcoded into other servers
 * 2) TLD. Top Level Domain. These are the .com, .net, etc. These servers are professionally managed
 * 3) Bottom Level. Authoratative DNS server. These contain the actual name to address mapping and are managed by corresponding administrative authority
 * 1) Root Level to find least specific information. This is the TLD.
 * 2) We ask the TLD where to look for the bottom level authoratative DNS server
 * 3) We keep asking with more specificity until we find the correct IP that matches the domain name

Iterative vs Recursive Query

 * Recursive query is asking the DNS server to handle the lookup for you
 * Iterative query is asking the DNS server for which server to query next