4.10. Distributed Numeric Assignment Plug-in Attributes

The Distributed Numeric Assignment Plug-in manages ranges of numbers and assigns unique numbers within that range to entries. By breaking number assignments into ranges, the Distributed Numeric Assignment Plug-in allows multiple servers to assign numbers without conflict. The plug-in also manages the ranges assigned to servers, so that if one instance runs through its range quickly, it can request additional ranges from the other servers.
Distributed numeric assignment can be configured to work with single attribute types or multiple attribute types, and is only applied to specific suffixes and specific entries within the subtree.
Distributed numeric assignment is handled per-attribute and is only applied to specific suffixes and specific entries within the subtree.

4.10.1. dnaPluginConfig (Object Class)

This object class is used for entries which configure the DNA Plug-in and numeric ranges to assign to entries.
This object class is defined in Directory Server.
Superior Class

top

OID

2.16.840.1.113730.3.2.324

Allowed Attributes

  • dnaType
  • dnaPrefix
  • dnaNextValue
  • dnaMaxValue
  • dnaInterval
  • dnaMagicRegen
  • dnaFilter
  • dnaScope
  • dnaSharedCfgDN
  • dnaThreshold
  • dnaNextRange
  • dnaRangeRequestTimeout
  • cn

4.10.2. dnaFilter

This attribute sets an LDAP filter to use to search for and identify the entries to which to apply the distributed numeric assignment range.
The dnaFilter attribute is required to set up distributed numeric assignment for an attribute.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any valid LDAP filter
Default Value None
Syntax DirectoryString
Example dnaFilter: (objectclass=person)

4.10.3. dnaInterval

This attribute sets an interval to use to increment through numbers in a range. Essentially, this skips numbers at a predefined rate. If the interval is 3 and the first number in the range is 1, then the next number used in the ragen is 4, then 7, then 10, incrementing by three for every new number assignment.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any integer
Default Value None
Syntax Integer
Example dnaInterval: 3

4.10.4. dnaMagicRegen

This attribute sets a user-defined value that instructs the plug-in to assign a new value for the entry. The magic value can be used to assign new unique numbers to existing entries or as a standard setting when adding new entries.
The magic entry should be outside of the defined range for the server so that it cannot be triggered by accident. Note that this attribute does not have to be a number when used on a DirectoryString or other character type. However, in most cases the DNA plug-in is used on attributes which only accept integer values, and in such cases the dnamagicregen value must also be an integer.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any string
Default Value None
Syntax DirectoryString
Example dnaMagicRegen: -1

4.10.5. dnaMaxValue

This attribute sets the maximum value that can be assigned for the range. The default is -1, which is the same as setting the highest 64-bit integer.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range 1 to the maximum 32-bit integer on 32-bit systems and to the maximum 64-bit integer on 64-bit systems; -1 is unlimited
Default Value -1
Syntax Integer
Example dnaMaxValue: 1000

4.10.6. dnaNextRange

This attribute defines the next range to use when the current range is exhausted. This value is automatically set when range is transferred between servers, but it can also be manually set to add a range to a server if range requests are not used.
The dnaNextRange attribute should be set explicitly only if a separate, specific range has to be assigned to other servers. Any range set in the dnaNextRange attribute must be unique from the available range for the other servers to avoid duplication. If there is no request from the other servers and the server where dnaNextRange is set explicitly has reached its set dnaMaxValue, the next set of values (part of the dnaNextRange) is allocated from this deck.
The dnaNextRange allocation is also limited by the dnaThreshold attribute that is set in the DNA configuration. Any range allocated to another server for dnaNextRange cannot violate the threshold for the server, even if the range is available on the deck of dnaNextRange.

Note

If the dnaNextRange attribute is handled internally if it is not set explicitly. When it is handled automatically, the dnaMaxValue attribute serves as upper limit for the next range.
The attribute sets the range in the format lower_range-upper_range.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range 1 to the maximum 32-bit integer on 32-bit systems and to the maximum 64-bit integer on 64-bit systems for the lower and upper ranges
Default Value None
Syntax DirectoryString
Example dnaNextRange: 100-500

4.10.7. dnaNextValue

