Deploying DNS Servers
DNS is exceptionally scalable, as it has to be to handle name services on the Internet. This scalability is possible because the workload can be distributed across many DNS servers. There are several ways to combine DNS servers to enhance DNS service capabilities:
Two or more name servers can serve as redundant authorities for the same domain. Clients can query any authoritative name server to retrieve records for the domain.
Authority for subdomains can be delegated.
Cache-only name servers can reduce query traffic by consolidating the results of recent queries.
You have already seen how DNS enables us to establish subdomains with their own name servers. Let's take a look at the theory behind the other two scalability techniques, redundant name servers and cache-only name servers.
Servicing a Zone with Multiple Name Servers
There are two excellent reasons for having at least two name servers with authority for a zone:
Fault tolerance. The zone can advertise all the available name servers, so that clients have an alternative if one name server fails.
Scaling. Clients can distribute their queries across all available name servers, enhancing the responsiveness of queries to the zone.
The Windows 2000 DNS service provides two means of supporting a domain with more than one name server. There is the traditional method with statically defined primary and secondary servers, but the Windows 2000 DNS service can also create zones that are integrated with the Active Directory. Let's discuss the merits of both approaches.
Primary and Secondary Zones
With most DNS servers, such as BIND and Windows NT 4, a master copy of a domain database is placed in a primary zone. All changes to the domain database must be made in the primary zone.
Under this approach, you can configure additional name servers with secondary zones that store copies of the zone data obtained from either the primary zone or another secondary zone. The source of the zone data is called a DNS master, and the process of transferring zone data from a DNS master to a secondary zone is called a zone transfer. Figure 3.3 illustrates the relationships that are possible among primary and secondary DNS zones.
DNS servers supporting secondary zones retain copies of the zone data in case the server for the primary zone becomes unavailable. However, the zone data can only be updated in the primary zone, after which secondary zones are updated through zone transfers.
The databases for primary and secondary zones are usually stored in text files. The default location for the DNS database files on Windows 2000 is the folder %SystemRoot%\System32\Dns. These files are formatted to be compatible with BIND DNS servers, enabling you to import or export zones from BIND configuration files. (Windows NT 4 can read and write BIND-format data files but stores its working copy of DNS zone data in the Registry.)
Windows 2000 DNS supports primary and secondary zones so that it can interoperate with BIND and other standard DNS servers. A Windows 2000 DNS server can host a secondary zone that is transferred from an outside name server. Alternatively, you configure a BIND server with a secondary zone that is copied from a Windows 2000 Server system. A secondary zone doesn't have to accept dynamic updates, but it does need to support the SRV resource record if you are running Active Directory.
Active DirectoryIntegrated Zones
If you are running your primary name servers on Windows 2000 Server and have set up Active Directory, you can avoid many of the limitations of conventional primary and secondary zones by taking advantage of zones that are integrated with Active Directory.
The data for Active Directoryintegrated zones are stored in Active Directory, extending to DNS data the advantages of Active Directory such as multimaster replication and enhanced security. Zone data are replicated to Domain Controllers (DCs) through normal Active Directory replication, and there is no need to explicitly configure zone transfers. Transfer of zone data is made more efficient because Active Directory replicates only properties that change, whereas a zone transfer requires replication of the entire zone database. Because each DC has a copy of the Active Directory database for the domain, any DC can become a DNS server for an Active Directoryintegrated zone simply by adding the zone to its DNS server configuration. All DNS servers that are authoritative for an Active Directoryintegrated zone are peers, and there is no distinction between primary and secondary zones. Consequently, it is not necessary to manage zone data only on the DNS server that supports the primary copy of the zone.
Active Directoryintegrated zones support secure dynamic updating. When you integrate a zone into Active Directory, Access Control Lists are enabled that determine the users and groups that can update the zone or specific resource records. Windows 2000 DNS clients can update the zone directly, whereas legacy clients update the zone using DHCP as a proxy.
If you have a small organization, you will probably be quite happy with a single DNS domain. Management is simplified, and short names are better for users. When was the last time you typed a DNS name with more than three levels in addition to the hostname?
But there are at least two good reasons for creating subdomains and delegating their authority to additional name servers:
Scaling. If your domain has grown too large, or the demand on your servers has become too great, delegation provides a method of scaling by hosting several smaller domains on multiple DNS servers.
Delegation of Control. If your organization has multiple sites or departments, it might be necessary to delegate control of some of your DNS namespace. This can only be done by creating subdomains.
Let's look at two scenarios for Pseudo Corp, with sites in Chicago, Paris, and Tokyo. There are several questions to answer:
Do we want to create subdomains for locations, for example, tokyo.pseudo-corp.com?
Do we want to create subdomains for departments, for example, sales. pseudo-corp.com or sales.chicago.pseudo-corp.com?
Remember that there is no fixed relationship between a host's domain name and its physical location or the department in which it is used. http://www.pseudo-corp.com doesn't have to be in a tokyo.pseudo-corp.com domain, even if it is located in Tokyo. A given host can even be known by two names. You might call a host http://www.tokyo.pseudo-corp.com for administrative purposes, so that you make it clear where the machine is located. You could also give it the name http://www.pseudo-corp.com because that's what the public expects your Web server to be called. DNS is very flexible.
So let's investigate two scenarios, one a simplified approach with central administration of the entire DNS database, and one, more elaborate, with delegated control of subdomains.
First, let's assume that the DNS database will be centrally controlled. A name server in Chicago will host the primary zone database, and we will locate a DNS server at each site to host secondary copies of the zone. To keep things simple, we won't create zones for locations. All the resource records will be stored in the pseudo-corp.com domain.
Figure 3.4 illustrates this simplified approach. Each site has a DNS server that can respond to local queries. Once a day, zone transfers are scheduled to copy changes made to the primary zone database in Chicago to the DNS servers in Tokyo and Paris.
An advantage of this approach is that all DNS administration is centralized. Secondary zones are essentially maintenance free, so the staff in Tokyo and Paris don't require a lot of DNS expertise.
Strictly speaking, it is not necessary to place DNS servers at Tokyo and Paris. Users there could easily configure their systems to use the DNS servers in Chicago. But local servers reduce WAN traffic, and WAN bandwidth is expensive. Also, local DNS servers provide added fault tolerance.
Tokyo and Paris might not be too happy with this approach. When a name change is needed at one of those locations, they must send the change request to Chicago and wait while staff in Chicago make the change, and a zone transfer takes place. Either because of the delay involved, or because Tokyo and Paris demand control of their local namespace, it might be necessary to establish location subdomains and delegate control of those subdomains to local administrators.
You can't delegate control for part of a domain. The only way to give Tokyo control of its local domain names is to give Tokyo its own domain. So let's set up chicago.pseudo-corp.com, tokyo.pseudo-corp.com, and paris.pseudo-corp.com domains along with a suitable array of primary and secondary zones. The result looks like Figure 3.5.
Why doesn't Figure 3.5 include a zone for chicago.pseudo-corp.com? A separate zone isn't necessary. Chicago is a subdomain of pseudo-corp.com. Because the Chicago name servers will have the primary copies of data for the parent and child domains, chicago can be placed in the zone for pseudo-corp.com. A single zone takes care of both the parent and the child.
This approach doesn't require more hardware than the centrally managed approach in Figure 3.4. It does require that administrators in Paris and Tokyo understand DNS, and it does add another level to the organization's DNS names. The decision to centralize or distribute DNS authority within an organization requires careful consideration.
As you will see later in the chapter, these concerns are less prominent when DNS is integrated with Active Directory. The distinction between primary and secondary zones disappears, and it becomes possible to administer DNS from any location.
Reducing WAN Traffic with Forwarding DNS Servers
The value of a forwarding DNS server is a bit difficult to comprehend unless you picture a large enterprise network that has multiple DNS servers, such as the organization shown in Figure 3.6. A DNS server maintains a cache of recently resolved names. If a client requests resolution of a name, the DNS server first looks for the name in its cache. Thus, if many clients are making the same request, the DNS server can respond using the data in its cache after making a single outside lookup request.
It is particularly desirable to cache name lookups made through WANs such as the Internet because WAN connections have bandwidth limitations, and it is a waste of WAN capacity to repeatedly look up the same names. But, what happens if a large enterprise has many DNS servers independently making DNS queries to the Internet? There is a good chance that information on one DNS server might satisfy a lookup request that is received by another DNS server. However, knowing what we know now, there is no way for the DNS servers to consolidate the data in their caches. In Figure 3.6, suppose that several clients are requesting DNS to resolve the name http://www.microsoft.com. Because the DNS servers operate independently, each must process the query.
That's where a forwarding DNS server, also referred to as a forwarder, or a cache-only name server, comes in. Typically, the forwarder is not used directly by DNS clients and is not authoritative for any domains. Rather, as shown in Figure 3.7, local DNS servers send to the forwarding DNS server all queries that they cannot resolve using data in their cache or in zones for which they have copies. Consequently, the forwarding server has in its cache the results of every outside DNS query generated by the enterprise. This makes it much more likely that a DNS request can be satisfied locally without generating traffic on the WAN.
Reverse Lookup Zones
Until now, we have been looking only at the way DNS resolves a hostname to an IP address. Occasionally, it is necessary to take a known IP address and match it to a domain name. Resolving an IP address to a domain name is called a reverse lookup.
There is an entire naming hierarchy on the Internet just for reverse lookups. Reverse-naming zones are also called in-addr.arpa zones because the top two levels of the reverse-naming tree are named arpa (top level) and in-addr (second level). (Welcome to one of the fossils that will, perhaps forever, remind us of the days before the ARPAnet became known as the Internet.)
Figure 3.8 shows how the in-addr.arpa hierarchy is structured and the procedure for resolving the IP address 172.25.133.110 to a resource record that identifies the domain name of the host with that IP address. In this case, the name is drew.pseudo-corp.com. Layers three through six in the hierarchy correspond to octets in the available IP addresses, beginning with the first octet in level three and proceeding to the fourth octet at level six.
Thus, searching down the tree, you can find a domain that matches every possible netid for a Class A, B, or C network. Within the in-addr.arpa domains, Pointer (PTR) resource records match the last octet of a host's IP address to its hostname.
After subjecting you to that explanation, I'll point out that you might never need to set up a reverse-naming zone. Very, very few processes perform reverse lookups. I encountered the need for reverse lookup capability once on the Internet when I tried to download some "not for export" encryption software. The host system did a reverse lookup to ensure that I was working from a host that was in a domain registered in the United States. You might run into an occasional process that demands reverse lookups, but they are few in number. (One notable exception is the NSLOOKUP utility described later in the chapter. NSLOOKUP queries DNS to determine the domain names of the DNS servers that correspond to the IP addresses specified in the client's DNS servers configuration parameters.)
The domain structure in Figure 3.8 implies that reverse lookups are supported only for class-based IP addresses that divide netids from hostids on eight-bit boundaries. A classless reverse lookup scheme is documented for Windows NT 4.0 DNS.
If your ISP has assigned your organization a classless IP address range, you will probably need to obtain the cooperation of the ISP to maintain your reverse lookup zones on their DNS servers. In some cases the ISP will insist on managing all the reverse lookup zones for the IP addresses they support, but some ISPs are willing to delegate responsibility to the organization using the address range.
The classless reverse lookup scheme for Windows NT 4 is documented in Microsoft Knowledge Base article Q174419, available at http://support.Microsoft.com/search/default.asp. I have been unable to find documentation for a similar scheme for Windows 2000, but I have been able to get the Windows NT 4 scheme working on Windows 2000. See the section "Configuring Reverse Lookup Zones to Support Classless IP Addresses" later in the chapter for more information.