[Active Directory] – Introduction à la réplication locale (intrasite)

Active Directory utilise le modèle de réplication multimaître, ce qui signifie que tout changement apporté à l’annuaire (un nouveau compte d’ordinateur, une modification d’un compte d’ordinateur, un nouveau compte d’utilisateur, etc.) peut intervenir sur n’importe quel contrôleur de domaine. Étant donné que la réplication prend du temps, il se peut qu’à un instant donné, chaque DC (Domain Controller) dans un domaine possède une copie légèrement différente de la base de données AD du domaine lui-même. Cependant, si l’annuaire est laissé au repos suffisamment de temps (autrement dit, si personne n’y change rien pendant un moment), toutes les copies de la base de données AD sur tous les DC finissent par devenir identiques.

Note : Attention, c’est le cas uniquement si votre annuaire AD se trouve en mode natif ou au niveau fonctionnel Windows Server 2003. Les domaines AD en mode mixte utilisent le système de réplication monomaître!!


Comment ce système fonctionne-t-il? Comment est-il possible d’avoir plusieurs sources de modification différentes dans une base de données, sans se retrouver avec une base complètement désorganisée?

Commençons par examiner le processus local de la réplication AD, autrement dit le mécanisme par lequel AD est répliqué sur un site unique (réplication intrasite).

Note : Un site est un ensemble de réseaux connectés par des liens haute vitesse (par exemple Ethernet) tout périphérique dans un site doit pouvoir communiquer avec n’importe quel autre périphérique du site à plusieurs millions de bits par seconde.

 

  • La réplication Active Directory locale commence par une boucle

Lorsque vous installez un site contenant plusieurs contrôleurs de domaine, les contrôleurs de domaine commencent par se reconnaître les uns les autres (ce qui n’est pas très difficile, puisqu’ils sont tous déclarés au niveau du DNS et de l’AD), puis mettent automatiquement en œuvre une ‘séquence de réplication‘.

Supposons que le domaine ‘monentreprise.fr‘ se trouve dans un unique site qui contient 4 contrôleurs de domaine nommés DC1, DC2, DC3 et DC4. La réplication AD fonctionne en gros de la manière suivante : DC1 réplique ses informations sur DC2, qui incorpore les données de DC1 en les ajoutant aux siennes, puis passe le tout à DC3. DC3 prend tout ce qu’il a appris de DC2 (ce qui inclut les modifications de DC1), les ajoute à ses propres modifications et transmet le tout à DC4. DC4 récupère tout ce qu’il a appris de DC3, ainsi que ses propres changements, et transmet l’ensemble à DC1… la boucle est ainsi bouclée!

Il s’agit ici d’une présentation simplifiée. Affinons maintenant notre modèle en compliquant l’affaire par quelques considérations plus détaillées.

 

  • Bon, en fait, il y a deux boucles!

Tout d’abord, il n’y a pas qu’une seule boucle, mais deux; il faut considérer qu’AD se réplique à la fois dans le sens des aiguilles d’une montre et dans le sens inverse des aiguilles d’une montre. Les DC de ‘monentreprise.fr‘ peuvent procéder à la réplication comme la figure ci-dessous;

Dans cette figure, vous remarquerez que chaque contrôleur de domaine se réplique sur deux autres DC. DC1 réplique les modifications qu’il reçoit à la fois sur DC4 et DC2. C’est pourquoi que ma première explication ne correspond pas exactement à ce qui se passe dans la réalité. Supposez que nous modifions le compte d’utilisateur d’un utilisateur nommé Jordan (comme moi!) afin d’identifier le nom de son nouveau responsable. DC1 fait part de ces informations (« Eh les gars! Jordan à un nouveau chef!« ) à DC2 et à DC4 à la fois. DC2 s’empresse d’annoncer la nouvelle à DC3, et environ au même moment, DC4 livre les mêmes infos à DC3. Il n’y a aucun moyen de savoir par avance qui atteindra DC3 en dernier, mais dans tous les cas, il se voit répondre par DC3 « Ca va, merci, j’ai eu l’info!« 

J’ai utilisé le terme « DC1 fait part de ses informations à DC2 », cependant il faut préciser le sens exact de cette formule. Plus spécifiquement la réplication AD se fait toujours par une méthode de collecte (pull). Il est donc plus correct de dire « DC1 notifie DC2 qu’il possède des informations et DC2, une fois prêt, demande à DC1 de lui communiquer l’ensemble des modifications qu’il a enregistrées« 

La bonne formulation dans le jargon Active Directory serait « réplication par collection avec notification » – DC1 notifie, DC2 collecte.

 

  • La réplication locale intervient toutes les cinq minutes!