This attribute gives the next available number which can be assigned. After being initially set in the configuration entry, this attribute is managed by the Distributed Numeric Assignment Plug-in.
The dnaNextValue attribute is required to set up distributed numeric assignment for an attribute.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range 1 to the maximum 32-bit integer on 32-bit systems and to the maximum 64-bit integer on 64-bit systems
Default Value -1
Syntax Integer
Example dnaNextValue: 1

4.10.8. dnaPrefix

This attribute defines a prefix that can be prepended to the generated number values for the attribute. For example, to generate a user ID such as user1000, the dnaPrefix setting would be user.
dnaPrefix can hold any kind of string. However, some possible values for dnaType (such as uidNumber and gidNumber) require only integer values. To use a prefix string, consider using a custom attribute for dnaType which allows strings.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any string
Default Value None
Example dnaPrefix: id

4.10.9. dnaRangeRequestTimeout

One potential situation with the Distributed Numeric Assignment Plug-in is that one server begins to run out of numbers to assign. The dnaThreshold attribute sets a threshold of available numbers in the range, so that the server can request an additional range from the other servers before it is unable to perform number assignments.
The dnaRangeRequestTimeout attribute sets a timeout period, in seconds, for range requests so that the server does not stall waiting on a new range from one server and can request a range from a new server.
For range requests to be performed, the dnaSharedCfgDN attribute must be set.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range 1 to the maximum 32-bit integer on 32-bit systems and to the maximum 64-bit integer on 64-bit systems
Default Value 10
Syntax Integer
Example dnaRangeRequestTimeout: 15

4.10.10. dnaScope

This attribute sets the base DN to search for entries to which to apply the distributed numeric assignment. This is analogous to the base DN in an ldapsearch.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any Directory Server entry
Default Value None
Syntax DirectoryString
Example dnaScope: ou=people,dc=example,dc=com

4.10.11. dnaSharedCfgDN

This attribute defines a shared identity that the servers can use to transfer ranges to one another. This entry is replicated between servers and is managed by the plug-in to let the other servers know what ranges are available. This attribute must be set for range transfers to be enabled.

Note

The shared configuration entry must be configured in the replicated subtree, so that the entry can be replicated to the servers. For example, if the ou=People,dc=example,dc=com subtree is replicated, then the configuration entry must be in that subtree, such as ou=UID Number Ranges, ou=People,dc=example,dc=com.
The entry identified by this setting must be manually created by the administrator. The server will automatically contain a sub-entry beneath it to transfer ranges.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any DN
Default Value None
Syntax DN
Example dnaSharedCfgDN: cn=range transfer user,cn=config

4.10.12. dnaThreshold

One potential situation with the Distributed Numeric Assignment Plug-in is that one server begins to run out of numbers to assign, which can cause problems. The Distributed Numeric Assignment Plug-in allows the server to request a new range from the available ranges on other servers.
So that the server can recognize when it is reaching the end of its assigned range, the dnaThreshold attribute sets a threshold of remaining available numbers in the range. When the server hits the threshold, it sends a request for a new range.
For range requests to be performed, the dnaSharedCfgDN attribute must be set.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range 1 to the maximum 32-bit integer on 32-bit systems and to the maximum 64-bit integer on 64-bit systems
Default Value 100
Syntax Integer
Example dnaThreshold: 100

4.10.13. dnaType

This attribute sets which attributes have unique numbers being generated for them. In this case, whenever the attribute is added to the entry with the magic number, an assigned value is automatically supplied.
This attribute is required to set a distributed numeric assignment for an attribute.
If the dnaPrefix attribute is set, then the prefix value is prepended to whatever value is generated by dnaType. The dnaPrefix value can be any kind of string, but some reasonable values for dnaType (such as uidNumber and gidNumber) require only integer values. To use a prefix string, consider using a custom attribute for dnaType which allows strings.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Valid Range Any Directory Server attribute
Default Value None
Example dnaType: uidNumber

4.10.14. dnaSharedConfig (Object Class)

This object class is used to configure the shared configuration entry that is replicated between masters that are all using the same DNA Plug-in configuration for numeric assignements.
This object class is defined in Directory Server.
Superior Class

top

OID

2.16.840.1.113730.3.2.325

