Domain Name Servers (DNS) might be considered the single most important aspect of the Internet, yet many people don’t know what they are and those that do probably don’t know how they work. In the end, this ends up being a good thing. But over the last week or so, they’ve unknowingly been the bane of my internship.
Domain Name Servers really serve a single purpose: they take a domain name (such as AndrewFerguson.net) and return an IP address (such as 22.214.171.124). In reality, there are many DNS which talk with each other and share information and (usually) ensure that you get to the website you’re trying to reach.
But what happens if a DNS goes down? Or actually: What happens if the person responsible for add the names of a half dozen DNS to your TCP/IP settings fails to do this? Short answer is: You can’t do any work. Long answer is: you spend days trying to figure out why you don’t have permissions to access a network share despite the fact that permissions aren’t the issue.
So yea, all fixed now. Today was probably one of my most productive days yet. I started playing around with some code to get a proof-of-concept design for DeIcer and made some great headway on that.
Java’s so weird.
In case you really want to learn more about DNS, check out HowStuffWorks and Wikipedia.