Replicação é um método muito utilizado quando trabalhamos em um ambiente corporativo, onde temos a necessidade de alta disponibilidade nos serviços. Na verdade replicação é a manutenção de uma cópia, seja parcial ou total, dos dados em outros servidores.
No OpenLDAP existem duas técnicas distintas de replicação, slurpd e syncrepl, sendo que a slurpd é uma técnica mais antiga e que foi descontinuada na versão 2.4 do OpenLDAP por possuir uma série de limitações que foram supridas por sua sucessora, a syncrepl. As principais limitações eram a replicação parcial de uma base e a utilização de mais de um servidor Master.
Quando
trabalhamos com o syncrepl, o servidor LDAP pode assumir duas posturas
quanto à
replicação, Master ou Slave. Quando Master, o
servidor
assume todas as funções de um servidor OpenLDAP , desde a inserção,
atualização
e consulta dos dados. Porém quando slave, o servidor só
aceitará
execuções de consultas em sua base de dados quando originadas de
máquinas clientes. Assim, para que qualquer informação seja alterada, a solicitação deverá
ser
feita ao servidor Master, que se encarregará de replicar as
alterações para
seus servidores slaves.
Replicação Master x Slave
Nesse método de replicação temos um único servidor Master, que tem seu conteúdo replicado em todos os seus servidores slaves. Nesses servidores slaves não ocorre entrada de dados, apenas replicam passivamente os dados de um servidor principal. Esse método de replicação é o mais comum e atende a grande parte das demandas de servidores LDAP.
Replicação Master x Master (multimaster)
Replicação multimaster é um método de replicação mais recente no OpenLDAP, porém já implementado no Active Directory desde suas primeiras versões. Esta é uma replicação que atende a demandas muito singulares e apesar de funcionar muito bem ainda é pouco difundida e aplicada.
Esta replicação consiste na utilização de dois ou mais servidores Masters, independentes, os quais possuem todas as suas funcionalidades ativadas, porém é criado por parte dos servidores um controle interno para que seja possível manter a integridade dos dados, algo que era muito mais simples de controlar quando existia uma única entrada de dados.
Diretórios Distribuídos
Utilizando o OpenLpad com o método de replicação syncrepl podemos não somente criar uma cópia da árvore de diretórios em outros servidores, mas também criar políticas de replicação e replicar a cada servidor somente aquilo que se pretende que o mesmo tenha acesso, assim, por exemplo, quando temos uma empresa com sede em Minas Gerais e filial em São Paulo, a mesma não precisa replicar toda sua base para a filial, apenas aqueles usuários que a pertençam, evitando assim um tráfego desnecessário na rede além de aumentar a segurança.
Exemplo de configuração
Bom, abaixo iremos apresentar um exemplo de configuração de replicação para o OpenLDAP, fazendo uso da estrutura Master x Slave. Consideraremos que já possui dois servidores configurados com o servidor OpenLDAP instalado e funcionando, assim apenas demonstraremos os parâmetros relacionados à replicação entre os servidores. A distribuição utilizada foi o debian 5 e o servidor OpenLDAP na versão 2.4.9.
Configuração Master x Slave
- Configurando o servidor MASTER
Inicialmente, o arquivo a ser alterado é o arquivo principal de configuração do OpenLDAP o /etc/ldap/slapd.conf, alterando o parâmetro modulepath para syncprov e inserindo as seguintes linhas logo abaixo da opção "índex":
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 100Devemos Inserir também junto a ACL responsável pelos atributos de senha, userPassword e shadowLastChange a seguinte linha:
by dn="cn=replicator,dc=dominio,dc=com,dc=br" readAssim inserimos a permissão para o usuário replicador, o qual deve ser criado anteriormente, ler os campos de senha dos usuários, pois sem o acesso a leitura ele não conseguiria efetuar a replicação completa da base. Neste ponto foi reiniciado o servidor com o comando:
/etc/init.d/slapd restart - Configurando o servidor SLAVE
Iniciaremos a configuração do servidor slave editando o arquivo de configuração /etc/ldap/slapd.conf e removendo o caracter # antes da linha "rootdn", e logo após inserimos as seguintes linhas abaixo de "index":
syncrepl rid=1
provider=ldap:// servidor1.dominio.com.br:389
type=refreshAndPersist
retry="5 + 5 +"
interval=00:00:00:10
searchbase="dc=dominio,dc=com,dc=br"
filter="(objectClass=*)"
scope=sub
attrs="*"
schemachecking=on 41
bindmethod=simple
binddn="cn=replicator,dc=dominio,dc=com,dc=br"
credentials=senha_do_usuario_replicatorApós os procedimentos acima citados, paramos o servidor OpenLDAP , removemos os diretórios e novamente iniciamos o servidor, para isso utilizamos as seguintes linhas de comando:
/etc/init.d/slapd stop
rm /var/lib/ldap/*
/etc/init.d/slapd startAssim temos agora os dois servidores configurados, sendo que os dados do servidor1.dominio.com.br estão sendo replicados para o servidor2.dominio.com.br, porém o mesmo não tem autoridade sobre os dados fazendo com que para alterarmos qualquer informação na base, teremos que fazer isso no servidor1.dominio.com.br e essa atualização será replicada de imediato para o servidor slave.








