Okay let me see if I understand the lesson correct. You have to give the name of all the nameservers that need to be queried to resolve the name "maps.google.com" to an IP address?
And your answers are:
1 - a.root-servers.net.
2 - a.gtld-servers.net.
3 - maps.l.google.com.
Right? Just from telling the third one is not correct. As you already know.
The instructor saying that the gtld-servers.net is a root server is not right in my opinion. Only if that means those are the root server for the com. domain. Anyways thats just nitpicking.
Way I would go with the command you used when trying to resolve maps.google.com. (output is tailored).
Code:
dig com. -t NS
com. 171785 IN NS j.gtld-servers.net.
j.gtld-servers.net. 172107 IN A 192.48.79.30
Okay we queried the root servers for the com. top level domain and got something like 10 answers. For each part we have the resource record NS and the resource record A. So we have enough to go on. I choose j.gtld-servers.net and ask them about the next part of the name we want to resolve: google.com
Code:
dig @j.gtld-servers.net google.com. -t NS
google.com. 172800 IN NS ns2.google.com.
ns2.google.com. 172800 IN A 216.239.34.10
This one returns 4 nameserver with two resource records for each one. Okay now we have nameservers that are responsible for all subdomains of google.com. Lets ask them about our initial target: maps.google.com
Code:
root@ns1:~# dig @ns2.google.com maps.google.com. -t NS
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @ns2.google.com maps.google.com. -t NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60818
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;maps.google.com. IN NS
;; ANSWER SECTION:
maps.google.com. 604800 IN CNAME maps.l.google.com.
;; AUTHORITY SECTION:
l.google.com. 60 IN SOA ns3.google.com. dns-admin.google.com. 1528064 900 900 1800 60
;; Query time: 35 msec
;; SERVER: 216.239.34.10#53(216.239.34.10)
;; WHEN: Wed Jul 31 10:02:57 2013
;; MSG SIZE rcvd: 104
We dont get a NS resource record which is okay and tells us that there are no further subdomains for this name. One could get an A resource record and hit the server now.
So to resolve the name "maps.google.com." to an ip address we would need to query 3 nameservers.
1. One of the root servers.
2. One of the [a..l].gtld.server.net
3. One of the ns[1..4].google.com
I guess the step you are missing or the teacher wants to see is the resolve of google.com from the a.gtld.server.net ones. Which return ns2.google.com. You jump straight to maps.google.com. At least as the first answer in your original post.
At least this how I would go about which is quite near to what you have. And the trace output shows the same. Dunno if this is of any help...
Or maybe you should first resolve the SOA servers but to what availe that would be is behind my knowledge.