DNS Terminologies and Definitions

DNS terminology is complex and confusing, so much so that not just one, but two RFC's have been written just trying to clear up what each term means (RFC 8499 and RFC 7719). Below are the terms:

1. FQDN - FQDN stands for Fully Qualified Domain Name, which is the complete domain name for a host on the Internet. The FQDN has two parts: the hostname, and the domain name. e.g. in foo.example.com, foo is the hostname, and example.com is the domain name.

2. Client / Stub Resolver: A DNS client asks simple questions like: what is the IPv4 address of www.google.com? It is unable to follow referrals given by other name servers to track down answers on its own and has to rely on a full-fledged DNS server to chase down the answer. The term "stub resolver" refers to the piece of software code that sends the simple DNS question, usually built-in as part of Operating System. For example, systems such as Windows and Linux come with build-in stub resolvers that provide name lookup for all components on the OS.

3. Recursion / Recursive Query: A recursive name query is typically initiated by a client to a DNS server that supports recursion. The recursive query basically says: "I would like to know the answer to this question. And if you don't know the answer, please ask others until you've found the answer". All clients ask recursive queries by default, since clients are usually not capable of chasing down the answers on their own, sometimes also called "walking the tree". 

4. Iteration / Iterative Query: An iterative name query is typically initiated by DNS servers to other DNS servers, in pursue to finding the answer. A key difference between iteration and recursioni is that iterative queries should have the ability to follow referrals, i.e. track down the answer.

5. Recursive Name Server / Recursive Resolver: A recursive name server or recursive resolver accepts recursive queries and fulfills them by executing iterative queries in the background to track down answers. As a result of fulfilling recursive queries, recursive name servers build up a rich cache of answers over time, thus they are also known as caching name servers.

6. Authoritative Name Server: An authoritative name server is the authoritative asource for answers. It can only answer what it knows from it's own database or file.

7. Zone / Authoritative Data: Data such as resource records and zones are stored on Authoritative Name Server, sometimes in a database, or sometimes as flat text files.

Basic DNS Components

We can now break down some of the parts from Figure above, and describe them using the terms we just learned: the computer that makes the original query for the FQDN foo.example.com is the stub resolver (or client). Stub resolver sends recursive query to the DNS server in the middle known as recursive name server or recursive resolver. The Recursive resolver tracks communicates with authoritative name servers using iterative queries. The authoritative servers respond with answers with zone data, and eventually the recursive resolver sends the answer back to the client.

DNS Hierarchical Names


Popular posts from this blog

Specifying SSH port in Ansible Inventory

Ansible-Playbook to display output of multiple show commands (using stdout_lines with Loop)

Filtering Routes in BGP using Route-maps and Prefix-list

Ansible Playbook for Network OS Upgrade with pre and post checks

Bypassing Proxy Server in Google Chrome

VMware NSX Traffic Flow — East-West & North-South

Export or Backup Azure Network Security Groups into CSV using PowerShell

Ansible-playbook for backing up running config of Cisco IOS