Zone file

From Wikipedia, the free encyclopedia
Jump to: navigation, search

A Domain Name System (DNS) zone file is a text file that describes a DNS zone. 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 addresses 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. [1]

File format[edit]

The format of a zone file is defined in RFC 1035 (section 5) and RFC 1034 (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) are using the zone files only as a starting point to compile them into database format, see also Microsoft DNS with Active Directory-database integration.

A zone file is a sequence of entries for resource records. Each line is a text description that defines a single resource record (RR). The description consists of several fields separated by white space (spaces or tabs) as follows:

name ttl record class record type record data (one or more fields, depending on record type)

The name, called the owner of the record, may be left blank. If so, it defaults to the owner of the previous record.

The ttl (time-to-live) specifies the time after which a domain name client must discard the record and perform a new resolution operation to obtain fresh information. If ttl is not specified, the global TTL specified at the top of the zone file will be used.

The record class indicates the namespace of the record's information. 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 is a short abbreviation for the type of information stored in the record and determines the number of record data fields needed. The type also provides the name of each record. For example, an address record, having the abbreviation A for IPv4 and AAAA for IPv6, maps the domain name (in the first field) to an IP address in the record data field, and a mail exchanger record (type MX) specifies the Simple Mail Transfer Protocol (SMTP) mail host for a domain.

Resource records may occur in any order in a zone file, with some exceptions. For formatting convenience, resource records may span several lines by enclosing in parentheses a set of parameters that spans several lines, but belongs to the same record. The file may contain comment text by preceding such text with a semicolon, either at the beginning of a line, or after the last field on any line, or on a blank line. Comments end at the end of a line. The zone file may contain any number of blank lines with or without comments.

The zone file may also contain various directives that are marked with a keyword starting with the dollar sign character. The most notable is the $ORIGIN keyword, which specifies the starting point for the zone in the DNS hierarchy. If this keyword is omitted from a zone file, the origin is inferred by the server software from the reference to the zone file in its server configuration.

An example of a zone file for the domain is the following:

$ORIGIN     ; designates the start of this zone file in the namespace
$TTL 1h                  ; default expiration time of all resource records without their own TTL value  IN  SOA ( 2007120710 1d 2h 4w 1h )  IN  NS    ns                    ; is a nameserver for  IN  NS    ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for  IN  MX    10  ; is the mailserver for
@             IN  MX    20 ; equivalent to above line, "@" represents zone origin
@             IN  MX    50 mail3              ; equivalent to above line, but using a relative host name  IN  A             ; IPv4 address for
              IN  AAAA  2001:db8:10::1        ; IPv6 address for
ns            IN  A             ; IPv4 address for
              IN  AAAA  2001:db8:10::2        ; IPv6 address for
www           IN  CNAME          ; is an alias for
wwwtest       IN  CNAME www                   ; is another alias for
mail          IN  A             ; IPv4 address for
mail2         IN  A             ; IPv4 address for
mail3         IN  A             ; IPv4 address for

As a 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. 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 DNS server software, such as BIND, also requires at least one additional name server record. The email address in the SOA RR has the @ symbol replaced by a period. In the zone file, host names that do not end in a period are relative to the zone origin. For example, in the example above, www refers to, and is, and not Names ending with a full stop (or point) are said to be fully qualified domain names.

A zone file is referenced by the configuration file of the name server software such as bind, typically by a statement such as:

zone "" { type master; file "/var/named/"; };

Root zone and top-level domains[edit]

The zone files for the DNS root zone and for the set of top-level domains contain resource records only for the authoritative domain name servers for each domain name.


Some server software automatically configures resource records for specially recognized domains or hostnames, such as localhost, 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.
@  1D  IN  SOA   @  root 1999010100 3h 15m 1w 1d
@  1D  IN  NS    @
@  1D  IN  A
@  1D  IN  AAAA  ::1

The corresponding reverse zone definition is:

;; reverse zone file for and ::1
@  3W  IN  SOA     localhost. root.localhost.  1999010100 3h 15m 1w 1d
@  3W  IN  NS      localhost.
1  3W  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 ""  IN { type master; file "r.local"; };
zone ""  IN { type master; file "r.local"; };

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 to refer to other, possibly external DNS servers.

See also[edit]


  1. ^ RFC 1035, Domain Names - Implementation and Specification, P. Mockapetris, (November 1987)