Les contrôleurs de domaine dans un site répliquent leurs informations vers leurs deux partenaires de réplication toutes les 5 minutes. S’il n’a rien de nouveau à dire, le DC ne dit rien à chacun de ces intervalles de 5 minutes, mais si un DC ne reçoit aucunes informations de ses partenaires de réplication pendant 60 minutes, il leur envoi un message du type « Pas de nouvelles?« 

 

  • Le KCC fait la boucle!

Qui forme cette boucle? Qui décide quels seront les deux partenaires de réplication d’un DC donné?

Il s’agit du programme tournant sur chaque DC et appelé « Vérificateur de cohésion de connaissances«  (KCC – Knowledge Consistency Checker). Il surgit toutes les 15 minutes, scrute les alentours et demande « A-t-on perdu un DC ou obtenu des nouvelles depuis ma dernière inspection?« . Si le nombre de DC a changé depuis la dernière fois, les KCC (1 par DC) ajuste notre fameuse boucle.

 

Note : Le KCC n’apparaît pas dans le « Gestionnaire de tâches » parce qu’il fait partie du processus « LSASS.exe » (Local Security Authority Subsystem Service). Son objectif est d’assurer le respect des protocoles liés à la sécurité sous Windows. Il est sollicité dès qu’il est nécessaire de s’authentifier comme utilisateur et d’entrer son mot de passe sous Windows, en particulier au lancement d’une session. C’est un processus extrêmement sécurisé qui contrôle la validité du mot de passe et déclenche le cas échéant l’autorisation du lancement de la session.

Surveiller LSASS.exe est ainsi un excellent moyen de vérifier si vous avez besoin d’un autre DC. En utilisant le moniteur système, vous pouvez journaliser ce processus et observer le poucentage d’utilisation de celui-ci au fil du temps. S’il augmente ou si vous constatez que lorsque LSASS.exe est actif, l’utilisation totale du processeur atteint 100%, vous savez qu’il est temps d’installer un DC supplémentaire!

Vous pouvez forcer le KCC à s’exécuter en utilisant la commande « repadmin /kcc »

 

  • Quelques fois, ce n’est pas une boucle, mais un maillage!

Cette architecture semble parfaite, jusqu’à ce que vous vous demandiez ce qui peut arriver dans une entreprise qui possède une immense quantité de contrôleur de domaine.

Supposons que vous ayez 100 DC, si un DC commence à répliquer des modifications dans l’AD, il peut falloir jusqu’à 50 réplications pour atteindre un autre DC. Si les réplications interviennent chacune à des intervalles fixés approximativement à 5 minutes, cela nous fait 250 minutes – soit 4h et 10 minutes! – pour tout boucler…cet intervalle est inacceptable dans un site. Le KCC vient donc aux nouvelles et demande « Y a-t-il des DC qui se trouvent à plus de 3 sauts de distance?« .

Si c’est le cas, le KCC ajoute des liens supplémentaires, afin de convertir la boucle en maillage, à la manière d’un filet. La structure ne prend pas nécessairement cette forme de boucle et nous pouvons donc avoir à faire à un maillage. Microsoft a donc préféré choisir un autre terme pour décrire le cheminement que peut suivre une modification AD : la topologie de réplication.

 

  • Il y a plusieurs topologies de réplication

Chaque forêt possède au minimum 3 topologies de réplication.

 – 1ère topologie de réplication : Topologie de réplication de domaine (réplication de données de plusieurs DC dans un même domaine)

 – 2e topologie de réplication : Topologie de réplication de forêt (réplication des données sur tous les DC de l’entreprise – au sein de tous les domaines – soit toute la forêt Active Directory) aussi appelé ‘Contexte de nommage répliqué’ (Replicated Naming Context)

 – 3e topologie de réplication : Topologie de réplication pour les serveurs de catalogue global (GC – Global Catalog)

 

Prenons un exemple, si mon contrôleur de domaine fait également office de serveur de catalogue global et de serveur DNS, voici à quoi ressemblera alors ma base de données ‘NTDS.DIT‘ (nom de la BDD Active Directory); (je me suis placé ici dans le cas ou mes zones DNS ont été intégrés à la base de données Active Directory)

 – 1ère partition : Partition de schéma – répliqué dans toute la forêt Active Directory (se sert de la 2e topologie de réplication)

 – 2e partition : Partition de configuration  – répliqué dans toute la forêt Active Directory (se sert de la 2e topologie de réplication)

 – 3e partition : Partition de domaine – répliqué dans chaque domaine Active Directory (se sert de la 1ère topologie de réplication)

 – 4e partition : Partition DNS – partition d’application – répliqué dans chaque domaine Active Directory (se sert de la 1ère topologie de réplication)

 – 5e partition : Partition PAS (Partial Attribute Set) – partition des GC (Global Catalog) – répliqué dans toute la forêt Active Directory (se sert de la 3e topologie de réplication)

 

Ressources :

REPADMIN – http://technet.microsoft.com/fr-fr/library/cc778305%28v=ws.10%29.aspx

Non classé

jordanlaurent

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *