USN (Update Sequence Number), c’est quoi ?

Le terme USN (Update Sequence Number) désigne un numéro de séquence de mise à jour utilisé par le mécanisme Active Directory.

Il sert pour suivre les modifications sur chaque contrôleur de domaine, donc à identifier l’origine des modifications d’une certaine façon.

Pour l’imager, il s’agit d’un compteur local et monotone propre à chaque contrôleur de domaine, qui s’incrémente à chaque fois qu’un changement est fait, i.e. création, modification ou suppression d’objet(s)/attribut(s) dans la base de données Active Directory.

Par conséquent, il assure la cohérence des données au sein de l’annauire.

A la question, l’USN est-il un attribut ? Ma réponse serait affirmative puisque dans Active Directory, il est représenté par des attributs système (principalement uSNCreated et uSNChanged). Donc, l’USN est bien un attribut technique de l’objet Active Directory.

 

Fonction de l’USN

 

Chaque contrôleur de domaine maintient son propre compteur USN local.
Il est stocké dans l’attribut nommé highestCommittedUsn, qui est visible à l’aide de la commande Get-ADRootDSE ou de l’utilitaire ADSIEdit​
Le contrôleur de domaine l’incrémente à chaque changement : création et ou modification d’un objet (utilisateur, mot de passe et ainsi de suite).
Une fois de plus, l’incrémentation se fait dès lors qu’un  attribut est modifié.

 

Rôle dans la réplication Active Directory

 

Son rôle est important, car l’USN sert à suivre et tracer les changements, reçus ou émis. Il permet clairement de définir les éléments à répliquer entre les contrôleurs de domaine :

  • Le contrôleur de domaine source du changement, à l’origine des changements, conserve pour chaque partenaire la dernière valeur USN connue et envoyée,
  • Celui pour destination informe la source du dernier USN qu’il a reçu. Il partage la valeur maximale appelée spécifiquement  « high watermark »,
  • Celui à l’origine des changements envoie alors uniquement les modifications dont les USN sont supérieurs à ce marqueur (la valeur maximale dont il est question),

Chaque modification transmise est accompagnée de son « Originating USN » et du GUID du contrôleur de domaine à l’origine du changement. L’idée générale ainsi est de pouvoir assurer un suivi précis des métadonnées de réplication.

 

Points d’attention :

  • L’USN n’est pas répliqué entre les contrôleurs de domaine. Chaque contrôleur de domaine dispose de sa propre séquence de manière indépendante​
  • L’USN permet d’assurer une réplication sans collision, même si deux contrôleurs de domaine modifient simultanément le même objet. Leurs USN distincts permettent d’arbitrer les modifications.
  • Le rollback USN est une erreur critique qui se produit lorsqu’un DC est restauré sans mise à jour correcte de son Invocation ID. Cela provoque une désynchronisation silencieuse de la réplication.

 

USN et Invocation ID

Le couple USN et Invocation ID forme un identifiant unique pour chaque transaction d’écriture dans Active Directory. Il garantit que même si un USN est réutilisé, e.g. après une restauration, le changement d’Invocation ID empêche les autres contrôleurs de domaine d’interpréter cela comme une duplication de données.

Cela permet de protéger contre le problème de type USN rollback mentionné ci-dessus.

Une restauration non gérée d’un contrôleur de domaine pourrait en effet entraîner des incohérences de réplication.

Afin d’identifier l’« Invocation ID », plusieurs méthodes dont l’utilitaire repadmin avec l’argument /showrel suivi du nom du controlleur de domaine.

 

 

Sauvegarde et restauration

 

L’un des risques majeurs lors d’une restauration d’un contrôleur de domaine est le rollback USN.

Cela se produit lorsque le contrôleur de domaine est restauré à partir d’une sauvegarde, mais que son Invocation ID et son USN ne sont pas correctement mis à jour.

C’est une redite mais les snapshots système peuvent ne pas être optimaux pour la sauvegarde Active Directory.

 

Conclusion

 

L’USN est le « compteur de suivi local » des changements Active Directory.
Il constitue l’élément central du mécanisme de réplication, garantissant que chaque contrôleur de domaine sait précisément quelles mises à jour il doit encore recevoir ou partager vis-à-vis de ses partenaires de réplication.

Share This