After installing, it is a good idea to test the basic functionality of the software before configuring database backends. For this purpose, PowerDNS contains the 'bindbackend' which has a domain built in example.com, which is officially reserved for testing. To test, edit pdns.conf and add the following if not already present:
launch=bind bind-example-zones
![]() | As of 2.9.21, the BIND backend no longer features the 'bind-example-zones' command. These will return in 2.9.22. |
host www.example.com 127.0.0.1www.example.com should now have IP address 1.2.3.4. The host command can usually be found in the dnsutils package of your operating system. Alternate command is: dig www.example.com A @127.0.0.1 or even nslookup www.example.com 127.0.0.1, although nslookup is not advised for DNS diagnostics.
example.com SOA record
example.com NS record pointing to ns1.example.com
example.com NS record pointing to ns2.example.com
example.com MX record pointing to mail.example.com
example.com MX record pointing to mail1.example.com
mail.example.com A record pointing to 4.3.2.1
mail1.example.com A record pointing to 5.4.3.2
ns1.example.com A record pointing to 4.3.2.1
ns2.example.com A record pointing to 5.4.3.2
host-0 to host-9999.example.com A record pointing to 2.3.4.5
At this point some things may have gone wrong. Typical errors include:
This means that another nameserver is listening on port 53 already. You can resolve this problem by determining if it is safe to shutdown the nameserver already present, and doing so. If uncertain, it is also possible to run PDNS on another port. To do so, add local-port=5300 to pdns.conf, and try again. This however implies that you can only test your nameserver as clients expect the nameserver to live on port 53.
You must be superuser in order to be able to bind to port 53. If this is not a possibility, it is also possible to run PDNS on another port. To do so, add local-port=5300 to pdns.conf, and try again. This however implies that you can only test your nameserver as clients expect the nameserver to live on port 53.
PDNS did not find the launch=bind instruction in pdns.conf.
If you have multiple IP addresses on the internet on one machine, UNIX often sends out answers over another interface than which the packet came in on. In such cases, use local-address to bind to specific IP addresses, which can be comma separated. The second error comes from remotes disregarding answers to questions it didn't ask to that IP address and sending back ICMP errors.