I realize how some might think this isn't exactly constructive, buuuut, I was wondering how come you can't resolve com, org, us, ru, or any other top level domain? I am taking this is as a learning exercise because there might be some holes in my understanding of how DNS works. For example, I tried;

nslookup com
Server:    dns.server.com

*** dns.server.com cant find com: Non-existent domain

I always thought that all other sites under the .com top level domain depended on the existence of an actual domain name called com. At the very least, I thought it kept track of existing domains under the .com domain. What am I missing?

  • 2
    Thats not how DNS works. You can't query .COM and get a list of anything. If you want to know whats there look into IANA.org to see the Root Zone Management Aug 17 '12 at 13:46
  • @BrentPabst I must have been asleep for that part of the lecture because this is new iformation for meh. Thanx! Aug 17 '12 at 13:56
  • So this is a homework question then? Read the FAQ please. Aug 17 '12 at 13:57
  • 3
    Is it considered homework if I'm not in school? I was just making reference to the few telecom classes I took a while back. Aug 17 '12 at 13:58
  • 1
    Not all TLDs behave this way though, I know ws has an A record (it redirects you to www.website.ws)
    – DerfK
    Aug 17 '12 at 14:11

They do depend on com. - but it does not have an A record and you can't look it up like that. Try looking for the NS record instead:

> set type=NS
> com.

Non-authoritative answer:
com nameserver = b.gtld-servers.net.
com nameserver = f.gtld-servers.net.
com nameserver = j.gtld-servers.net.
com nameserver = g.gtld-servers.net.
com nameserver = k.gtld-servers.net.
com nameserver = e.gtld-servers.net.
com nameserver = l.gtld-servers.net.
com nameserver = d.gtld-servers.net.
com nameserver = i.gtld-servers.net.
com nameserver = m.gtld-servers.net.
com nameserver = a.gtld-servers.net.
com nameserver = h.gtld-servers.net.
com nameserver = c.gtld-servers.net.

Authoritative answers can be found from:
b.gtld-servers.net  internet address =
b.gtld-servers.net  has AAAA address 2001:503:231d::2:30
f.gtld-servers.net  internet address =
j.gtld-servers.net  internet address =
g.gtld-servers.net  internet address =
k.gtld-servers.net  internet address =
e.gtld-servers.net  internet address =
l.gtld-servers.net  internet address =
d.gtld-servers.net  internet address =
i.gtld-servers.net  internet address =
m.gtld-servers.net  internet address =
a.gtld-servers.net  internet address =
a.gtld-servers.net  has AAAA address 2001:503:a83e::2:30
h.gtld-servers.net  internet address =
c.gtld-servers.net  internet address =

This will give you the gtld-servers which are authoritative for com. and on which you are directed to next set of nameservers for a domain.

If you have dig, try dig +trace com. if not, then visit http://www.digwebinterface.com/?hostnames=com.&type=&trace=on&ns=resolver&useresolver= which will show you the output and the route from root level (.) until the NS that gives you the NXDOMAIN response.

  • 1
    Interesting to note that the . in com. matters in this example. Aug 18 '12 at 0:45

You're not missing anything. Domain 'com' exists, but has no A records. If you look for NS records (domain server records), you get results (as expected).

; <<>> DiG 9.9.1-P2 <<>> NS com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25150
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 16

; EDNS: version: 0, flags:; udp: 4096
;com.                               IN      NS

com.                        8396    IN      NS      d.gtld-servers.net.
com.                        8396    IN      NS      l.gtld-servers.net.
com.                        8396    IN      NS      g.gtld-servers.net.
com.                        8396    IN      NS      f.gtld-servers.net.
com.                        8396    IN      NS      m.gtld-servers.net.
com.                        8396    IN      NS      k.gtld-servers.net.
com.                        8396    IN      NS      h.gtld-servers.net.
com.                        8396    IN      NS      e.gtld-servers.net.
com.                        8396    IN      NS      c.gtld-servers.net.
com.                        8396    IN      NS      j.gtld-servers.net.
com.                        8396    IN      NS      i.gtld-servers.net.
com.                        8396    IN      NS      a.gtld-servers.net.
com.                        8396    IN      NS      b.gtld-servers.net.

a.gtld-servers.net. 94680   IN      A
a.gtld-servers.net. 94680   IN      AAAA    2001:503:a83e::2:30
b.gtld-servers.net. 94680   IN      A
b.gtld-servers.net. 94680   IN      AAAA    2001:503:231d::2:30
c.gtld-servers.net. 94680   IN      A
d.gtld-servers.net. 94680   IN      A
e.gtld-servers.net. 94680   IN      A
f.gtld-servers.net. 94680   IN      A
g.gtld-servers.net. 94680   IN      A
h.gtld-servers.net. 94680   IN      A
i.gtld-servers.net. 94680   IN      A
j.gtld-servers.net. 94680   IN      A
k.gtld-servers.net. 94680   IN      A
l.gtld-servers.net. 94680   IN      A
m.gtld-servers.net. 94680   IN      A

;; Query time: 35 msec
;; WHEN: Fri Aug 17 15:50:18 2012
;; MSG SIZE  rcvd: 520
  • 2
    There is also an SOA record, as well as DNSKEY, NSEC3PARAM, and RRSIG records. Zone transfers are disabled, of course.
    – Skaperen
    Aug 17 '12 at 14:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.