Apple's MacDNS provides domain name service on any Mac OS Internet server, enabling domain names to be translated into network IP addresses and vice versa. MacDNS provides the traditional ease of use and reliability that Apple customers expect, making DNS setup and administration simple.
MacDNS version 1.0.4 is available at no charge to all customers who agree to the terms presented in the license agreement contained within the MacDNS software.
MacDNS 1.0.4 fixes some problems in MacDNS 1.0.3 and earlier versions, providing improved performance and reliability. Upgrading to version 1.0.4 is recommended for all MacDNS customers. For detailed information on what's new in 1.0.4, please refer to the documentation included with the software.
Frequently Asked Questions
What are the features of MacDNS?
MacDNS has an easy-to-use interface, making it straightforward to assign domain names and IP addresses for a host. It is also simple to create host "aliases" (multiple names which map to the same IP address) and to set up mail exchanger information.
MacDNS supports both standard and reverse queries (name-to-IP-address, IP-address-to-name). The following resource record types are supported:
A (address) PTR (pointer) MX (mail exchanger) NS (name server) HINFO (machine info) SOA (start of authority) CNAME (canonical name)
MacDNS imports and exports data files in standard zone format. This means that existing host entries from UNIX-based DNS servers can be easily imported into MacDNS. Multiple domains can be served simultaneously.
MacDNS can share the load for a given named host between several machines. It does this by grouping a number of hosts under a single "load-shared" name. For each successive query, MacDNS returns the address of a different host in the load-shared group. This has the effect of spreading successive connections across all the hosts in a round-robin fashion. It is also possible to temporarily disable one or more hosts in the group while the others continue to service client requests.
MacDNS will cache information for hosts on the Internet. This capability decreases network traffic on the connection to the Internet (which is often slower than the local-area network) and gives faster responses to these queries.
Once its hosts have been configured, MacDNS handles the DNS queries for an entire site. The Internet Service Provider (ISP) need not be consulted for any new hosts that are installed at a site.
MacDNS acts as a primary DNS server. It exports its zone information, allowing another DNS server to provide secondary name service. MacDNS currently does not act as a secondary server - it does not import zone information from another DNS server. However, you can use MacDNS as a secondary server by manually copying information from your primary DNS server to a MacDNS server.
MacDNS automatically maintains address-to-name mappings for all hosts in a zone. It supports zone transfer requests from a secondary server for any reverse domain for which MacDNS is authoritative.
What is a "recursive" lookup? Is MacDNS recursive? I've heard that some clients require a recursive DNS server.
In a "recursive" lookup, the DNS server is always expected to find the definitive answer for any query. Sometimes the response to a lookup is not the actual answer, but a pointer to another name server which might know the answer. A non-recursive DNS server simply returns this pointer, rather than the final answer. A recursive DNS server contacts the new name server and asks it the original question, and repeats the process until the answer is found.
MacDNS 1.0.x functions as a "forwarding" name server. In order to resolve a name which is outside of the domain(s) it serves, MacDNS forwards the request to a parent DNS server, which then performs a recursive lookup. Normally, this parent server is your ISP's DNS server. MacDNS does not perform the recursion itself. However, from the perspective of a DNS client, recursive service is delivered.
What can I do to speed up performance of MacDNS?
"Detailed" and "Microscopic" log messages can cause a noticeable performance hit. For fastest performance, choose "Important" or "Critical" from the pop-up menu at the bottom of the Message Log window, and keep the window closed when you are not actively monitoring the server.
Can you quickly walk me through the process of setting up MacDNS to serve my domain? My domain name is "intercloud.com" and I am going to be running all my services (mail server, Web server, DNS server) on one machine.
Here's a checklist of steps to follow (and pitfalls to avoid), using "intercloud.com" as an example. Consult the MacDNS Administrator's Guide for additional information.
1) If you are connected to the Internet (as opposed to an isolated "intranet"), then you need to specify a parent server. Choose "Set Parent Servers..." from the Hosts menu, then type the name and IP address of at least one other DNS server. Usually this will be your ISP's name server, or a DNS server you were using previously.
2) Create a new zone file. The Zone Information dialog box appears.
- Type your domain name (intercloud.com) in the Domain Name field.
- Type the host name that you plan to give to your MacDNS machine in the Primary Server field (for example: ns.intercloud.com). The name you enter here must be the machine's canonical or "real" name, not an alias.
- If you have a secondary name server for your domain, type its name in the Secondary Server field. (See below if you have more than one secondary name server.)
- Type the administrator's e-mail address in the Administrator field (for example: [email protected]). Don't forget to add an account for this user on your mail server.
3) Create the required host entries for your domain.
- Primary server entry:
Choose "Add Permanent Host" from the Hosts menu. Type the name of your primary server (ns.intercloud.com) in the Host Name field, and enter its IP address in the field below that. Since this machine is also going to act as a mail server and a web server, you will probably want to set up some additional names for this host. For example, type www.intercloud.com, mail.intercloud.com in the Aliases field to create two appropriate alias names for ns.intercloud.com. (See below if you need to create a name outside of the intercloud.com domain that points to this host.)
- Domain name entry (with mail exchanger):
Your zone should include a separate host entry for the domain name itself (unless you specified intercloud.com as an alias of ns.intercloud.com in the previous step.) Since you don't have a "real" host named intercloud.com, choose "Add MX-Only Host" to create a new host entry for that name. Type 10 ns.intercloud.com in the Mail Exchangers field. This entry lets other mail servers know that ns.intercloud.com handles mail for the domain intercloud.com with a preference value of 10. Note that you can't specify 10 mail.intercloud.com here, because only the canonical name of a mail server can be used for MX mappings.
4) Save your zone file by choosing "Save As..." from the File menu. That's it!