We should start by defining terms. While some of these will be familiar from other contexts, there are many terms used when talking about domain names and DNS that are not used too often.
Domain name system The domain name system, more commonly known as DNS is a defined networking system that allows us to resolve human-friendly names to unique addresses.
Domain name A domain name is the human-friendly name that we use to associate with an Internet resource. For instance, 'google.com' is a domain name. Some people will say that the 'google' portion is the domain, but we can generally refer to the combined form as the domain name.
The URL 'google.com' is associated with the servers owned by Google Inc. The domain name system allows us to reach the Google servers when we type google.com into our browsers.
IP address An IP address is what we call a network addressable location. Each IP address must be unique within its network. When we are talking about websites, this network is the entire Internet.
IPv4, the most common form of addresses, are written as four sets of numbers, each set having up to three digits, with each set separated by a dot. For example, 111.222.111.222 could be a valid IPv4 IP address. With DNS, we map a name to that address so that you do not have to remember a complicated set of numbers for each place you wish to visit on a network.
Top-level domain A top-level domain, or TLD, is the most general part of the domain. The top-level domain is the furthest portion to the right (as separated by a dot). Common top-level domains are 'com', 'net', 'org', 'gov', 'edu', and 'io'.
Top-level domains are at the top of the hierarchy in terms of domain names. Certain parties are given management control over top-level domains by ICANN (Internet Corporation for Assigned Names and Numbers). These parties can then distribute domain names under the TLD, usually through a domain registrar.
Hosts Within a domain, the domain owner can define individual hosts, which refer to separate computers or services accessible through a domain. For instance, most domain owners make their web servers accessible through the bare domain (example.com) and also through the host definition www (www.google.com).
You can have other host definitions under the general domain. You could have API access through an api host (api.example.com) or you could have ftp access by defining a host called ftp or files (ftp.example.com or files.example.com). The host names can be arbitrary as long as they are unique for the domain.
Sub domain A subject related to hosts are subdomains. DNS works in a hierarchy. TLDs can have many domains under them. For instance, the .com TLD has both 'google.com' and 'ubuntu.com' underneath it. A sub domain refers to any domain that is part of a larger domain. In this case, 'ubuntu.com' can be said to be a subdomain of 'com'. This is typically just called the domain or the 'ubuntu' portion is called a SLD, which means second level domain.
Likewise, each domain can control sub domains that are located under it. This is usually what we mean by sub domains. For instance, you could have a sub domain for the history department of your school at www.history.school.edu. The 'history' portion is a subdomain.
The difference between a host name and a sub domain is that a host defines a computer or resource, while a sub domain extends the parent domain. It is a method of subdividing the domain itself.
Whether talking about sub domains or hosts, you can begin to see that the left-most portions of a domain are the most specific. This is how DNS works: from most to least specific as you read from left-to-right.
Fully qualified domain name A fully qualified domain name, often called FQDN, is what we call an absolute domain name. Domains in the DNS system can be given relative to one another and as such, can be somewhat ambiguous. A FQDN is an absolute name that specifies its location in relation to the absolute root of the domain name system.
This means that it specifies each parent domain including the TLD. A proper FQDN ends with a dot, indicating the root of the DNS hierarchy. An example of a FQDN is 'mail.google.com.'. Sometimes software that calls for FQDN does not require the ending dot, but the trailing dot is required to conform to ICANN standards.
Name server A name server is a computer designated to translate domain names into IP addresses. These servers do most of the work in the DNS system. Since the total number of domain translations is too much for any one server, each server may redirect request to other name servers or delegate responsibility for a subset of subdomains they are responsible for.
Name servers can be authoritative, meaning that they give answers to queries about domains under their control. Otherwise, they may point to other servers, or serve cached copies of other name servers' data.
Zone file A zone file is a simple text file that contains the mappings between domain names and IP addresses. This is how the DNS system finally finds out which IP address should be contacted when a user requests a certain domain name. Zone files reside in name servers and generally define the resources available under a specific domain, or the place that one can go to get that information.
Records Within a zone file, records are kept. In its simplest form, a record is basically a single mapping between a resource and a name. These can map a domain name to an IP address, define the name servers for the domain, define the mail servers for the domain, etc.
Record types Rather than dealing with every DNS record type, at this point we will detail the most common types of record that we deal with in our roles in IHG.
- 'A' record
An A record maps a domain name to the IP address (IPv4) of the computer hosting the domain. Simply put, an A record is used to find the IP address of a computer connected to the Internet from a name. For example, to access the DNSimple website, you enter www.dnsimple.com. At the name server there is an A record that points to the IP address 208.93.64.253. This means that a request from your browser to www.dnsimple.com is directed to the server with IP address 208.93.64.253.
- 'CNAME' record
CNAME stands for Canonical Name. CNAME records can be used to alias one name to another. For example, if you have a server where you keep all of your documents online, it might normally be accessed through docs.example.com. You may also want to access it through documents.example.com. One way to make this possible is to add a CNAME record that points documents.example.com to docs.example.com. When someone visits documents.example.com they will see the exact same content as docs.example.com.
- 'MX' records
MX stands for Mail eXchange. MX Records tell email delivery agents where they should deliver your email. You can have many MX records for a domain, providing a way to have redundancy and ensure that email will always be delivered. For example, if a customer has the SMTP store/forward service with us, their MX record would be 'in.mx.ifl.net' which direct all mail services on the internet to deliver messages to our servers.
- 'SPF' records
SPF stands for Sender Policy Framework. SPF records are used to indicate to mail exchanges which hosts are authorised to send mail for a domain. It is defined in RFC 4408 and clarified by RFC 7208. For example, to authorise a domain for sending outbound via the RM core SMTP servers, the SPF record would be 'v=spf1 include:rmplc.net -all'.
- 'PTR' records
PTR stands for Pointer. PTR records are used to map a network interface (IP) to a host name. These are primarily used for reverse DNS lookups. For example, to do a reverse lookup of the IP address '8.8.4.4' the PTR record for the domain name 4.4.8.8.in-addr.arpa would be looked up and found to point to 'google-public-dns-b.google.com'. |