Seen individually, directives and resource records can be difficult to grasp. However, when placed together in a single file, they become easier to understand.
The following example shows a very basic zone file.
$ORIGIN example.com.
$TTL 86400
@ SOA dns1.example.com. hostmaster.example.com. (
2001062501 ; serial
21600 ; refresh after 6 hours
3600 ; retry after 1 hour
604800 ; expire after 1 week
86400 ) ; minimum TTL of 1 day
;
;
NS dns1.example.com.
NS dns2.example.com.
dns1 A 10.0.1.1
AAAA aaaa:bbbb::1
dns2 A 10.0.1.2
AAAA aaaa:bbbb::2
;
;
@ MX 10 mail.example.com.
MX 20 mail2.example.com.
mail A 10.0.1.5
AAAA aaaa:bbbb::5
mail2 A 10.0.1.6
AAAA aaaa:bbbb::6
;
;
; This sample zone file illustrates sharing the same IP addresses for multiple services:
;
services A 10.0.1.10
AAAA aaaa:bbbb::10
A 10.0.1.11
AAAA aaaa:bbbb::11
ftp CNAME services.example.com.
www CNAME services.example.com.
;
;
In this example, standard directives and SOA
values are used. The authoritative nameservers are set as dns1.example.com
and dns2.example.com
, which have A
records that tie them to 10.0.1.1
and 10.0.1.2
, respectively.
The email servers configured with the MX
records point to mail
and mail2
via A
records. Since the mail
and mail2
names do not end in a trailing period (.
), the $ORIGIN
domain is placed after them, expanding them to mail.example.com
and mail2.example.com
. Through the related A
resource records, their IP addresses can be determined.
Services available at the standard names, such as
www.example.com
(
WWW), are pointed at the appropriate servers using a
CNAME
record.
This zone file would be called into service with a zone
statement in the named.conf
similar to the following:
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};