The first step in testing BIND9 is to add the nameserver’s IP Address to a hosts resolver.
The Primary nameserver should be configured as well as another host to double check things.
Refer to DNS client configuration for details on adding nameserver addresses to your network clients.
In the end your nameserver line in /etc/resolv.conf should be pointing at 127.0.0.53 and you should have a search parameter for your domain. Something like this:
nameserver 127.0.0.53 search example.com
To check which DNS server your local resolver is using, run:
systemd-resolve --status
NOTE: You should also add the IP Address of the Secondary nameserver to your client configuration in case the Primary becomes unavailable.
If you installed the dnsutils package you can test your setup using the DNS lookup utility dig:
After installing BIND9 use dig against the loopback interface to make sure it is listening on port 53. From a terminal prompt:
dig -x 127.0.0.1
You should see lines similar to the following in the command output:
;; Query time: 1 msec ;; SERVER: 192.168.1.10#53(192.168.1.10)
If you configured BIND9 as a Caching nameserver “dig” an outside domain to check the query time:
dig ubuntu.com
Note the query time toward the end of the command output:
;; Query time: 49 msec
Repeat the same dig command. There should be improvement in the time, due to caching:
;; Query time: 1 msec
To demonstrate how applications make use of DNS to resolve a host name use the ping utility to send an ICMP echo request:
ping example.com
This tests if the nameserver can resolve the name ns.example.com to an IP Address. The command output should resemble:
PING ns.example.com (192.168.1.10) 56(84) bytes of data. 64 bytes from 192.168.1.10: icmp_seq=1 ttl=64 time=0.800 ms 64 bytes from 192.168.1.10: icmp_seq=2 ttl=64 time=0.813 ms
A great way to test your zone files is by using the named-checkzone utility installed with the bind9 package.
This utility allows you to make sure the configuration is correct before restarting BIND9 and making the changes live.
To test our example Forward zone file enter the following from a command prompt:
named-checkzone example.com /etc/bind/db.example.com
If everything is configured correctly you should see output similar to:
zone example.com/IN: loaded serial 6 OK
Similarly, to test the Reverse zone file enter the following:
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
The output should be similar to:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3 OK
NOTE: The Serial Number of your zone file will probably be different.