<< Ok, I think I got the basics of DNS, correct me if I am wrong.
If I setup DNS on my Win2k machine, and a client wants to go to say "www.yahoo.com", it will check my DNS server first. If it has an entry cached, then that is sent to the client. If it doesn't have an entry, my DNS server can look at my @home DNS servers for an entry. If it finds one at the @home DNS server, my machine caches this info for next time, and passes the info onto the client.
So in a nutshell, if my DNS can't resolve a name, I can set it for entries in @home's DNS, then cache them for later use.
Correct? >>
Close. Basically, the DNS server would see if the host you are trying to get to is one of the ones it is in charge of. If not, it will go to one of the root servers. Then that root server would tell it to go to another DNS server (root servers just forward you on to a closer DNS server). That server would either tell you if it is in charge or if not pass you on to the next one. This will go on until you get to the right DNS server, the response will be sent back to you, and your DNS server will cache it. The cache will run out and it will have to do this again. Believe it or not, this is more efficient than how the net started off.
You basically start at your DNS server, it goes to the top DNS server, and then back down, much like the roots of a tree. You are at the tip of one, you go up to the top of the list.