Would you explain the relationship between the DNS
Server address that were provided by our ISP and
entered into our AirPort Extreme base station and
this mystery McLeod DNS Server address I have to have
entered in the computers that are dynamically
configured (DHCP), getting their IP addresses from
the AirPort Extreme base station?
Hi Shawn,
Did you know DNS stands for Deceptively Nasty Sadism? 🙂
In theory, it's a very simple system. In practice, it becomes
very complicated. Generally, you actually get back multiple
answers to your request. It's the first answer that's used.
The heart of the system is a bit of code called a resolver.
The resolver first looks the host file on its machine to find
a name/address pair. Say you're looking for foo.fum.org.
If the hosts file has an entry
foo.fum.org 123.45.67.89
the resolver can just return 123.45.67.89. Without an entry,
it goes to its resolv.conf file to find the address of a
nameserver. So if there's a line in the resolv.conf file
nameserver 9.8.76.54
it makes a request to the resolver on that machine. A
similar process occurs on that machine, and so forth. This
sounds good in theory, but eventually the heirarchy ends
at a root server, and there would be a huge bottleneck there
if not for some of the practices we use today. Hey, it's a kludgy
system, but before DNS we used to have to uucp a file from
our service provider with all the names of all the machines we
could look up.
Because it is possible that the nameserver could be unreachable,
you are allowed to enter multiple nameservers. For example,
the resolv.conf file could have:
nameserver 192.168.0.1
nameserver 9.8.76.54
Anyway, the answer to your question is that the resolver on
your machine will check the hosts file, and when it doesn't
find the host, it will look up the resolv.conf file and query the
first nameserver. If that times out, it will query the next and
so forth.
One or more of those nameserver lines will have been added
by DHCP, and some or none will have been added locally. On
a Mac, I don't think you're supposed to modify the file directly,
but if you look at the file /etc/resolv.conf you can see the
order in which the resolver will make DNS requests.
This answer was so long I forgot the question!
When looking for our marshall-arts.net mail server,
does it go to our first DNS Server address in the
AirPort and then, not finding it, go to our second
DNS Server address in the AirPort, and then still not
finding it, go to the mystery McLeod DNS Server
address I have entered in the TCP/IP settings of the
various computers?
Oh, I answered that one, anyway! One of the nameservers
on your local machines should be the Airport.
I'm also trying to understand the info the dig
queries are returning. When I dig our mail at
ns1.lunarpages.com I get that list of servers in the
Authority section and their addresses in the
additional section, but it doesn't actually return an
answer with our mail address (209.200.249.122).
Shouldn't the Lunarpages name servers know the
address of our mail, or am I not understanding the
relationship?
I'm sorry, we didn't ask it. I ddn't know you'd look into this
so deeply. To get the address we need to add IN-ADDR to
to end of the dig command. This stuff gets exponentially
more complex the deeper we go. I just wanted to show you
the different paths that are taken.
However, when I dig our mail at .lunarservers.com
it correctly returns our marshall-arts.net mail
address (209.200.249.122) in the Answer Section.
Oh. It was there in the cache.
I'm not understanding why our problem lies with
Aracnet listing ns.aracnet.com and
hostmaster.aracnet.com in its Authority section. Is
it not looking at other name servers for the address
and just giving up?
No, I think they had the wrong answer. Sorry about the confusion,
I realize I should have had you see the address - I thought it was
irrelevant, but you're a deeper thinker.
An authority is a server which will take responsiblity for providing
an answer. lunarpages returned the 13 root servers. This is a
whole 'nother story for another day. When your request is sent
to a root server for your zone - .net - it then determines the
authority for the domain - marshall-arts - and requests it to
find the machine - mail - and so forth from right to left in the
address.
What it looked like to me was that the authority was "hijacked"
by your ISP. Actually, it's a normally desired to keep traffic away
from the root servers. The best thing to do overall is to add a
line to your /etc/hosts file. Of course, you have to edit it if the
address ever changes. That way your resolver never goes to the
net. Faster, too.
Sorry for the rambling. I'm getting to be an old-timer and
sometimes I get carried away tellin' people how things used
to be.
-Phil
Powerbook G4, iMac (Intel), and tons of hardware sitting in the closet Mac OS X (10.4.8)