Présentation de OpenLDAP

OpenLDAP est un logiciel libre dérivé du premier serveur LDAP indépendant de l’université de Michigan (1996). Beaucoup d’améliorations ont été par la suite apportées.  On distingue facilement ses atouts techniques d’OpenLDAP :

  • De nombreux backends.
  • Des options de sécurité avancées.
  • De nombreuses extensions implémentées.
  • Supporté sur de nombreuses plates formes.
  • autorise le changement à la volée des options de configuration de slapd.

La version 2.4.31 est à ce jour la dernière version stable d’OpenLDAP

Mécanisme de réplication OpenLDAP

Pour assurer la répartition de charge entre plusieurs serveurs et/ou la tolérance aux pannes, il est nécessaire de disposer de plusieurs LDAP avec des annuaires identiques.

Nous allons dans cet article décrire les différents mécanismes de réplication proposés par l’annuaire open source OpenLDAP.

Les versions antérieures d’OpenLdap utilisaient un mécanisme appelé slurpd (standalone LDAP Update Replication Daemon). slurpd a été remplacé par syncrepl depuis la version 2.4 d’OpenLDAP (LDAP Sync Replication engine).

Syncrepl est plus robuste et permet de mettre en place des architectures beaucoup plus complexes. Il est également normalisé par l’IETF (Internet Engineering Task Force) par la RFC 4533.

L’annuaire OpenLdap propose plusieurs types d’architectures.

  • Une réplication « Maître – Esclaves (langage OpenLDAP : Provider – Consumers).
  • Une réplication multi-maître.
  • Une réplication en mode miroir (2 nœuds qui se synchronisent l’un sur l’autre).

Replication Provider – Consumers

Dans ce mode, il y a un maître (le provider), sur lequel sont réalisées les écritures, et des esclaves (les consumers) qui vont se synchroniser sur le maître (de manière continue ou périodique). Les esclaves sont en lecture seule uniquement.

Avantages :

  • Possibilité d’ajouter facilement des nouveaux consumers.
  • Possibilité de réaliser de la delta-syncrepl : réplication par attribut et non par l’entrée complète (non supporté par la réplication multi-maître).

Inconvénients :

  •  Si le maître est hors service, aucun esclave ne peut facilement prendre sa place : il faut passer par une phase de reconfiguration de l’annuaire.

Réplication multi maitre

Dans ce modèle, plusieurs maîtres cohabitent ensemble sur le réseau. Des modifications peuvent être réalisées sur tous les annuaires du réseau, et les mises à jour sont donc bidirectionnelles. Ce type de réplication est supporté depuis la version 2.4 d’OpenLDAP.

Avantages:

  • Utile pour la haute disponibilité.

Inconvénients :

  • Ne propose pas du delta : les entrées sont répliquées entièrement : si un attribut a changé, l’entrée complète est répliquée.
  • Si deux changements sont réalisés en « peu de temps » (avant que la réplication ait pu se faire), un changement sera perdu.

Mode Miroir

Un miroir est composé uniquement de deux nœuds. Ces deux nœuds sont configurés à la fois en maître et en esclave. Dans ce mode, les deux nœuds sont identiques à tout instant. Ils sont accessibles en écriture et il est donc possible de mettre à jour indifféremment l’un ou l’autre.

Avantages :

  • Si un nœud est hors service, lors de son retour, il se met à jour automatiquement ;
  • Si les fichiers de données d’un nœud sont détruits, lors de son redémarrage, il se synchronisera entièrement depuis l’autre nœud ;
  • Un nœud étant configuré comme un maître. Il est possible d’y connecter des consumers.

Inconvénients :

  •  Les traitements de masse de mise à jour d’un nœud sont plus longs qu’en mode provider/consumers, car les 2 nœuds se mettent à jour simultanément et en mode full.

Ci-dessous un exemple d’architecture mixte en prenant les avantages des différents modes de synchronisation :

La configuration est la suivante :

  • 2 nœuds en mode miroir pour les écritures : un serveur actif et un serveur passif.
  • Un « consumer » en lecture seule qui sera synchronisé (en temps réel ou périodiquement suivant la configuration choisie) à partir du nœud actif. Les deux nœuds en mode miroir sont à positionner sur deux sites distincts.

Une solution de load balancing et fail over (de type F5) peut être implantée pour réaliser les actions suivantes :

  • Supporter le Fail over pour les écritures.
  • Supporter le Fail over et le load balancing sur le consumer et le nœud passif pour les lectures.

Dans un prochain article, nous réaliserons un focus sur le load balancing et le fail over avec OpenLDAP.