The following helps to define some of the core concepts of the Domain Name System (DNS).
Domain Name System
The Domain Name System (DNS) is a distributed system for handling the mapping of IP addresses to human readable names of resources, such as servers and devices, on the Internet or within private networks. DNS allows management of these resources to be delegated to various servers across the Internet. This improves reliability by eliminating the need for a centralized database.
A Domain Name is a unique name that typically maps to an IP address. The domain name consists of a hierarchical structure starting with the top-level-domain (TDL). The list of available TDL’s are growing, but popular TDL’s include com, net, and org as well as country codes.
The hierarchy continues with sub-domains delimited by a period at the second level, third level, and so forth. The last item of the hierarchy can be a sub-domain or resource record. The full domain name with all sub-domains and any resource records is referred to as the fully-qualified domain name (FQDN).
A zone file is human or machine editable file that contains the information about a domain name. It includes the IP address mapping through resource records for the domain as well as time to live (TTL) values.
Originally, a zone file referred specifically to the domain text file used by BIND, a popular DNS server used across the Internet. The term has since been adopted to refer to the specific configuration of a domain across various DNS servers, whether that domain exists as a text file, as a database record, or within a directory service.
Resource records (RR) are assigned to a domain name, or sub-domain, within the zone and handle the mapping of a name to an IP address or other data. Each resource record includes an expiration, or TTL, value used for caching. Here is a list of popular resource records.
- IPv4 address (A) record – Returns an IPv4 address
- IPv6 address (AAAA) record – Returns an IPv6 address
- Canonical name (CNAME) record – An alias pointing to an existing A record
- Mail exchange (MX) record – SMTP servers use the MX record to determine the destination of the domain mail server
- Service (SRV) record – Returns information regarding a defined service which allows service discovery through DNS
- Text (TXT) record – Returns a human or machine readable data element such as Sender Policy Framework records and Domain Keys for email delivery
- Name server (NS) record – Returns the FQDN of the DNS servers maintain the domain zone
- Pointer (PTR) record – Typically used for reverse DNS lookups (IP address to domain name mapping)
A resolver is a client library that queries, or requests a domain lookup from, a name server. A resolver may or may not handle caching of the results locally.
Authoritative Name Server
The authoritative name servers maintain the authoritative zone files of a particularly domain. The authoritative servers will offer the final result for any request for the domain name.
Primary Name Server
A primary name server, also referred to as the master name server, is the first name server where the zone resides. Adjustments to the zones will typically happen on the primary name server and be copied to secondary, backup name servers through a replication method.
Secondary Name Server
A secondary name server, also referred to as a slave name server, is a backup of the primary name server. It will typically receive a copy of the zones from the primary name server and be available to serve requests should the primary become inaccessible. This offers a level of redundancy to DNS.
Caching Name Server
A caching name server, which can be referred to as a recursive name server, accepts requests and sends those requests onto an authoritative name server for resolution. The caching name server then returns the results to the client and maintains a copy of those results. Subsequent requests can be returned immediately to the client without contacting the authoritative name server again and therefore results is a faster response time.
Internet Service Providers (ISP’s) and many offices maintain local caching name servers to improve speed and reduce network traffic generated by DNS lookups.
A zone transfer is a TCP request for all resources associated to a zone. A primary name server, for example, may perform a zone transfer to the secondary name servers as a form of replication.