DNS stands for domain name system, it is a protocol for working with names of systems. Human beings in general, would rather work with names rather than numbers, but computers are rather good at working with numbers. So, for example, I don’t want to have to memorize the IP address of every server I visit on the internet, I would rather memorize things like Microsoft.com, Google.com, Linkedin.com, etc. So, we need something to translate those words into IP addresses. Say for example, I could ask a DNS server, what is the IP address of blahblah.com? And it would respond to me with 93.184.216.xx. Typically, as a user we don’t have to do this manually. It will be done automatically by computer application. So, when I type in www.blahblah.com into a web browser, one of the things that goes on in the background is a DNS query, the DNS query returns this IP address, and then my computer continues the rest of the communication just using IP addresses.
DNS is commonly used on both the internet and private networks. DNS servers hold individual records which contains information about one address. Or we can say, one name that is associated with one address.
Records come in different types, and the different types have different purposes, and may contain slightly different information. There’s always a name and an IP address, sometimes there’s also a port, or a little bit additional information. There are dozens of record types, but many of them are very rarely used. One of them which is most commonly used are the A record, or single A, which will give you an IPv4 address. Then, we have four As, or sometimes called quad A, which will return an IPv6 address. MX for mail servers. SRV for a service, so this is a little different as it looks for any server that provides a particular service instead of particular server. I make that query to DNS, and DNS again returns with an IP address. And also, NS, which stands for name server, which in this instance is other DNS servers. So typically, every DNS server knows how to get to a handful of other DNS servers.
When a client makes a request to a DNS server, it is called a query. We have two primary types of queries in DNS, those are recursive and iterative. So first, recursive, a DNS client is contacting a DNS server, and asking what the IP address is for blahblah.com. If the DNS server knows the answer, it could just respond directly, but it’s impossible for single DNS server to know all of the IP addresses on the entire internet. So, the DNS server will likely have to ask another DNS server, “What is this information?” And that DNS server, could ask additional DNS servers, and that could end up with lots of traffic going on between different DNS servers. Eventually, the original server that received the request will figure out the answer and will return the answer directly to the client. So, from the client’s point of view, it asked a very simple question, it received a very simple answer, the process that went on in the background might have been very straight forward, only involving one server, or it could have involved dozens of servers. This is a recursive query. The other type of query is an iterative query. And we’ll start off with the same hypothetical scenario, DNS client makes a request to a DNS server, this time the DNS server, rather than give the full answer, is going to give what we call a referral. And the referral is the address of another DNS server, so basically DNS server one has said, “I don’t know the information you are looking for, “but I think somebody else might know it”, and here is the information on how to “contact that somebody else”. The DNS client will receive that referral, it will end the session with the first DNS server, and it will open up a new DNS query with the server it was referred to. And it will ask basically the exact same thing, “What is the IP address of blahblah.com?” DNS server number two, if it knows the information it will give the information, or else it could give another referral, it could say, “I don’t quite know, “but why don’t you go ask this other guy”. So, these are iterative queries. Iterative queries involve referrals, which points the client to a different DNS server. Now let’s look at working with a DNS server.
Learn more about Microsoft Exam