Allowed Attributes

  • dnaHostname
  • dnaPortNum
  • dnaSecurePortNum
  • dnaRemainingValues

4.10.15. dnaHostname

This attribute identifies the host name of a server in a shared range, as part of the DNA range configuration for that specific host in multi-master replication. Available ranges are tracked by host and the range information is replicated among all masters so that if any master runs low on available numbers, it can use the host information to contact another master and request an new range.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Syntax DirectoryString
Valid Range Any valid host name
Default Value None
Example dnahostname: ldap1.example.com

4.10.16. dnaPortNum

This attribute gives the standard port number to use to connect to the host identified in dnaHostname.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Syntax Integer
Valid Range 0 to 65535
Default Value 389
Example dnaPortNum: 389

4.10.17. dnaRemainingValues

This attribute contains the number of values that are remaining and available to a server to assign to entries.
Parameter Description
Entry DN dnaHostname=host_name+dnaPortNum=port_number,ou=ranges,dc=example,dc=com
Syntax Integer
Valid Range Any integer
Default Value None
Example dnaRemainingValues: 1000

4.10.18. dnaRemoteBindCred

Specifies the Replication Manager's password. If you set a bind method in the dnaRemoteBindMethod attribute that requires authentication, additionally set the dnaRemoteBindDN and dnaRemoteBindCred parameter for every server in the replication deployment in the plug-in configuration entry under the cn=config entry.
Set the parameter in plain text. The value is automatically AES-encrypted before it is stored.
A server restart is required for the change to take effect.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Syntax DirectoryString {AES} encrypted_password
Valid Values Any valid AES-encrypted password.
Default Value
Example dnaRemoteBindCred: {AES-TUhNR0NTcUdTSWIzRFFFRkRUQm1NRVVHQ1NxR1NJYjNEUUVGRERBNEJDUmxObUk0WXpjM1l5MHdaVE5rTXpZNA0KTnkxaE9XSmhORGRoT0MwMk1ESmpNV014TUFBQ0FRSUNBU0F3Q2dZSUtvWklodmNOQWdjd0hRWUpZSVpJQVdVRA0KQkFFcUJCQk5KbUFDUWFOMHlITWdsUVp3QjBJOQ==}bBR3On6cBmw0DdhcRx826g==

4.10.19. dnaRemoteBindDN

Specifies the Replication Manager DN. If you set a bind method in the dnaRemoteBindMethod attribute that requires authentication, additionally set the dnaRemoteBindDN and dnaRemoteBindCred parameter for every server in the replication deployment in the plug-in configuration under the cn=config entry.
A server restart is required for the change to take effect.
Parameter Description
Entry DN cn=DNA_config_entry,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
Syntax DirectoryString
Valid Values Any valid Replication Manager DN.
Default Value
Example dnaRemoteBindDN: cn=replication manager,cn=config

4.10.20. dnaRemoteBindMethod

Specifies the remote bind method. If you set a bind method in this attribute that requires authentication, additionally set the dnaRemoteBindDN and dnaRemoteBindCred parameter for every server in the replication deployment in the plug-in configuration entry under the cn=config entry.
A server restart is required for the change to take effect.
Parameter Description
Entry DN dnaHostname=host_name+dnaPortNum=port_number,ou=ranges,dc=example,dc=com
Syntax DirectoryString
Valid Values SIMPLE | SSL | SASL/GSSAPI | SASL/DIGEST-MD5
Default Value
Example dnaRemoteBindMethod: SIMPLE

4.10.21. dnaRemoteConnProtocol

Specifies the remote connection protocol.
A server restart is required for the change to take effect.
Parameter Description
Entry DN dnaHostname=host_name+dnaPortNum=port_number,ou=ranges,dc=example,dc=com
Syntax DirectoryString
Valid Values LDAP, SSL, or TLS
Default Value
Example dnaRemoteConnProtocol: LDAP

4.10.22. dnaSecurePortNum

This attribute gives the secure (TLS) port number to use to connect to the host identified in dnaHostname.
Parameter Description
Entry DN dnaHostname=host_name+dnaPortNum=port_number,ou=ranges,dc=example,dc=com
Syntax Integer
Valid Range 0 to 65535
Default Value 636
Example dnaSecurePortNum: 636