Recently wondered how root server returns information about domains it doesn't have information about.
I thought that root dns server, for example, a.root-servers.net, doesn't perform recursive queries itself but instead returns referral - RR pointing to nameserver for TLD of the query.
I issued query about twitter.com hoping to get RR about nameservers for com. but got:
dig @a.root-servers.net twitter.com +norecurse ; <<>> DiG 9.10.3-P4-Ubuntu <<>> @a.root-servers.net twitter.com +norecurse ; (2 servers found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51937 ;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;twitter.com. IN A ;; ANSWER SECTION: twitter.com. 748 IN A 18.104.22.168 twitter.com. 748 IN A 22.214.171.124 ;; Query time: 27 msec ;; SERVER: 126.96.36.199#53(188.8.131.52) ;; WHEN: Thu Dec 29 17:54:09 MSK 2016 ;; MSG SIZE rcvd: 61
Could you explain why root server returns IP of Twitter, it seems that it should return referral only?
Correct me if I'm wrong. Thanks.