15/11/2024

Active Directory

Active Directory : LdapSrvWeight et LdapSrvPriority

I. Présentation

Un domaine Active Directory est généralement composé de plusieurs contrôleurs de domaine qui peuvent être répartis sur plusieurs sites physiques, selon l'implantation de votre entreprise. Ces contrôleurs de domaine sont alors rattachés à un site, lui-même rattaché à différents réseaux, ce qui permet à un poste de travail de localiser le contrôleur de domaine le plus proche de lui lorsqu'une requête est envoyée, notamment pour l'ouverture de session.

En regardant les enregistrements DNS liés à votre domaine Active Directory au sein de la console DNS, vous remarquerez que le serveur disposant du rôle FSMO d'émulateur PDC est systématiquement référencé, même s'il n'est pas directement sur le site en question. De plus, le poids et la priorité sont identiques sur tous les contrôleurs de domaine par défaut, ce qui implique que votre poste de travail n'ira pas obligatoirement vers le DC du site où il se situe.

Chaque poste de travail membre d'un domaine Active Directory s'appuiera sur le composant "DCLocator" intégré au service "Netlogon" pour localiser un contrôleur de domaine. Plusieurs paramètres vont rentrer en compte pour sélectionner le contrôleur de domaine, dont les enregistrements SRV du DNS, ce qui donne de l'importance au poids et à la priorité.

Ce mode de fonctionnement peut causer des problèmes de performances au sein d'infrastructures multi-sites puisque certains postes de travail peuvent se connecter sur le contrôleur de domaine étant émulateur PDC même s'il se situe sur un distant.

Pour agir directement sur le service Netlogon, on va pouvoir s'appuyer sur deux paramètres : LdapSrvWeight et LdapSrvPriority pour gérer respectivement le poids et la priorité. Par défaut, chaque contrôleur de domaine à une priorité de 0 et un poids de 100.

II. LdapSrvWeight

Le paramétrage qui va suivre, aussi bien pour cette valeur que pour celle de l'étape d'après, doit être effectué uniquement sur le serveurs contrôleurs de domaine.

Conseil : Au préalable je vous recommande de faire un tableau avec le nom de vos DC et les valeurs que vous souhaitez attribuer au poids et à la priorité, pour bien positionner les valeurs avant de les passer en production.

Nous allons maintenant créer la valeur à l'aide de l'éditeur de registre.

Chemin vers la clé : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters

Vous devez créer une valeur REG_DWORD nommée "LdapSrvWeight" à cet endroit et lui attribuer une valeur décimale comprise entre 0 et 65335. Rappelez-vous, plus la valeur est haute, plus le poids sera élevé/prioritaire.

La commande PowerShell suivante permet de créer la valeur (en adaptant la valeur pour LdapSrvWeight) :

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\Netlogon\Parameters" -Name "LdapSrvWeight" -Value "100" -PropertyType DWORD

 

III. LdapSrvPriority

Comme précédemment, créons cette valeur via l'éditeur de registre.

Chemin vers la clé (identique à LdapSrvWeight) : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon\Parameters

Vous devez créer une valeur REG_DWORD nommée "LdapSrvPriority" à cet endroit et lui attribuer une valeur décimale comprise entre 0 et 65335. Rappelez-vous, plus la valeur est basse, plus la priorité sera élevé (l'inverse que pour le poids, en fait).

Note : S'il y a plusieurs serveurs avec la même priorité, le poids est alors utilisé pour les départager.

Ce qui nous donne la commande suivante :

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\Netlogon\Parameters" -Name "LdapSrvPriority" -Value "0" -PropertyType DWORD

 

IV. Comment modifier la priorité d'un DC ?

Etant donné que ces données sont visibles dans les enregistrements DNS, on pourrait être tenté de modifier directement depuis la console de gestion du DNS. Ce qui serait une erreur et risquerait de créer des enregistrements en doublon, la bonne méthode consiste à passer par l'éditeur de registre (regedit).

Après avoir modifié l'une de ces deux valeurs, ou les deux, vous devrez redémarrer le service Netlogon.

En PowerShell, vous pouvez effectuer cette action très facilement :

Restart-Service netlogon

Vous devez désormais patienter le temps que les modifications prennent effet et que la réplication se déclenche entre les différents contrôleurs de domaine. Je vous conseille également de purger le cache DNS sur vos postes de travail :

ipconfig /flushdns

 

Astuce : sur un poste client, la variable d'environnement LOGONSERVER permet de savoir auprès de quel DC un client s'est authentifié. Vous pouvez lister les variables d'environnement en CMD (set) ou PowerShell (Get-Childitem env:).

En résumé, les contrôleurs de domaine ayant le poids le plus élevé et la priorité la plus basse sont le plus souvent sélectionnés lors du processus Netlogon.

Ajoutez à ça l'affinité de base liée au site et vous pouvez contrôler vers quel(s) contrôleur(s) de domaine se tourneront en priorité les clients de chaque site.

Ceci vous permettra d'avoir un meilleur client sur l'authentification des clients et sur les requêtes de connexion.

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “Active Directory : LdapSrvWeight et LdapSrvPriority

  • Merci Florian, c’est très bien expliqué. Dans le cas ou l’opération doit être effectué sur plusieurs DC, il me semble que l’on peut le faire via stratégie de groupe?

    Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.