For many dig queries, it helps to get the current list of root DNS servers.
Though the list is pretty static, occasionally it changes. While writing there were 13 of them and the most recent history report was in “RSSAC023: History of the Root Server System” at [WayBack] www.icann.org/en/system/files/files/rssac-023-04nov16-en.pdf.
So below are the steps to get an accurate list based on
First find out what the root servers are:
$ dig +noall +answer . ns | sort
. 106156 IN NS a.root-servers.net.
. 106156 IN NS b.root-servers.net.
. 106156 IN NS c.root-servers.net.
. 106156 IN NS d.root-servers.net.
. 106156 IN NS e.root-servers.net.
. 106156 IN NS f.root-servers.net.
. 106156 IN NS g.root-servers.net.
. 106156 IN NS h.root-servers.net.
. 106156 IN NS i.root-servers.net.
. 106156 IN NS j.root-servers.net.
. 106156 IN NS k.root-servers.net.
. 106156 IN NS l.root-servers.net.
. 106156 IN NS m.root-servers.net.
You should shorten this to $ dig +noall +answer . ns but that will not give you the TTL (how long the information will be cached before your DNS server refreshes it).
Now query at least 3 of these to get the actual list of root servers (I list only one statement, the rest is similar):
$ dig +noall +answer . ns @j.root-servers.net. | sort
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS c.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS f.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS h.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS l.root-servers.net.
. 518400 IN NS m.root-servers.net.
Compare the lists. If they are equal, then you’re done.
If not, then the internet is in trouble (:
When you want the A and AAAA records with IP addresses in addition to the NS records with names, then add +additional to your query:
dig +noall +answer +additional @j.root-servers.net. | sort
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS c.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS f.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS h.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS l.root-servers.net.
. 518400 IN NS m.root-servers.net.
a.root-servers.net. 518400 IN A 198.41.0.4
a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 518400 IN A 192.228.79.201
b.root-servers.net. 518400 IN AAAA 2001:500:200::b
c.root-servers.net. 518400 IN A 192.33.4.12
d.root-servers.net. 518400 IN A 199.7.91.13
e.root-servers.net. 518400 IN A 192.203.230.10
f.root-servers.net. 518400 IN A 192.5.5.241
g.root-servers.net. 518400 IN A 192.112.36.4
h.root-servers.net. 518400 IN A 198.97.190.53
i.root-servers.net. 518400 IN A 192.36.148.17
j.root-servers.net. 518400 IN A 192.58.128.30
k.root-servers.net. 518400 IN A 193.0.14.129
l.root-servers.net. 518400 IN A 199.7.83.42
m.root-servers.net. 518400 IN A 202.12.27.33
–jeroen