The rest of this page discusses a specific problem with nslookup: namely, the *** Default servers are not available error message.
nslookup -type=soa com m.gtld-servers.netthinking that this will give you the .com SOA records from the m.gtld-servers.net server.
*** Can't find server name for address 18.104.22.168: No information *** Default servers are not availableinstead of showing you the SOA records.
You might think that the server doesn't have the SOA records, or that the server software has some bug. In fact, the server has the SOA records, and is behaving properly. You've encountered an nslookup bug.
Easy workaround: Don't tell nslookup which server to use. It will use your local DNS cache, as specified in /etc/resolv.conf; your DNS cache will contact the appropriate DNS server. For example, to look up SOA records for the com domain:
nslookup -type=soa com
Even better, use dnsqr instead of nslookup:
dnsqr soa com
If you want to query a specific DNS server, use dnsq:
dnsq soa com m.gtld-servers.net
If you want to query a specific DNS server, and you really want to use nslookup for some reason, do not specify the server on the nslookup command line. Use the server command instead:
nslookup server m.gtld-servers.net set type=soa com. exit
BIND servers are recursive by default, so BIND administrators generally don't run into this problem unless they know that they should make their servers non-recursive. In contrast, tinydns is never recursive.
What exactly is nslookup doing wrong? Three things:
If you're running tinydns, and you really want to pander to nslookup's bugs (even though the .com servers don't), add
.22.214.171.124.in-addr.arpa:126.96.36.199to data, and make sure that 188.8.131.52 appears in an = line. Replace 184.108.40.206 with your IP address.