Recently I went to 51.5074° N, 0.1278° W. Followed shortly by 47.3769° N, 8.5417°E. If that looks like a whole lot of gobbledygook to you don't worry. That's not how I navigate the world either. Those are the latitude and longitude coordinates for the cities commonly known as London and Zurich.

Circling this long winded metaphor back around to the topic at hand. Modern networking is based around routing information via IP addresses. These numbers 0.0.0.0-255.255.255.255 encompass nearly all of the internet today. These digital addresses allow your computer to request information from around the globe and can help create a path for that information to flow back to your computer. However there's a big difference between the machine readable numbers and the shorthand domain names which correspond to those numbers. DNS or Domain Name Scheme is the system used to make this happen.

Hopefully this article will provide you with some understanding of how this system works. I like to think of the DNS system as similar to a card catalog. When you look in a card catalog for a book, it will give you title, author, as well as location information for that book. When a DNS server receives a query, it respond by returning the IP address where that website is served from. The DNS system is designed to work based on a hierarchy model.

Where it comes from

History lesson. When the internet was still a pretty project of ARPANET, hosts were manually numbered and assigned in a single file. You could literally register your site by calling a person. One person. During business hours. In California. For obvious reasons this didn't last long.. Just about two decades.

Today the domains are controlled by registrars who maintain authority to define donations and the ownership of them. Instead of a single point of failure with one server, there are vast numbers of servers with DNS information between your keyboard and the site you access.

How it works

The moment you type a site into your browser and press enter, your computer sends out a DNS request. Usually the first server it will hit will be your router (kudos if you're using a device like a pihole or running your own home DNS). If your router doesn't have that domain cached, it will pass or forward it along to the next server. Commonly your ISP will have several servers located within a geographic area. This process can continue all the way up to the root servers of the internet until it gets a response. That response will basically say "AHa! Site faultlined.com is located at IP 1.2.3.4" this provides that location for your computer to start building a connection request to the remote server. This method allows for commonly used sites to be cached at lower levels. This also means those top level root servers are not getting absolutely hammered with traffic for day to day usage sites.

How sometimes it doesn't work

Now what about what happens when things go wrong? You get that error message that your site can't be located. This means a couple possible things. If your website server is not on a static address (dynamic dns or hosting from home) it is possible that the IP has changed and that the DNS is pointing to your old IP. It could also mean that your DNS servers are correctly configured or not forwarding requests. There are several easy to remember DNS entries that you can check your site against these days.

Bad DNS ISP

If you've ever typed in a website wrong and gotten a search page with ad results, you may be subjected to DNS redirection from your ISP.

example

This controversial practice is a way for ISPs to monetize mistakes. A couple articles about this practice illustrate how common it is. If you see this from your internet service providers DNS, I highly recommend changing your DNS servers to one of the public options below.

Public DNS

Google Public DNS

  • 8.8.8.8
  • 8.8.4.4

Cloudflare Public DNS

  • 1.1.1.1
  • 1.0.0.1

Quad9

  • 9.9.9.9

Verisign

  • 64.6.64.6
  • 64.6.65.6

This is by no means an exhaustive list, but some of the few that I have used in years past. Cloudflare and Google are the newest on the block but highly useful and pretty trusted.

Summary and Opinion

DNS is a wonderful tool which can help you control your internet connection. It can give you pretty hostnames for local networking rather than having to remember IP addresses. With pfsense or a pihole installation, it can be used to reduce the amount of bandwidth consumed by advertisements and other unwanted rich media. The best kind of networking is networking that you have some control over.