A
Domain Name System
The Domain Name System (DNS) is a hierarchical and distributed name service that provides a naming system for computers, services, and other resources on the Internet or other Internet Protocol (IP) networks. It associates various information ...
(DNS) zone file is a
text file
A text file (sometimes spelled textfile; an old alternative name is flat file) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system.
In ope ...
that describes a
DNS zone
A DNS zone is a specific portion of the DNS namespace in the Domain Name System (DNS), which a specific organization or administrator manages. A DNS zone is an administrative space allowing more granular control of the DNS components, such as ...
. A DNS zone is a subset, often a single domain, of the hierarchical domain name structure of the DNS. The zone file contains mappings between
domain names and
IP address
An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
es and other resources, organized in the form of text representations of
resource records (RR). A zone file may be either a DNS master file, authoritatively describing a zone, or it may be used to list the contents of a DNS cache.
[, ''Domain Names - Implementation and Specification'', P. Mockapetris, (November 1987)]
File format
The format of a zone file is defined in (section 5) and (section 3.6.1). This format was originally used by the
Berkeley Internet Name Domain (BIND) software package, but has been widely adopted by other DNS server software – though some of them (e.g.
NSD,
PowerDNS
PowerDNS is a Name server, DNS server program, written in C++ and licensed under the GNU General Public License, GPL. It runs on most Unix derivatives. PowerDNS features a large number of different ''backends'' ranging from simple BIND style z ...
) are using the zone files only as a starting point to compile them into database format, see also
Microsoft DNS with
Active Directory
Active Directory (AD) is a directory service developed by Microsoft for Windows domain networks. Windows Server operating systems include it as a set of processes and services. Originally, only centralized domain management used Active Direct ...
-database integration.
A zone file is a sequence of line-oriented entries, each of which is either a ''directive'' or a text description that defines a single ''resource record'' (''RR''). An entry is composed of fields separated by any combination of white space (tabs and spaces), and ends at a line boundary except inside a quoted string field value or a pair of enclosing formatting parentheses. Any line may end with comment text preceded by a semicolon, and the file may also contain any number of blank lines.
Entries may occur in any order in a zone file with an exception that
SOA record must be at top of the zone.
Directives are control entries that affect the rest of the zone file. The first field of a directive consists of a dollar sign followed by a keyword:
* $ORIGIN is followed by a domain name to be used as the origin for subsequent relative domain names.
* $INCLUDE is followed by a file name and optional origin domain name to be used when interpreting its contents (which are treated as if they appeared in the parent file, followed by a reset to the origin value preceding evaluation of the directive).
* $TTL, defined in (section 4), is followed by a number to be used as the default
TTL (time-to-live).
* $GENERATE, a non-standard extension accepted by BIND and some other
name server
A name server is a computer application that implements a network service for providing responses to queries against a directory service. It translates an often humanly meaningful, text-based identifier to a system-internal, often numeric identi ...
software to insert multiple resource records with one entry, is followed by a concise representation of an increasing sequence of nonnegative numbers and then a template RR entry. A resource record is added for each number in the sequence, using the template with unescaped "$" characters replaced by the number.
A resource record entry consists of several fields as follows (both field orderings are acceptable and may be used interchangeably):
The ''name'' field may be left blank. If so, the record inherits the field from the previous record. A free standing @ is used to denote the current origin.
The ''ttl'' field specifies the number of seconds after which a caching client must discard the record and perform a new resolution operation to obtain fresh information. Some name servers, including BIND, allow nonstandard representations that use time unit abbreviations (for example, "2d" meaning two 24-hour days or "1h30m" meaning one hour and 30 minutes). It may be omitted, in which case the resulting value will be set from the default TTL (if defined) or from the preceding record.
The ''record class'' field indicates the namespace of the record information. It may be omitted, in which case the resulting value will be set from the preceding record. The most commonly used namespace is that of the Internet, indicated by parameter ''IN'', but others exist and are in use, e.g., ''
CHAOS''.
The ''record type'' field is an abbreviation for the type of information stored in the last field, ''record data''. For example: an ''address record'' (type ''A'' for IPv4, or type ''AAAA'' for IPv6,) maps the domain name from the first field to an
IP address
An Internet Protocol address (IP address) is a numerical label such as that is assigned to a device connected to a computer network that uses the Internet Protocol for communication. IP addresses serve two main functions: network interface i ...
in the record data; a ''mail exchanger'' record (type ''MX'') specifies the
Simple Mail Transfer Protocol (SMTP) mail host for a domain.
The ''record data'' field may consist of one or more information elements, depending on the requirements of each record type. For example, an address record only requires an address, while a mail exchanger record requires a priority and a domain name. Such information elements are represented as fields separated by white space.
Example file
An example of a zone file for the domain ''
example.com
The domain names example.com, example.net, example.org, and example.edu are second-level domain names in the Domain Name System of the Internet. They are reserved by the Internet Assigned Numbers Authority (IANA) at the direction of the Inter ...
'' is the following:
At minimum, the zone file must specify the ''
Start of Authority'' (SOA) record with the name of the authoritative master name server for the zone and the email address of someone responsible for management of the name server (represented as a domain name, with a full stop character in place of the usual symbol). The parameters of the SOA record also specify a list of timing and expiration parameters (serial number, slave refresh period, slave retry time, slave expiration time, and the maximum time to cache the record). Some name servers, including BIND, also require at least one additional NS record.
In the zone file, domain names that end with a full stop character (such as "''example.com.''" in the above example) are
fully qualified while those that do not end with a full stop are relative to the current origin (which is why ''www'' in the above example refers to ''www.example.com'').
A zone file is referenced by the configuration file of the name server software. For example, BIND typically uses a statement such as:
zone "example.com" ;
Root zone and top-level domains
The zone files for the
DNS root zone
The DNS root zone is the top-level DNS zone in the hierarchical namespace of the Domain Name System (DNS) of the Internet.
Before October 1, 2016, the root zone had been overseen by the Internet Corporation for Assigned Names and Numbers (ICANN ...
and for the set of
top-level domain
A top-level domain (TLD) is one of the domain name, domains at the highest level in the hierarchical Domain Name System of the Internet after the root domain. The top-level domain names are installed in the DNS root zone, root zone of the nam ...
s contain resource records only for the authoritative domain name servers for each domain name.
Localhost
In computer networking, localhost is a hostname that refers to the current computer used to access it. The name ''localhost'' is reserved for loopback purposes.
It is used to access the network services that are running on the host via t ...
Some server software automatically configures resource records for specially recognized domains or hostnames, such as
localhost
In computer networking, localhost is a hostname that refers to the current computer used to access it. The name ''localhost'' is reserved for loopback purposes.
It is used to access the network services that are running on the host via t ...
, but a customized zone master file may be used.
An example for manual configuration of the forward zone for ''localhost'' is the following:
$ORIGIN localhost.
@ 86400 IN SOA @ root (
1999010100 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
@ 86400 IN NS @
@ 86400 IN A 127.0.0.1
@ 86400 IN AAAA ::1
The corresponding reverse zone definition is:
;; reverse zone file for 127.0.0.1 and ::1
$TTL 1814400 ; 3 weeks
@ 1814400 IN SOA localhost. root.localhost. (
1999010100 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
@ 1814400 IN NS localhost.
1 1814400 IN PTR localhost.
This file does not specify the origin so that it may be used for both IPv4 and IPv6 with this configuration:
zone "0.0.127.in-addr.arpa" IN ;
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN ;
Similar zone master files may be created for the reverse resolution of the broadcast address and the null address. Such zone files prevent a DNS server from referring to other, possibly external DNS servers.
See also
*
List of DNS record types
References
{{reflist
Domain Name System