The question:

Folks frequently ask me questions about the proper configuration for their MacTCP control panel settings, specifically relating to the section "Domain Name Server Information:". I have written up the following short article which I hope will help users properly configure their MacTCP. The material below is based on information gathered from: reading the MacTCP User's Guide; discussions with the author of MacTCP (!); information gathered from various newsgroups, bulletin boards, listserv lists, and other network resources; the Apple Technical Library; and my own personal experience.

I don't want to read this article, just tell me what to do:

For those folks who sa"skip the explanation and just tell me what do I use," at the end of this article I have what I consider to be th'correct' settings that should be used for Macintoshes here at Yale University. If you are jumping ahead now, See ya. For those (courteous) folks continuing on...

Some background:

The "Domain Name Server Information:" portion of the MacTCP control panel configuration dialogue box allows you to set the IP address of domain name servers and the domains over which they have authority. The Domain Name Server is used by your Macintosh to convert the user-friendly :-) names such as "qmundg2.cis.yale.edu" into numeric addresses (IP numbers) such as "130.132.21.75". Here at Yale we have four Domain Name Servers and each of them is equally capable of resolving all internet IP Domain Names. (By the way, the Domain Name Resolver (DNR) is that part of MacTCP that maps domain names to internet addresses.) In essence, the four Domain Name Servers are identical quadruplets, and they are all able to backup each other in the event of a failure of any one of them. The IP addresses of the Yale Domain Name Servers are: <130.132.1.9>, <130.132.1.10>, <130.132.1.11>, and <130.132.89.9>.

More background:

The "Domain Name Server Information:" portion of the MacTCP control panel configuration dialogue box has two headings, "Domain" and "IP Address". For each entry, the "IP Address" portion refers to the IP address of the Domain Name Server that should be used to resolve names that match the entry listed under the "Domain" portion of the line. The actual logic that MacTCP uses to establish the order that it queries Domain Name Servers is somewhat complicated. Actually, its really complicated. Basically though, it is the extension of the Domain Name passed to the resolver that determines which Domain Name Server is chosen. If the Resolver is able to find a server that matches the full extension of the Domain Name then that server will be chosen first. If no full match is found, then the Resolver will next attempt to find servers that serve the ancestor of the full extension. If no match exists at all, then the Domain Name Server designated as the "default" server will be used. Nameservers entered with their domain as a period (".") are assumed to be able to be used to resolve addresses for the entire Internet. Mac TCP asks each eligible nameserver listed in the MacTCP control panel, one at a time, for the IP number of a hostname. When the nameserver fails to resolve the name or "times out," MacTCP tries the next available nameserver. If MacTCP is unable to resolve the name, the user gets the evil -23004 error dialogue box.

Short example:

Suppose we have the following MacTCP configuration:

and we wanted to look up the IP address of the host "yalevm.cis.yale.edu", the Domain Name resolver would use the Domain Name Server at <130.132.1.9>, since the "cis.yale.edu" portions of the domain names match there. If we wanted to look up the IP address of the host "biomed.med.yale.edu", the Domain Name resolver would use the Domain Name Server at <130.132.1.10>, since the "yale.edu" portions match there. If we wanted to look up the IP address of the host "some.other.place.edu", the Domain Name resolver would use the Domain Name Server at <130.132.1.9>, since there were no extension matches and <130.132.1.9> is the default Domain Name Server checked off in the configuration.

My recommendation:

A different "default domain" perhaps:

The first line of the "Domain Name Server Information" area has on it what is referred to as the "default domain." In this case I have entered "cis.yale.edu." The "default domain" is what is appended to a non fully qualified name request before a resolution attempt is made. In other words, if I want to connect to the host "yalevm," "cis.yale.edu" will be appended to the name and the lookup will be made for "yalevm.cis.yale.edu." Similarly for hosts such as "minerva" or "yaleads". If the hosts that you typically connect to are not in the "cis.yale.edu" domain, then you will want to change the first line to conform to the domain that you most often use, for example possibly "med.yale.edu."

Don't forget the period:

Note that the lines other then the first one have a period (".") entered under the "Domain" column. Do not forget to enter a period on each line other than the first.

Nameserver order not important:

The order of the name servers under the "IP Address" column is not significant and does not have to be followed as shown in the example above. You may mix them up any way you wish. As I have them, MacTCP on my machine would try <130.132.1.9> first, and then <130.132.1.10>, <130.132.1.11> , etc. in that order if it could not get a response from the first name server it tried. It would be nice if everyone did not use the same nameserver as their first choice.

Conclusion:

Hopefully this article has shed some light on the way that MacTCP uses the information in the configuration panel to resolve IP name lookups. I have presented a configuration for MacTCP that makes use of the multiple redundant Domain Name Servers that Yale has, and which will work as long as one of them is available on-line. I would like to hear your comments regarding how this configuration works (or doesn't) for you.


Peter Furmonavicius is a senior research programmer for C&IS Technology and Planning.

Back to December 1995