2.2.8.1.1 DNS_RPC_AUTOCONFIG

The DNS_RPC_AUTOCONFIG enumeration specifies a set of autoconfiguration operations to be immediately performed by the DNS server. Any combination of the values below can be specified, with the exception of the following values, of which at most one value is specified: DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT, DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND, and DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND. An implementation SHOULD<62> support all values in this table.

If the DNS server will act as the first DNS server for a new domain in a new forest, the following values SHOULD<63> be specified: DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS, DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS, and DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT.

If the DNS server will act as a DNS server in an existing domain on a writeable domain controller, the following values SHOULD be specified: DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS, DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS, and DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND.

In all other cases, including a DNS server for a new child domain or a DNS server operating on a read only domain controller (RODC), the following values SHOULD be specified: DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS, DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS, and DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND.

The DNS server performs autoconfiguration in the following order: root hints, forwarders, self-pointing, and zone creation.

The DNS server SHOULD<64> ignore any bit value not specified in the table below, with one exception: A value of 0x00000000 MUST be treated identically to 0xFFFFFFFF (DNS_RPC_AUTOCONFIG_ALL).

Constant/value

Description

DNS_RPC_AUTOCONFIG_INTERNAL_ROOTHINTS

0x00000001

The server automatically configures root hints. To construct root hints, the server sends a DNS query of type NS for the DNS root name to each of the DNS servers and for each of the local machine's network adapters. The server builds its root hints by selecting the set of NS records that appear in each of the aforementioned NS query responses. If the DNS server cannot find a non-empty set of root hints, it performs no action.

DNS_RPC_AUTOCONFIG_INTERNAL_FORWARDERS

0x00000002

The server automatically configures forwarders. To construct forwarders, the DNS server locates a peer DNS server by sending a DNS query of type NS for the domain name specified in the pszNewDomainName field of DNS_RPC_AUTOCONFIGURE (section 2.2.8.2.1). For each peer server, the DNS server performs a ServerInfo query (section 3.1.4.7). The DNS server uses the set of forwarders in the result of this query from the first peer available. If no peer servers with forwarders can be found, the DNS server collects all of the DNS servers for each of the local machine's network adapters and uses the resulting list of IP addresses as the new list of forwarders.

DNS_RPC_AUTOCONFIG_INTERNAL_ZONES

0x00000004

If the AdminConfigured DNS server property (section 3.1.1.1.1) has been set to a nonzero value, the server takes no action. Otherwise, the server checks to see whether it is the only DC in the forest. If the server is not a DC or is not the only DC in the forest, the server MUST perform no action. To determine whether the server is the only DC in the forest, it performs an LDAP query on the local directory server using the LDAP filter "(objectCategory=ntdsDsa)" ([MS-ADTS] section 6.1.1.2.2.1.2.1.1) with the credentials of the user who initiated the autoconfigure operation or the DNS Server Credentials (section 3.1.1) if user credentials are not available. If the LDAP result count is one, the server can assume that it is the only DC in the forest. If the local directory server does not respond or does not generate a result, then further processing of DNS_RPC_AUTOCONFIG_INTERNAL_ZONES MUST halt, with ERROR_SUCCESS returned.

If the AdminConfigured DNS server property (section 3.1.1.1.1) is zero and the DNS server is the only DC in the forest, the DNS server SHOULD look up the locally configured name of the domain of which the server is a member, and construct two zone names: one equal to the domain name and one equal to the domain name prepended by the string "_msdcs". If neither of these zones currently exists on the DNS server, the DNS server SHOULD create both of these zones.

DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT

0x00000010

The server automatically replaces the server list with the appropriate loop-back address. If this flag is specified, then the server MUST ignore the DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND and DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND flags.

DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_PREPEND

0x00000020

The server automatically inserts the appropriate loop-back address at the start of the server list. If this flag is specified, then the server MUST ignore the DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND flag.

DNS_RPC_AUTOCONFIG_INTERNAL_SELFPOINT_APPEND

0x00000040

The server automatically inserts the appropriate loop-back address at the end of the server list.

DNS_RPC_AUTOCONFIG_INTERNAL_RETURN_ERRORS

0x00008000

If this flag is set then the server will return the errors that it encounters while performing auto-configuration; else ERROR_SUCCESS will always be returned.

DNS_RPC_AUTOCONFIG_ALL

0xFFFFFFFF

The server performs all autoconfiguration operations.