Article ID: 198408 - View products that this article applies to.
This article was previously published under Q198408
IMPORTANT: This article contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.
This article consists of 3 parts and describes settings for the Microsoft Domain Name Service (DNS) SERVER. You can modify most settings using the DNSADMIN tool, although some settings can only be altered using Registry Editor.
For additional information, please see the following articles in the Microsoft Knowledge Base:
(http://support.microsoft.com/kb/198409/EN-US/ )Microsoft DNS Server Registry Parameters, Part 2 of 3
(http://support.microsoft.com/kb/198410/EN-US/ )Microsoft DNS Server Registry Parameters, Part 3 of 3
WARNING: Using Registry Editor incorrectly can cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk.
For information about how to edit the registry, view the "Changing Keys And Values" Help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" Help topics in Regedt32.exe. Note that you should back up the registry before you edit it.
To change these parameters, use the following procedure:
Server ParametersSeveral registry parameters determine behavior of the entire server. Each of these is a registry value under
NOTE: These registry keys are read only at startup. Some may be reset and, in some cases, the server behavior dynamically changed, through the DNS Administrator. But if manually reset the DNS server MUST be restarted to pick up the new value.
Value: BootMethod Added: SP4 (April 98) Type: DWORD Defaul NoKey Functio Determine boot method.
This key determines the source of the DNS boot information server configuration, and list and configuration of authoritative zones. This key makes the EnableBootMethod key (see below) obsolete.
NOTE: If the EnableRegistryBoot key is read, the DNS server will read its value to determine the proper value of the BootMethod key; no administrator intervention is required. The EnableRegistryBoot key is kept around for backward compatibility.
There are three possible sources of boot information and three possible BootMethod values:
#define BOOT_METHOD_UNINITIALIZED (0) #define BOOT_METHOD_FILE (1) #define BOOT_METHOD_REGISTRY (2)
Value: EnableRegistryBoot Added Windows NT 4.0 Type: DWORD (Boolean) Defaul NoKey Function: Determine boot method.
Use of this key is only for pre-Service Pack 4 versions of Dns.exe; see above key "BootMethod" for explanation.
If the key does not exist or is 0, the server attempts to find a "boot" file in the DNS directory and use it to determine server configuration and authoritative zones. If the boot file is NOT found, the server will start up with no authoritative zones as a caching-only server (a message is logged to this effect).
If the key is nonzero, DNS starts using only registry information, and the boot file, if any, is ignored.
Value: RpcProtocol Added: Windows NT 4.0 Type: DWORD Default: 0xffffffff (Use all protocols) Function: Determine which protocols administrative RPC runs over
If the key is nonzero, the key value is matched bit-wise against available RPC protocols:
TCP/IP -- 0x1 NamedPipes -- 0x2 LPC -- 0x4
For those protocols contained in the key, the DNS server sets up RPC endpoints to allow connections over those protocols from the admin tool.
Disabling RPCIf a computer is on the Internet, it is often desirable to disable RPC. If this is being done for the entire computer, the DependOnService DNS server key (this is under DNS key, not under DNS\Parameters) should be edited to remove the last two entries, RpcSS and NtLmSsp. This eliminates the dependency of the DNS server on RPC and the standard Windows NT network security information, allowing it to boot without those services.
Starting with Windows NT 4.0 SP4, the code is more responsive to a desire to turn RPC off. Setting the RpcProtocol key to zero will suffice.
Value: EventLogLevel Added: SP4 (April 98) Type: DWORD Default: NoKey (Log all events) Function: Determines level of logging to event log.
The DNS server can generate quite a few events of both a serious and a routine nature. This key allows the administrator to limit the logging to the level preferred.
The value of the key is the value of the LEAST serious event the DNS server will log, with the event types taken directly from the Win32 SDK:
#define EVENTLOG_ERROR_TYPE 0x0001 #define EVENTLOG_WARNING_TYPE 0x0002 #define EVENTLOG_INFORMATION_TYPE 0x0004
Examples: By default, a nonexistent EventLogLevel key has the value 4, and all events are logged. To log only warning and error events, set the registry key to 2. To log only errors, set the registry key to 1. To disable event logging completely, set the registry key to 0.
Value: LogLevel Added: SP4 (April 98) Type: DWORD (Bitfield) Default: NoKey (Zero -- No logging) Function: Determines level of logging to file (Dns.log).
The DNS server can generate a more detailed log than is practical to include in the Windows NT event log. This includes everything from simply including events excluded from the event log, to a summary of every packet in and out of the server.
The registry key is a DWORD bit field indicating the various portions of logging to enable:
#define DNS_LOG_LEVEL_ALL_PACKETS 0x0000ffff #define DNS_LOG_LEVEL_NON_QUERY 0x000000fe #define DNS_LOG_LEVEL_QUERY 0x00000001 #define DNS_LOG_LEVEL_NOTIFY 0x00000010 #define DNS_LOG_LEVEL_UPDATE 0x00000020 #define DNS_LOG_LEVEL_QUESTIONS 0x00000100 #define DNS_LOG_LEVEL_ANSWERS 0x00000200 #define DNS_LOG_LEVEL_SEND 0x00001000 #define DNS_LOG_LEVEL_RECV 0x00002000 #define DNS_LOG_LEVEL_UDP 0x00004000 #define DNS_LOG_LEVEL_TCP 0x00008000 #define DNS_LOG_LEVEL_DS_WRITE 0x00010000 #define DNS_LOG_LEVEL_DS_UPDATE 0x00020000 #define DNS_LOG_LEVEL_FULL_PACKETS 0x01000000 #define DNS_LOG_LEVEL_WRITE_THROUGH 0x80000000
Value: NoRecursion Added: Windows NT 4.0 Type: DWORD (Boolean) Default: NoKey (Do recursion) Function: Determine whether or not server does recursive lookups.
DNS server can answer queries for names outside of their authoritative zones in two ways:
If the NoRecursion key is nonzero, the DNS server always uses referral regardless of the client request. NoRecursion would generally be used when clients are being limited to resolving names on a given server (for example, names on an intranet), or when the server is incapable of resolving external names and the clients are expected to fall over to another DNS server for resolution of external (Internet) names.
Value: Forwarders Added: Windows NT 4.0 Type: BINARY Default: NoKey (No forwarders) Function: Determines forwarders server list.
DNS servers may be configured to send all their recursive queries to a selected list of servers. Queries to these forwarders are done recursively (as a normal client query), rather than iteratively. The forwarder contacts the remote server or servers until it gets the response and responds to the DNS server with the complete query response, suitable for sending back to the client. During this process, the DNS server using forwarders essentially behaves as a DNS client to the forwarding server.
This behavior is often desirable when access to remote DNS servers (on the Internet) requires use of a slow or more expensive link. Using forwarders can cut down on expensive traffic in two ways.
The Forwarders key is a list of IP addresses for the DNS server to forward to. The list is not dotted IP strings, but a counted array of raw addresses in net byte order. It should be configured through the Server Properties, Forwarders dialog box in the Administrator tool. Editing the registry key is discouraged. If the Forwarders key exists, the DNS server forwards to servers in the list. If the Forwarders key does not exist, the DNS server uses the normal iterative query process to answer recursive queries for remote names.
Value: IsSlave Added: Windows NT 4.0 Type: DWORD (Boolean) Default: NoKey (Not a slave) Function: Determine if slave server.
When a DNS server is using Slave (and Forwarders -- see Forwarders key description), it can stop and fail the query when it does not get a response from any of the forwarders servers /Vs Forwarders: configuration where the DNS server can attempt to resolve the query itself using normal iterative queries. The key is NOT read if Forwarders are not configured. If the IsSlave key does not exist or is zero, the DNS falls back to normal recursive query resolution when forwarders fail to respond.
If the IsSlave key is nonzero, the server fails (answers the original query with SERVER_FAILURE) when the forwarders do not respond.
Do NOT change this key. Use the Forwarders dialog box in the DNS Administrator tool to set forwarding properties. If this key is deleted while forwarders are configured, the server may fail to start or fail to resolve remote names properly.
Value: ForwardingTimeout Added: Windows NT 4.0 Type: DWORD Default: NoKey Function: Set forwarding timeout.
When using forwarders, queries are sent to each forwarder in the list, which is given a timeout within which to respond before the next forwarder is tried. The ForwardingTimeout key is read ONLY when forwarders are configured. Its value determines the forwarding timeout in seconds.
Do NOT adjust this key. Use the Forwarders dialog box in the DNS Administrator tool to set forwarding properties. If this key is deleted while forwarders are configured, the server may fail to start or fail to resolve remote names properly.
Value: ForwardDelegations Added: SP4 (April 1998) Type: DWORD (Boolean) Default: NoKey (Do NOT forward delegations.) Function: Determine whether queries to delegated sub-zones are forwarded.
Queries to delegations are sent directly, not forwarded.
ExampleA server hosts samples.microsoft.com and it is set up to forward across a firewall to ns.isp.com. Another server has a delegation for finance.samples.microsoft.com to ns.finance.samples.microsoft.com, a computer inside the firewall. If the second server receives a query for golf-schedule.finance.samples.microsoft.com, the desired behavior is NOT to send the query out to the forwarder. Rather it should send it directly to ns.finance.samples.microsoft.com.
The ForwardDelegations value allows you to revert to previous forward everything behavior. This would only be desired when the delegation itself was at a remote site that was reachable through the forwarder.
Value: MaxCacheTtl Added: SP4 (April 1998) Type: DWORD Default: NoKey (Cache for up to one day) Function: Set maximum caching TTL.
Records from recursive queries are cached by the DNS server. The length of time they remain in the cache is determined by the TimeToLive (TTL) field in the record. This field is a DWORD giving the caching time in seconds; therefore, the TTL can be quite long. Limiting the caching time can help limit the memory used by the cache and make sure that stale data does not accumulate in the cache.
Article ID: 198408 - Last Review: October 31, 2006 - Revision: 1.3