====== Ubuntu - Bind - Configure Bind9 - Primary Nameserver ====== ===== Forward Zone File ===== 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:** * **Comment:** Change this comment to refer to the domain that this file is for. * **Serial Number:** **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). * **FQDNs:** Leave the additional **.** at the end of the FQDNs (example.com. and root.example.com.). * **root.example.com.** actually refers to an email address of root@example.com. Change this as needed to a valid email address, but with a . instead of the usual @ symbol, and leaving a . at the end. * Create an **A** record for the base domain, example.com. * Create an **A** record for the nameserver; in this example **ns.example.com**. **NOTE:** Add any additional DNS records to the bottom of the zone file. See [[[[Networking:DNS:Common Record Types|Common Record Types]] for details. Restart Bind for any changes to take effect: sudo systemctl restart bind9.service ---- ===== Reverse Zone File ===== 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**. ---- ===== Restart Bind9 ===== sudo systemctl restart bind9.service ----