DNS server

We'll start building the DNS server configuration from the bottom up. It's easier to explain that way. The assumption here is that you're starting with the basic Linode setup already in place. I'll cover all the files, but quite a few should already exist and be correctly set up. I'll do it in sections:

  1. The stock zones to support the local loopback interface and localhost and related infrastructure. The actual files probably already come with your DNS server software, because they tend not to vary.
  2. The forward and reverse zonefiles you'll need for an actual server. The emphasis here will be on the forward zones, since those are the ones you're most likely to manage yourself.
  3. The configuration files that control everything.

I assume you understand the basics of DNS records themselves. If you don't, peruse the DNS record basics page to get an overview. The zonefiles and configuration files will normally go in /etc/bind where most distributions put the Bind configuration.

Stock local zones

Almost every nameserver will have two standard zones: the forward zone for "localhost", and the reverse zone for the 127.0.0.0/8 local-loopback network. These don't vary at all, and they're pretty simple:

db.local: provides the "localhost" name for 127.0.0.1

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
@       IN      A       127.0.0.1
@       IN      AAAA    ::1

db.127: reverse zone for the 127.0.0.0/8 network

;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@       IN      SOA     localhost. root.localhost. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      localhost.
1.0.0   IN      PTR     localhost.

Both have very long time-to-live definitions, since the records in them won't ever change there's no reason to not keep them around essentially forever.

There's also a db.root file containing the initial bootstrap definitions for the root nameservers. Most distributions supply and update it along with the Bind software. If you need a copy, the official version is at http://www.internic.net/domain/named.root and you'll just need to save it as db.root. This doesn't really get updated often, I just check and update it once a year.

Forward zones

Reverse zones

Configuration files