DNS Planning Considerations
Since DNS is the preferred name resolution method in Windows 2000, it is one of the most important aspects of a migration. In fact, nearly all problems I have seen in the field with AD have stemmed from improperly configured DNS either on the client side, or on the server. From a planning perspective, there are three namespace scenarios we will be confronted with.
Three Namespace Scenarios
There are three scenarios that may exist when designing the namespace. The first, and most common in a pure NT environment, is there is no DNS infrastructure. If DNS is in use, it is only for Internet name resolution, and therefore is hosted by the ISP. The second scenario, and one that is common in heterogeneous environments, is that there is an existing DNS server, but it does not support SRV records. The last, and most rare, scenario is that there is an existing DNS server, and it supports SRV records. We will look at each of these scenarios below, and offer possible courses of action for each.
No existing DNS infrastructure
If there is no DNS server on the network, then the solution is easy: Use the Windows 2000 DNS server. This has the advantage of simplicity, and it allows for secure updates and AD integrated zones (which simplifies replication). While these are nice features, the most important feature for us is the support for the SRV resource records that are used to locate domain controllers and other services. In addition, the dynamic update feature reduces administrative maintenance.
Namespace overlap
AD namespace overlap occurs when you give AD the same domain name as an existing one. For example, if fullservice.net is the currently used domain, and it is also the name of the forest root, then there will be overlap. If there is overlap, then we need to make sure we have adequate DNS coverage. If the existing authoritative DNS server doesn't support SRV records, then we have to either upgrade the DNS server, or migrate it to the Windows 2000 DNS server. If we upgrade our DNS server, then we simply point AD to it.
We can also migrate our existing DNS servers to Windows 2000. To do this, we introduce a Windows 2000 DNS server into the environment, make it a secondary DNS server for the existing DNS namespace, and then do a zone transfer. Next we make it a primary DNS server for the domain, and then we decommission the old one. This works rather well, and is actually pretty cool. Later, we can make it an AD integrated DNS server. This is actually my preferred scenario (and it really gets the goat of old Unix hacksalways an added bonus!).
There is of course, another option. We can delegate the zones that contain the DC with the specific records to the Windows 2000 DNS server. DNS management is often a political struggle; in order to avoid this pain, we can simply delegate the AD specific zones to our new Windows 2000 DNS server. The zones we need to delegate are:
- _msdcs.fullservice.net
- _TCP.fullservice.net
- _udp.fullservice.net
- _sites.fullservice.net
You can then AD integrate these four subdomains. This is, of course, much more complicated, and you do not want to do it on a wide scale, but you can do it for the root namespace. It is a solution I have implemented for a few clients. Then we allow the Windows 2000 DNS server to operate for the SRV records. Of course, we still need an A record for the host parent, and in a large domain this could be a problem. In a smaller domain it can be done by hand. You can then disable the A record creation on logon for the domain through the registry.
In summary, then, when the AD namespace overlaps with the existing namespace, you have a few choices as to how to handle it. If the authoritative DNS server does not support SRV records, then you can upgrade the server, migrate to Windows 2000 DNS, or delegate the zones that contain the DC specific records, to a Windows 2000 DNS server or other upgraded DNS servers. If, on the other hand, the authoritative DNS server supports SRV records, then you can either use it or migrate it to Windows 2000 DNS.
Namespace does not overlap
If the AD namespace does not overlap with an existing one, then the situation is much easier. For instance, if fullservice.net is the currently used domain, while the name of the forest root is internal.fullservice.net, then we do not have an AD namespace overlap. Here we simply delegate the AD namespace to the Windows 2000 DNS server that is running on the DC. This is a quick solution, and has been done many times. It solves the political problem of DNS migration, and allows both DNS systems to interoperate in the same environment. The presence of this type of effective solution can also impact your naming strategy of the root in the first place. Delegate the AD namespace to the Windows 2000 DNS servers running on the DCs. If, however, the authoritative DNS server supports SRV records, then you can use it, or go ahead and migrate it to Windows 2000 DNS servers.
There are other problems that can arise with the split environment: For instance you have an external view, and you have an internal view. The view of the namespace from outside the network and from inside the network can be different. One way to solve this problem can be to use the traditional name on the outside, and change the suffix on the inside of the company. Maybe it is Microsoft.com on the outside, and Microsoft.net on the internal network. This makes it easy for the proxy server to handle. Another way to do this is to delegate the namespace. If you do this, then the proxy server can handle it as well. If you only have a few servers that are accessible from the outside, then you may be able to handle the name resolution issues by creating a few A records on the internal DNS servers.
Best practice for deploying DNS
Based upon our discussion so far, in this section I have collected best practices that have been hammered out in the field from dozens of deployments. While none are cut in stone, they are strongly recommended. As always, the actual solution isIt depends on the situation.
Delegate a DNS zone for each AD domain to the DNS servers running on a DC in that AD domain.
Match your DNS naming partition with AD domain partition.
Install a DNS server on at least two DCs in each AD domain.
Install one DC in each site. Make it AD integrated.
If different domains of the forest are connected over slow links, then delegate the zone_msdcs.forestname and make the DNS servers in every site secondary for this zone. If the root domain is small, then just delegate the whole zone.
Make the child domain AD integrated, and a secondary zone for the root_mscds.
Each client should be configured to query at least two DNS servers, one of which is in the same site.
Domain names greater than 15 characters should be avoided to facilitate NETBIOS name resolution.
Keep clients in default domain.
Avoid CNAMEs.
Avoid A records in other zones.
Bind 8.2.2 is compatible. It supports dynamic update, SRV records, and incremental zone transfer. It can be secondary to MS-DNS, standard zone, and AD integrated zone.
When using AD integrated, and you want a non-MS secondary, then point the secondary to go always to the same primary DNS for a consistent view.
If the entry on the SOA record fails on dynamic update, then Windows 2000 will try other DNS servers for name resolution. Bind 8.2.1 does support AD needs in this regard.
If using bind, then you need to disable name checking to allow ldap SRV records. Check the names master ignore box for the primary zone. Check the names slave ignore box for secondaries. Check names response ignore. For all others, you can use the defaults.