A DNS Zone resolves names to IP Addresses.
To add a DNS zone to BIND9, turning BIND9 into a Primary server, first edit /etc/bind/named.conf.local:
zone "example.com" { type master; file "/etc/bind/db.example.com"; };
NOTE: If bind will be receiving automatic updates to the file as with DDNS, then use /var/lib/bind/db.example.com rather than /etc/bind/db.example.com both here and in the copy command below.
Use an existing zone file as a template to create the /etc/bind/db.example.com file:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
Edit the new zone file /etc/bind/db.example.com as follows:
; ; BIND data file for example.com ; $TTL 604800 @ IN SOA example.com. root.example.com. ( 2014100501 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL @ IN NS ns.example.com. @ IN A 192.168.1.10 @ IN AAAA ::1 ns IN A 192.168.1.10
NOTE:
must be incremented every time changes are made to a zone file.
This Serial number can simply be any number, such as 1 or 2 or 3 etc.
The approach taken here is to use the last date this zone file was edited, in the format yyyymmddss (where ss is the change number for that day; 01 for 1st change, 02 for 2nd change, etc).
Leave the additional . at the end of the FQDNs (example.com. and root.example.com.).
NOTE: Add any additional DNS records to the bottom of the zone file.
See Common Record Types for details.
Restart Bind for any changes to take effect:
sudo systemctl restart bind9.service
A Reverse Zone needs to be added to allow DNS to resolve an address to a name.
Edit /etc/bind/named.conf.local and add the following:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192"; };
NOTE: Replace 1.168.192 with the first three octets of whatever network you are using.
Also, name the zone file /etc/bind/db.192 appropriately. It should match the first octet of your network.
Create the /etc/bind/db.192 file:
sudo cp /etc/bind/db.127 /etc/bind/db.192
Edit /etc/bind/db.192 changing the same options as /etc/bind/db.example.com:
; ; BIND reverse data file for local 192.168.1.XXX net ; $TTL 604800 @ IN SOA ns.example.com. root.example.com. ( 2014100501 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns. 10 IN PTR ns.example.com.
IMPORTANT: The Serial Number in the Reverse zone needs to be incremented on each change as well.
For each A record you configure in /etc/bind/db.example.com, that is for a different address, you need to create a PTR record in /etc/bind/db.192.
sudo systemctl restart bind9.service