This question already has an answer here:
- What is a glue record? 3 answers
I've dealt with BIND for years and this has always kind of bugged me.
$ dig google.com ns ;; QUESTION SECTION: ;google.com. IN NS ;; ANSWER SECTION: google.com. 87046 IN NS ns3.google.com. etc... ;; ADDITIONAL SECTION: ns1.google.com. 87274 IN A 184.108.40.206 etc.
I get that, at least notionally, the root servers handle ., and hand off .com., .gov., whatever to the right servers (though in practice this is all cached several levels down), but at some point, somebody has to know to ask the server at 220.127.116.11 for the A record of whatever.google.com. But how did resolvers figure that out in the first place, since you need to know the A of the NS to do that? (And for that matter, since we know it's an Internet NS and not, say, Chaos or something, why do you have to use a name rather than an address for the NS record?)
My nameservers have always had names that could be found by somebody upstream (eg, I hosted DNS for bar.com on foo.com, and my upstream handled foo.com), but I have never quite grasped how people like Google get over the chicken and egg problem of hosting the DNS for google.com under the name google.com.