Managing Lightweight Directory Access Protocol Policies

To ensure that domain controllers can support service level guarantees, you need to specify operational limits for a number of Lightweight Directory Access Protocol (LDAP) operations. These limits prevent specific operations from adversely impacting the performance of the server and also make the server resilient to denial of service attacks.

LDAP policies are implemented by using objects of the class queryPolicy. Query Policy objects can be created in the container Query Policies, which is a child of the Directory Service container in the configuration naming context. For example: cn=Query-Policies, cn=Directory Service, cn=Windows NT, cn=Services < configuration naming context >.

A domain controller uses the following three mechanisms to apply LDAP policies:

  • A domain controller might refer to a specific LDAP policy. The nTDSASettings object includes an optional attribute queryPolicyObject, which contains the distinguished name of a Query Policy.

  • In the absence of a specific query policy being applied to a domain controller, the domain controller applies the Query Policy that has been assigned to the domain controller's site. The ntDSSiteSettings object includes an optional attribute queryPolicyObject, which contains the distinguished name of a Query Policy.

  • In the absence of a specific domain controller or site Query Policy, a domain controller uses the default query policy named Default-Query Policy.

A Query Policy object includes the multivalued attributes LDAPIPDenyList and LDAPAdminLimits. Ntdsutil allows the administrator to set the LDAP administration limits and IP Deny list for the Default-Query Policy object.

The LDAP administration limits (with defaults in parentheses) are the following:

InitRecvTimeout    Initial receive time-out (120 seconds).

MaxConnections    Maximum number of open connections (5000).

MaxConnIdleTime    Maximum amount of time a connection can be idle (900 seconds).

MaxActiveQueries    Maximum number of queries that can be active at one time (20).

MaxNotificationPerConnection    Maximum number of notifications that a client can request for a given connection (5).

MaxPageSize    Maximum page size supported for LDAP responses (1000 records).

MaxQueryDuration    Maximum length of time the domain controller can execute a query (120 seconds).

MaxTempTableSize    Maximum size of temporary storage allocated to execute queries (10,000 records).

MaxResultSetSize    Maximum size of the LDAP Result Set (262144 bytes).

MaxPoolThreads    Maximum number of threads created by the domain controller for query execution (4 per processor).

MaxDatagramRecv    Maximum number of datagrams that can be processed by the domain controller simultaneously (1024).

Table C.8 lists and describes the LDAP policies commands.

Table C.8 LDAP Policies Commands

Command

Description

Cancel

Cancels any uncommitted modifications of the LDAP administration limits to the default query policy.

Commit

Commits all modifications of the LDAP administration limits to the default query policy.

List

Lists all supported LDAP administration limits for the domain controller.

Set %s1 to %s2

Sets the value of the LDAP administration limit % s1 to the value % s2 .

Show values

Shows the current and proposed values for the LDAP administration limits.