DNS Server Does Not Query Any Request for a Public Hostname (297416)



The information in this article applies to:

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows NT Server 4.0

This article was previously published under Q297416

SYMPTOMS

Your DNS server may not query any request for a public hostname.

CAUSE

A DNS server that is unaware of a record for a hostname queries a root server that is stored in its root hints file (Cache.dns). The root hints file directs the DNS server to a root DNS server. The purpose of the root DNS server is to direct requests on to the next level of DNS resolution. Entries in the Cache.dns file may contain an at sign (@) instead of a period (.) for root servers. For example, the entry may look like this:

@ NS a.root-servers.net.
a.root-servers.net A 198.41.0.4
@ NS b.root-servers.net.
b.root-servers.net A 128.9.0.107
@ NS c.root-servers.net.
c.root-servers.net A 192.33.4.12

However, the entry should look like this:

. NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. A 198.41.0.4
. NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. A 128.9.0.107

The at sign (@) character specifies to a DNS server that the server it is querying is in its same origin. Because server it is querying is not in the same origin as the root DNS servers, the query does not work. It is possible to have a Cache.dns file in the Active Directory. However, when a computer is promoted to a domain controller (DC) the Active Directory could replace the existing Cache.dns configuration.

RESOLUTION

Replace the at sign (@) characters with periods (.) in the Cache.dns file. This will signify to the dns server that the root server is remote.

Modification Type:MinorLast Reviewed:10/13/2004
Keywords:kbnetwork kbprb KB297416