h2. Replication Apache Directory Server v2.0 supports master-slave replication. It can also act as a slave to any LDAP V3 server which implements RFC 4533(a.k.a syncrepl), OpenLDAP is one such server. {info:icon=false}We use the word *{_}consumer/client/slave{_}* interchangeably for any server that is acting as a replica by receiving data from another server. Similarly we use the word *{_}provider/master{_}* for any server that is serving its data to one or more servers {info} h3. Configuring a Provider\\ h3. Configuring a Consumer All the configuration data is stored in DIT (Directory Information Tree) itself, so the configuraion can be changed with any LDAP client (like Apache Directory Studio) or by using any text editor. All the configuration about a provider on a consumer server will be placed under the DN *ou=replProviders,ou=config*. The objectclass used for all such entries is *ads-replProvider*. Example configuration entry on a consumer/slave server to replicate with a replica peer/provider looks like {info:icon=false} Note: the below text is taken directly from a LDIF file so the 'ads-repluserpassword' attribute's value is Base64 encoded dn: ads-dsReplicaId=1,ou=replProviders,ou=config objectclass: ads-replProvider ads-dsreplicaid: 1 ads-replrefreshinterval: 60000 ads-repluserpassword:: c2VjcmV0 ads-repluserdn: cn=Manager,dc=example,dc=com ads-replprovhostname: 192.168.22.106 ads-replbase: dc=example,dc=com{info} The following are the options available for configuring || Name \\ || Description \\ || Mandatory \\ || Type \\ || Default Value || | ads-dsReplicaId | The unique id given to a provider configuration entry \\ |   YES \\ | Integer \\ |   N/A \\ | | ads-replBase | The DN of the replication area e.x dc=example,dc=com \\ |   YES | String \\ |   N/A \\ | | ads-replProvHostName | The host name of the syncrepl provider server \\ |   YES | String \\ |   N/A \\ | | ads-replAliasDerefMode | AliasDerefMode to be used in the sync search request. \\ Valid values are 0 (NEVER_DEREF_ALIASES) or 2 (DEREF_FINDING_BASE_OBJ) | \\   NO \\ | Integer |    0  \\ (NEVER_DEREF_ALIASES) \\ | | ads-replAttribute | The attribute values that need to be replicated \\ |   NO | String |   * \\ (ALL_USER_ATTRIBUTES) \\ | | ads-replProvPort | The port number of the provider host \\ |   NO | Integer | 389 \\ | | ads-replRefreshInterval | The time interval between successive refreshOnly synchronization sessions \\ |   NO | Long | 60000 ms (1 min) \\ | | ads-replRefreshNPersist | A flag indicating the refreshAndPersist mode of replication. If set to 'false'  \\  uses refreshOnly mode of replication \\ |   NO | boolean \\ | true \\ | | ads-replSearchScope | The scope of the replication search. Available scopes are \\     0 ( OBJECT ), \\     1 ( ONELEVEL ), \\     2 ( SUBTREE ) \\ |   NO | Integer | 2 ( SUBTREE ) | | ads-replSearchFilter | The search filter used while retrieving results \\ |   NO | String | (objectClass=*) | | ads-replSearchSizeLimit | The size limit imposed on the number of search results to be returned during \\  initial content refresh |   \\   NO | Integer | 0 (NO LIMIT) \\ | | ads-replSearchTimeOut | The time limit imposed on the replication search operation during initial \\  content refresh \\ |   NO | Integer | 0 (NO LIMIT) | | ads-replUserDn | The user DN used to bind to the replica peer \\ |   NO | String | N/A | | ads-replUserPassword | Password used to bind to the replica peer \\ |   NO | OctetString | N/A | | ads-enabled | A flag to enable/disable a replication configuration entry \\ |   NO | boolean \\ | true |