Is there a way using DNS to know if a given nameserver is a root server? Looking at the dig output of dig NS a.root-servers.net
, we can see that its SOA points to itself.
; < <>> DiG 9.11.2 < <>> NS a.root-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER< <- opcode: QUERY, status: NOERROR, id: 19635
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;a.root-servers.net. IN NS
;; AUTHORITY SECTION:
root-servers.net. 9684 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2019102500 14400 7200 1209600 3600000
;; Query time: 18 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Mon Nov 11 16:03:39 EST 2019
;; MSG SIZE rcvd: 105
For the B root server though, we can see that the SOA still points to a.root-servers.net
;; AUTHORITY SECTION:
root-servers.net. 86399 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2019102500 14400 7200 1209600 3600000
The same is also true of 8.8.8.8, which is not a root-server.
;; AUTHORITY SECTION:
. 86395 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2019111101 1800 900 604800 86400
Is there some way within the record we can know this?