The Domain Name System (DNS) is defined by Wikipedia as:
"a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities. Most prominently, it translates easily memorized domain names to the numerical IP addresses needed for the purpose of locating computer services and devices worldwide. By providing a worldwide, distributed keyword-based redirection service, the Domain Name System is an essential component of the functionality of the Internet."
Now the question beckons: What exactly does that mean to us in non-tech speak terms?
Well, what it means is that we can do things on the internet that we take for granted without having to stress about knowing the exact IP address of a specific resource.
- When we want to go to Google, we can type in google.com instead of having to type in 18.104.22.168, and the DNS will know where to direct the traffic.
- If we want to send an email to your friend at Hotmail, we can type in email@example.com into Microsoft Outlook as opposed to firstname.lastname@example.org. The system based on the DNS settings will know exactly where to deliver the message so that someone else does not get your email.
In short, the DNS is a roadmap of names that are bound to unique numbers, that direct everything from our web browsers, webmail, and mail clients as to where to go to access websites, send or receive email, or just simply to get connected.
The DNS is everything you don't see on the Internet.
Like a watch, the DNS is made up of quite a number of moving parts; some simple in operation, others of which are considerably more complex. I will cover a few of them below:
1) A Record
This is the simplest record there is in the DNS, as it binds a specific domain or subdomain record to an IP address. The numbers may be the same or they may be different, depending on which server (dedicated computer) is handling which resource or task. Depending on the size of the website (eBay for example), there may be multiple records of the same layout going to different IP addresses. This is called load balancing and is used to alleviate pressure on a specific server by delegating responsibility for the same thing over more than one server.
Here are how the A records for eBay.com would be seen behind the scenes:
Ebay.com --------- 22.214.171.124
www.ebay.com -------- 126.96.36.199
motors.ebay.com ------ 188.8.131.52
sports.ebay.com ------ 184.108.40.206
Of course this is just a sample of the records, in reality there would be much more of these depending on what else eBay had to offer (which is quite a lot).
2) AAAA record
This is the same as the above, but uses 16 sets of numbers (4 sections of 4 hexidecimal (0 through F) numbers apiece) separated by periods instead of 12, for the implementation of IP version 6 (done by the US Government to allow more IP addresses to be generated so that the system does not reach critical mass).
An example of this would be as follows:
eBay.ca ----------- F0C3:E4B5:A6D2:9147
3) CNAME (Canonical name) record
This works much like an A record, but instead of binding to an IP address directly, it binds to a previously defined A record on another server. For example, if you have email with Webnames.ca, mail.yourdomainname.extension is bound to mail.webnames.ca. Why? This is done to advise the DNS that if you need to check your webmail or connect in Outlook, you will be connecting to our email servers. On our servers the programming has been set to know that, if you are accessing via webmail, to bring up the login screen to allow you to login. If you are connecting via Outlook, it knows to ask for your username and password in order to them get you connected and download your email.
Here is how the CNAME records would be seen behind the scenes:
Mail.yourdomainname.extension ----- mail.webnames.ca
Shop.yourdomainname.extension --- xx.xx.servertrust.com (this would be for shopping sites with Volusion)
Again, this is only a sample, as there may be many more of these.
4) MX (Mail Exchange) record
This record determines where email sent to a specific domain is delivered (specifically to which machine). This can be another A record defined for the same domain or another location. For example, if you have email with Webnames.ca, your MX record would read as follows:
Yourdomainname.extension ------- smtp.webnames.ca
What the above states is that for any email sent to this domain name, route that traffic to smtp.webnames.ca. From there the server will then sort out the incoming mail and deliver the email destined for you while filtering out bad emails. In the case of email that is handled by a specific company, they may have the following:
A mail.domainname.extension -------- 192.168.0.3
MX domainname.extension --------- mail.domainname.extension
What the above says is that for any email for domainname.extension, route it to mail.domainname.extension, and in turn the location of mail.domainname.extension is 192.168.0.3. Once the email traffic is directed, then the receiving machine can sort it based on good email (from friends) and bad email from spammers. It does this based on a spam filter which has been loaded with URL's to be wary of, keywords to sort out, and IP addresses to block from sending.
5) PTR record
This type of DNS record is set up by the handler of the IP address (usually a telecommunications company) to point back to the service or resource that is pointing to it. This is done for the purpose of reverse DNS lookups so that the record can be 100% verified on the Internet.
6) TXT (Text) records
This is specifically used for the purpose of setting records for other servers or services such as Office 365 or Google Analytics to verify or that other servers may be interested in on an ongoing basis, such as the following:
7) Sender Policy Framework (SPF) records
These indicate to the receiving server that if a certain criterion is not met by a message claiming to be from their domain name, to reject the message instead of delivering it, thus cutting down on spam.
8) DKIM record
Similar to a SPF record, this is used as a decoder by the receiving server to verify that messages sent from the domain are genuine, as no other messages would have that key to reference against (including messages that are spoofed as being from a domain that are really not). It is another way to cut down on spam.
A Series of Tubes
As you can see above, there is quite a large roadmap supplied when talking about DNS and quite a number of things happening behind the scenes in order to perform actions that we take for granted in our everyday use of the Internet and email.
When Senator Ted Stevens said back in 2006 that the Internet was "a series of tubes" (albeit with quite a number of misnomers bundled in with it in his speech, which is readily available on mp3 everywhere), he was not very far off. If we were to look at something as simple as surfing to our favorite internet site (I'll borrow the term here), it is easy to see it as "I type in it and I'm there". Behind the scenes however, DNS makes sense of your request and routes you to the place where that request can be filled, while at the same time handling emails from another user and helping to upload cat pictures to a website from a third-user, and so on.
DNS is what takes all internet traffic (which we will simplify into a raging free-flowing river) and simplifies it so that everything in the end makes it to its final destination (the faucet in your home), and it does it 24 hours a day in a perfect working system. In a non-working system however, there are people like system administrators, IT people, technical support folks, and things such as error and bounce back messages to let everyone know something is broken and needs to be fixed, and why it is broken so in the end the issue does get addressed and fixed for the continued use and enjoyment of us all.
By Quinn Donovan; Customer Support