DNS Encyclopedia (Work in Progress)
The goal of this DNS encyclopedia is to explain all common DNS concepts within 500 words maximum per topic.
A (Address) Record
The Address record contains a IPv4 quad-four Internet address
usually the host address corresponding to the domain name.
If the host has multiple addresses, multiple A records can be used for
each (for a Round-robin effect).
AAAA (IPv6) Record
The AAAA record contains a single IPv6 address which is the host address
for the domain name.
Commonly, the field may contain eight 16-bit hexadecimal numbers
separated by colons.
Additional Section
The section in the response which may provide resource records for additional information related to records in other sections.
An example is glue records (address records in additional section for
names in the Authority Section).
A resolver or client may choose to ignore the additional section. A resolver or client should ignore unrelated data.
A count of the records in the Additional Section is specified in the DNS header.
Answer
the TTL and resource record data provided for the query. Note that the response includes the original query too (domain name and type).
Apex
the SOA and NS records are located at the apex, the top-level of a zone. (Commonly the "@" a-sign is used to represent the apex domain name or current origin in a zone file.)
Authoritative
The server that is responsible to provide the data. The data that came from a responsible server. (The flag that indicates the answer was authoritative.)
Authority section
response section to provide SOA record for no answer responses or provide the referral NS delegations to query next.
AXFR
An AXFR is a full zone transfer to copy DNS zone data from another
authoritative DNS server.
It always uses TCP instead of UDP.
An AXFR is part of the DNS protocol. An alternative transfer could
be done outside of DNS, such as with Rsync.
Partial transfers can be done using IXFR.
Bailiwick
the scope of authority, responses should only be trusted when come from server with its bailiwick.
For example. a response for a "www.example.COM" query should not contain
"example.ORG" records.
Caching
Stores the record up to the time-to-live time. The resolver doesn't have to lookup the same query frequently for long TTLs.
ccTLD
country-code TLD, like DE and NZ.
Often ccTLD domain names are assigned under an additional second level
domain, like tx.us and co.uk.
Class
Defines the schema for the record types and resource record data. For common DNS it is the Internet (IN) class.
CNAME
The Canonical Name or alias resource record type. Its target (resource record data) is the new domain name to lookup using the original resource record type in the new query.
With a CNAME, a domain name points to another domain name to get its value.
This may be used for management purposes to reduce changes or to point
multiple domain names to the same address, for example.
A common example is "www.example.org." CNAME which points to
"example.org." which has an A (address) record.
CNAMEs can point to domain names that are also CNAMEs,
but following the chain of CNAMEs is restricted by resolvers
(such as a fifteen CNAME chained limit).
A CNAME cannot be at an apex (which requires a SOA and NS record)
as it cannot be at same name as another record type other than RRSIG.
Delegation
The zone uses a NS (name server) record to identify what authoritative server is next responsible for the domain. Basically an answer says "look here instead". This is provided in the authority section.
DNSKEY
a resource record type containing the public part of a cryptographic key used to verify a digital signature record (RRSIG).
The DNSKEY also has a RRSIG signature which was made by another
cryptographic key, such as managed by a parent domain.
Resolvers using DNSSEC use DNSKEY records (or DS
records) for the "." dot (root domain)
to begin a chain of trust.
DNSSEC
DNSSEC is a security protocol built on-top of and compatible with DNS.
It offers additional records included with DNS responses to provide
a chain of trust and signatures to help validate where the data
comes from and wasn't modified.
Domain
is a subtree of the DNS which defines who is responsible and lists all its immediate delegated subdomains or non-delegated leaf names.
In ordinary or familiar use, a "domain" is the name in question, such as a name
of a website.
Domain name
is either the name at the apex or for a domain or a complete fully qualified domain name (FQDN). Normally, for example for "www.example.org" the domain name is just "example.org."
The maximum domain name length is 255 characters.
DoS, Denial of Service
DNS via UDP can be used with spoofed sender address with queries that send back large responses to a targeted device to cause a Denial of Service.
Dot
Single period as the domain name is the top-level root-domain. Domain names end with a dot.
Commonly, domain names that don't end with a trailing
period in DNS zone files will get a domain name appended to it.
Dynamic update
Method to make updates to a DNS zone.
An example use case of a dynamic update is to change
a domain name's A address record to reflect a server's new IP address.
Dynamic Updates are also called RFC2136 DNS updates based on the RFC
that defines the protocol.
Alternative methods include web-based services which receive the
changes over HTTPS and then reload the authoritative DNS server with
the new information.
Various companies provide free or commercial
dynamic DNS services.
EDNS
Extension mechanisms for DNS helps provide further parameters and features to DNS.
EDNS client subnet (ECS)
A client can provide an IP address subnet which is sent to a server which may use it to provide custom information based on that, such as geo-located content.
Empty non-terminal
a domain name without a resource record, but has a subdomain with a resource record. These are the in-between labels that don't have any records associated with them.
Expire timer
If a SOA polling failed, keep trying until this amount of time. (Contained in SOA record.) After it expires, do not serve the zone data anymore.
Flags
Flas are attributes (or bits) that identify the query or what the iterative client can accept; or the attributes sent back from the responding server. Such as authoritative answer (AA bit), truncated, recursion desired bit, and recursion available.
Forwarder
Accepts a query and asks a recursive server to provide a response which the forwarder returns back to its client.
FQDN
The fully qualified domain name includes the hostname and the domain name. It is the complete and usually unique name.
Glue
The address record provided in the additional section which is associated with a NS (name server) delegation record. Allows providing an address to find the next server in a single transaction.
gTLD
Generic TLD, such as AERO, BANK, CLUB, FURNITURE, and WORK.
Header
The DNS packet header for a query and response contains fixed fields for the
ID number,
QR query flag,
Opcode,
AA authoritive answer flag,
TC truncated flag,
RD recursion desired flag,
recursion available flag,
Z unused (reserved for future use),
rcode return value code,
QDCOUNT count of records in the question (query) section,
ANCOUNT count of records in the response answer section,
NSCOUNT count of records in the response authority records section,
and ARCOUNT count of records in the additional records section.
ID
16-bit transaction identifier number provided in the query and returned in the response to help match it with the original question. Answers can be spoofed.
Inverse queries
obsolete feature to get the query by providing its value; this is not reverse lookups which are normal in-addr.arpa PTR lookups.
Iterative query
The client chases down the answer, one query at a time.
This is a non-recursing query that may provide a partial answer
or the answer refers the client to name servers that may have the information.
in-addr.arpa domain
The in-addr.arpa domain managed by IANA provides NS delegations
for IP addresses listed in reverse octet order.
It is used to do reverse lookups of IP addresses to find names via PTR records.
For example, the IP address 192.0.32.8 is represented as
8.32.0.192.in-addr.arpa. which contains a PTR record of www.iana.org.
Inverse queries
An optional and obsolete feature to map resource records back to
domain names.
These are not reverse lookups which are normal in-addr.arpa PTR lookups.
IXFR
IXFR is the incremental zone transfer which only transfers changed records.
A full transfer is done using AXFR.
Label
A label is a single part of a domain name between the periods;
for example, www.example.net, has three labels.
The maximum label length is 63 characters.
Lame delegation
Delegated name servers aren't really available or provide non-authoritative data.
Lameness can also be caused by other mistakes in defining NS records.
LDH
Letters, digits, hyphens, but note that the DNS does not restrict labels to LDH.
Formerly, domain name labels (separated by periods) could only be made from
letters, digits, and hyphens.
Master
also known as the "primary" server is the main authoritative server where secondaries may poll and do zone transfers from.
Master file
The plain text zone file loaded by the authoritative server.
MX (mail exchange)
Records that provide names of mail servers which will handle incoming email for a domain. The records have a priority number where lower numbers are tried first.
Negative answers
Negative answers are failed DNS lookups.
Failures include NXDOMAIN and SERVFAIL.,
Failed DNS lookups where the name exist
but not for the queried type will return a NOERROR status with
a zero answers count.
Negative cache TTL
Last SOA field, previously called the "minimum" used to set the TTL for caching that no answer was authoritatively provided. So a resolver doesn't repeated send queries for a NXDOMAIN, for example.
NOTIFY
An authoritative server tells a secondary server that there is an updated zone to check for.
The DNS NOTIFY may be used to trigger a zone transfer.
NS Record
The NS record defines the authoritative nameservers for a domain.
The nameserver record creates a subzone or delegation by defining multiple name servers that are responsible for the domain. (The NS is in the parent zone and in the its own zone.)
When a resolver asks an authoritative server about a domain it is a parent
of, that authoritative server will respond with zero answer count,
with the NS records in the Authority Section.
If it helps, it may provide the address for those NS records
in the Additional Section (as glue).
NXDOMAIN
Status result for no such domain when there is no domain name (the domain name doesn't exist) regardless of its type. Note if the domain name exists but with a different type, then there will be a "No error" response with no answer instead.
Poison
DNS server accepts zone updates from a malicious source, or DNS resolver accepts DNS answer from non-authoritative source.
An example of DNS poisoning is when a DNS caching resolver is triggered
to do a query and an unrelated third-party software attempts to feed
in a legitimate answer (to be cached or reused) before the real
nameserver's answer is received.
PTR (pointer)
The pointer record is used to map an IP address, written in reverse IP octet order, and commonly within the IN-ADDR.ARPA. domain, to provide the name for that address. Used for reverse name mapping.
Qname
the query name is the domain name in the question.
Query
client asking a DNS server a question with a domain name and the record type (and class).
Also called a "lookup".
Common tools for manually doing queries and seeing results are nslookup, dig, and host.
Record
The record contains the domain name, the TTL, the record type, and the resource record data. There may be multiple record types and/or multiple (even different) datas for the same domain name.
Record type
The data type of a resource record which identifies
the characteristics of the resource record value.
A domain name may have multiple types (accept for a CNAME limitation).
Different types may represent different amounts of data,
for example: AAAA type contains a single IPv6 address;
a MX type contains a priority number and a mail server hostname;
and a TXT type can contain up to 65535 characters of multiple arbitrary strings.
Recursive service
A server that will do multiple iterative queries on behalf of a client
to chase down and provide a final answer.
Referral
a response without answer section but includes at least one child
authoritative name server (that is closer to finding the answer)
and optionally an additional section has the glue (IP for them).
Refresh timer
The wait before asking master for current SOA (to get serial number to see if should do a zone transfer). (Contained in SOA record.)
Reflection attack
Over UDP, an attacker forges their source IP address so that the nameserver will respond to an unrelated system. Many small legitimate queries can result in many large responses resulting in an amplification attack on the victim potentially causing a denial of service.
This may be done from many attackers all spoofing the same source IP address for a Distributed Denial of Service (DDoS).
Response Rate Limiting (RRL) provides some techniques to help lower the reflection attacks while allowing some legitimate traffic to still work.
Registry
The organization which operates a top-level domain. (For example, Verisign is the operator or registry for COM.)
Registrar
The company that manages registrations and fees for domain names (by registrants), such as Godaddy and Joker.
Resource record data (rrdata)
The data associated with a record type for a domain name.
The format, number of fields, allowed text in the fields
— or the presentation of the data depends on the type.
For example, an A address record will only accept a valid IPv6 address.
Response Rate Limiting (RRL)
As a workaround for UDP being abused for denial of service reflection attacks, Response Rate Limiting will periodically respond with a Truncated (TC) response or drop some responses entirely, such at 200 queries-per-second for the same IP address, network, or zone name, etc. Since not all traffic is stopped, some valid traffic may still work.
Retry timer
Try polling again for SOA record after this amount of time after a refresh failed. (Contained in SOA record.)
Reverse lookup
A reverse lookup is used to find a domain name for a provided IP address.
It is done via DNS under the in-addr.arpa zone.
Root
Is the top of the DNS domains tree. The root-servers know about all the nameservers for the top-level domains (TLDs), but not the record data for subdomains.
Round-robin
When multiple resource record data is provided for a single query, only a single data is randomly used. (Called a poor-man's load balancer when used with address records for example.)
RRSET, resource record set
A resource record set is one or more resource records for the same
name which may include different types and values.
The order they are provided depends on the server configuration
and may not depend on the original source.
A client looking up the name for the type may choose to use one
or more of the records in the set.
For example, a domain name with multiple A address records
may be used as a simple round-robin load balancer where the clients
use just one of the addresses somewhat randomly.
Secondary
also sometimes known as "slave" is another authoritative server
hosting the same zone data has hosted and provided by a primary
authoritative server (which may stealth hidden or public).
SLD, secondary level domain
A domain registration commonly under a ccTLD which requires or
includes a second label (from the right) that the domain is under;
for example, hsbc.co.uk is under the "co.uk" SLD.
Sender Policy Framework, SPF
Sender Policy Framework record to define authorized IP addresses for sending email for a domain. (Used a proposed record type, SPF, but now commonly provided in TXT records.)
Serial number
Used by secondary authoritative servers to know if there is a new copy of the zone to transfer in.
Server
There are two types of servers: authoritative which provide official answers or NS delegation records; and recursive caching servers which help clients look for answers.
Split DNS
A nameserver that provides different results for different groups
of queries, such as both internal and external services
with different data.
This may be used for authoritive stealth DNS
or to provide internal custom resolver services, for example.
Start of authority (SOA)
Identifying record type for a domain. The resource record data provides seven attributes: main server name, contact email address, serial number, zone transfer refresh, retry, and expire timers, and cache timer for negative responses. As an answer this is used for secondary server polling. It is also returned in the authority section for when the domain name or domain name plus type pair doesn't exist.
Status
The error code returned with the response, such as format error, server failure, no such name error, and refused. "No error" implies that a valid response is provided even if an answer is not provided.
Stealth
Stealth servers or stealth data are not seen in public records.
Stealth servers, for example, may be used for internal DNS management
as a primary authoritative nameserver that provides zones for
public secondary authoritative nameservers.
A nameserver that provides both internal and external service
with different data is called a split DNS.
Stub
A client that can do a single query. Normally a stub forwards a question to a full featured caching recursive server.
TCP
DNS is available over IP/TCP (virtual circuits) on port 53.
Zone transfers also use TCP.
TLD
The top level domain is the first label (from right hand side) of a domain name, such as COM or GOV, UK or US (ccTLDs), and MUSEUM or NEWS (gTLD).
There are 3030 TLDs (as of July 2020).
The first TLDs were GOV, EDU, COM, MIL, and ORG.
Truncated, TC
When a UDP-based response is larger than supported, a partial answer is returned
with a truncated flag (TC) indicating that the client should query again using TCP to get the full response.
TSIG
A DNS technique using shared secrets to authenticate DNS end-points (generally between servers).
TTL
The time-to-live is the time that a server may cache the answer (resource record data).
Answers returned from the cache should have the TTL time decremented
accordingly based on how long it was cached.
While the largest number is 2147483647 which is around 68 years,
most caching resolvers limit caching to one day or one week.
The common recommendation is to use 5 minutes to one day for the TTL.
When changing the data (value) for a resource record, TTLs could be
reduced before, to limit how long stale, older data is stored in
others' caches.
There is no part of the protocol to tell a third-party cache to flush
or reload unexpired domain names.
TXT
A record containing free-form textual data. It is commonly used to provide SPF
rules.
A character string can contain up to 255 characters,
but a TXT record can contain multiple character strings up to
65536 bytes.
(Commonly in a primary zone file, the separate TXT strings
are contained within "double quotes.")
UDP
Commonly DNS questions and responses are sent over IP/UDP (datagrams)
on port 53.
It usually has better performance with side-effects of spoofing possibility,
data size limits, and Denial of Service abuse.
(DNS is required to be available over TCP also.)
Validator
A resolver that fetches and understands DNSSEC records and verifies that the chain of trust is correct and the data isn't modified and is within a valid time period.
Wildcard
An asterisk used as a left-hand-side label name in a zone file configuration will match any undefined name (at that record type).
Zone
A single configuration of DNS records hosted on an authoritative server. This can contain subdomains or can delegate subdomains in another zone which are commonly hosted on a different server.
Zone transfer
The act of transferring a zone file (using AXFR or IXFR) from one authoritative server to another for synchronized redundancy. Commonly, a secondary server will poll the other server for its SOA every REFRESH interval and compares the
serial number to see if a new zone is available.